[x264-devel] commit: LAVF/FFMS input support, native VFR timestamp handling ( Kieran Kunhya )
git version control
git at videolan.org
Thu Jan 14 05:51:06 CET 2010
x264 | branch: master | Kieran Kunhya <kieran at kunhya.com> | Mon Dec 28 10:42:17 2009 -0500| [8b9dcd8d50be201f1bedc9b19331432969f37d98] | committer: Jason Garrett-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 <mike.gurlitz at gmail.com>, Steven Walters <kemuri9 at gmail.com>, and Yusuke Nakamura <muken.the.vfrmaniac at gmail.com>.
> http://git.videolan.org/gitweb.cgi/x264.git/?a=commit;h=8b9dcd8d50be201f1bedc9b19331432969f37d98
---
Makefile | 16 +-
common/common.c | 3 +
common/common.h | 2 +
common/frame.c | 2 +-
common/frame.h | 3 +-
configure | 97 ++++++++---
encoder/encoder.c | 18 ++-
encoder/set.c | 8 +-
encoder/slicetype.c | 11 +-
input/avs.c | 28 ++--
input/ffms.c | 247 +++++++++++++++++++++++++++
input/input.h | 29 +++-
input/lavf.c | 272 ++++++++++++++++++++++++++++++
input/thread.c | 4 +-
input/vfw.c | 125 --------------
input/y4m.c | 31 ++--
input/yuv.c | 24 +++-
output/flv.c | 273 +++++++++++++++++-------------
output/flv_bytestream.c | 5 +-
output/matroska.c | 202 +++++++++-------------
output/matroska_ebml.c | 6 +-
output/matroska_ebml.h | 2 +-
output/mp4.c | 200 +++++++++++++---------
output/output.h | 6 +-
output/raw.c | 19 ++-
x264.c | 425 ++++++++++++++++++++++++++++++++++-------------
x264.h | 8 +-
27 files changed, 1403 insertions(+), 663 deletions(-)
Diff: http://git.videolan.org/gitweb.cgi/x264.git/?a=commitdiff;h=8b9dcd8d50be201f1bedc9b19331432969f37d98
More information about the x264-devel
mailing list