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 /intern/ffmpeg | |
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 'intern/ffmpeg')
-rw-r--r-- | intern/ffmpeg/ffmpeg_compat.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h index fae8590568d..d8172902a4c 100644 --- a/intern/ffmpeg/ffmpeg_compat.h +++ b/intern/ffmpeg/ffmpeg_compat.h @@ -71,6 +71,7 @@ #define avio_open url_fopen #define avio_tell url_ftell #define avio_close url_fclose +#define avio_size url_fsize #endif /* there are some version inbetween, which have avio_... functions but no @@ -130,4 +131,19 @@ int avcodec_decode_video2(AVCodecContext *avctx, AVFrame *picture, } #endif +static inline +int64_t av_get_pts_from_frame(AVFormatContext *avctx, AVFrame * picture) +{ + int64_t pts = picture->pkt_pts; + + if (pts == AV_NOPTS_VALUE) { + pts = picture->pkt_dts; + } + if (pts == AV_NOPTS_VALUE) { + pts = 0; + } + + return pts; +} + #endif |