diff options
author | Peter Schlaile <peter@schlaile.de> | 2011-08-28 18:46:03 +0400 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2011-08-28 18:46:03 +0400 |
commit | c07bd1439a3f026b8603c52662c3e7ccc364321a (patch) | |
tree | f6ce8cd3e01b0701c9b3d0cd3e17987be33803b8 /source/blender/windowmanager | |
parent | 852a03a6af6d67da58154b848b45a118eb38cdc0 (diff) |
== Sequencer ==
This patch adds:
* support for proxy building again (missing feature from Blender 2.49)
additionally to the way, Blender 2.49 worked, you can select several
strips at once and make Blender build proxies in the background (using
the job system)
Also a new thing: movie proxies are now build into AVI files, and
the proxy system is moved into ImBuf-library, so that other parts
of blender can also benefit from it.
* Timecode support: to fix seeking issues with files, that have
a) varying frame rates
b) very large GOP lengths
c) are broken inbetween
d) use different time code tracks
the proxy builder can now also build timecode indices, which are
used (optionally) for seeking.
For the first time, it is possible, to do frame exact seeking on
all file types.
* Support for different video-streams in one video file (can be
selected in sequencer, other parts of blender can also use it,
but UI has to be added accordingly)
* IMPORTANT: this patch *requires* ffmpeg 0.7 or newer, since
older versions don't support the pkt_pts field, that is essential
for building timecode indices.
Windows and Mac libs are already updated, Linux-users have to build
their own ffmpeg verions until distros keep up.
Diffstat (limited to 'source/blender/windowmanager')
-rw-r--r-- | source/blender/windowmanager/WM_api.h | 2 | ||||
-rw-r--r-- | source/blender/windowmanager/intern/wm_jobs.c | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/windowmanager/WM_api.h b/source/blender/windowmanager/WM_api.h index e1b8cefca4b..5bdf1ec2787 100644 --- a/source/blender/windowmanager/WM_api.h +++ b/source/blender/windowmanager/WM_api.h @@ -300,6 +300,8 @@ int WM_jobs_test(struct wmWindowManager *wm, void *owner); float WM_jobs_progress(struct wmWindowManager *wm, void *owner); char *WM_jobs_name(struct wmWindowManager *wm, void *owner); +int WM_jobs_is_running(struct wmJob *); +void* WM_jobs_get_customdata(struct wmJob *); void WM_jobs_customdata(struct wmJob *, void *customdata, void (*free)(void *)); void WM_jobs_timer(struct wmJob *, double timestep, unsigned int note, unsigned int endnote); void WM_jobs_callbacks(struct wmJob *, diff --git a/source/blender/windowmanager/intern/wm_jobs.c b/source/blender/windowmanager/intern/wm_jobs.c index 4ab4eebdfe1..f4e0b4ef06c 100644 --- a/source/blender/windowmanager/intern/wm_jobs.c +++ b/source/blender/windowmanager/intern/wm_jobs.c @@ -202,6 +202,20 @@ char *WM_jobs_name(wmWindowManager *wm, void *owner) return NULL; } +int WM_jobs_is_running(wmJob *steve) +{ + return steve->running; +} + +void* WM_jobs_get_customdata(wmJob * steve) +{ + if (!steve->customdata) { + return steve->run_customdata; + } else { + return steve->customdata; + } +} + void WM_jobs_customdata(wmJob *steve, void *customdata, void (*free)(void *)) { /* pending job? just free */ |