Commit 30d76a5e authored by Committed by Fiona Glaser
LAVF/FFMS input support, native VFR timestamp handling
libx264 now takes three new API parameters. b_vfr_input tells x264 whether or not the input is VFR, and is 1 by default. i_timebase_num and i_timebase_den pass the timebase to x264. x264_picture_t now returns the DTS of each frame: the calling app need not calculate it anymore. Add libavformat and FFMS2 input support: requires libav* and ffms2 libraries respectively. FFMS2 is _STRONGLY_ preferred over libavformat: we encourage all distributions to compile with FFMS2 support if at all possible. FFMS2 can be found at http://code.google.com/p/ffmpegsource/. --index, a new x264cli option, allows the user to store (or load) an FFMS2 index file for future use, to avoid re-indexing in the future. Overhaul the muxers to pass through timestamps instead of assuming CFR. Also overhaul muxers to correctly use b_annexb and b_repeat_headers to simplify the code. Remove VFW input support, since it's now pretty much redundant with native AVS support and LAVF support. Finally, overhaul a large part of the x264cli internals. --force-cfr, a new x264cli option, allows the user to force the old method of timestamp handling. May be useful in case of a source with broken timestamps. Avisynth, YUV, and Y4M input are all still CFR. LAVF or FFMS2 must be used for VFR support. Do note that this patch does *not* add VFR ratecontrol yet. Support for telecined input is also somewhat dubious at the moment. Large parts of this patch by Mike Gurlitz <firstname.lastname@example.org>, Steven Walters <email@example.com>, and Yusuke Nakamura <firstname.lastname@example.org>.
Showing with 1403 additions and 663 deletions