[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