Page MenuHome

WIP: Automaticly build proxy when movie and image files are added
Needs ReviewPublic

Authored by Eitan (EitanSomething) on Fri, Mar 20, 6:08 PM.

Details

Summary

Automatically builds proxy files for movie and image sequences.

TODO:

  • Identify if movie file is selected when using add image file browser
  • Add more settings
  • Add progress bar

Diff Detail

Repository
rB Blender
Branch
CreateProxyLoadFile (branched from master)
Build Status
Buildable 7266
Build 7266: arc lint + arc unit

Event Timeline

Eitan (EitanSomething) retitled this revision from WIP: Automaticly build proxy when load Image and Movie files to WIP: Automaticly build proxy file on load.Fri, Mar 20, 6:12 PM
Eitan (EitanSomething) edited the summary of this revision. (Show Details)
Eitan (EitanSomething) retitled this revision from WIP: Automaticly build proxy file on load to WIP: Automaticly build proxy when movie and image is added.
Eitan (EitanSomething) retitled this revision from WIP: Automaticly build proxy when movie and image is added to WIP: Automaticly build proxy when movie and image files are added.
Eitan (EitanSomething) edited the summary of this revision. (Show Details)Fri, Mar 20, 6:30 PM
  • Only grap sequencer data once
  • New Defaults

Just went over this briefly.
Apart from fact this doesn't work without few tweaks in debugger,
why you don't just call seq_proxy_build_job() in sequencer_add_generic_strip_exec()? It should do the job just fine.

If the issue is, that it works only if Replace Selection is checked, variant of seq_proxy_build_job() that accepts PointerRNA could be made. Or alternatively do store / restore selection approach.

Apart from fact this doesn't work without few tweaks in debugger,

What changes did you need to make?

why you don't just call seq_proxy_build_job() in sequencer_add_generic_strip_exec()? It should do the job just fine.

I can't call seq_proxy_build_job() because it needs to be static. It needs to be static because it is called by sequencer_rebuild_proxy_invoke

Apart from fact this doesn't work without few tweaks in debugger,

What changes did you need to make?

Not sure now, I added file and it ended on some exception, so I just changed some variable values. I can have another look soon, but I would rather move to following point

why you don't just call seq_proxy_build_job() in sequencer_add_generic_strip_exec()? It should do the job just fine.

I can't call seq_proxy_build_job() because it needs to be static. It needs to be static because it is called by sequencer_rebuild_proxy_invoke

I don't see why seq_proxy_build_job() would have to be static. Even then you could wrap it in another function.

I just quickly added void seq_proxy_build_job(const struct bContext *C, struct ReportList *reports); to sequencer_intern.h

and changed your code in sequencer_add_generic_strip_exec() to

if ((seq->flag & SEQ_LOAD_USE_PROXY)) {
  seq->flag &= SEQ_LOAD_USE_PROXY;
  seq->flag |= SEQ_USE_PROXY;

  seq->flag |= SELECT;
  seq_proxy_build_job(C, op->reports);
}

And it works as expected, apart from forcing strips to be selected on addind.