Skip to content
  • Kieran Kunhya's avatar
    LAVF/FFMS input support, native VFR timestamp handling · 30d76a5e
    Kieran Kunhya authored
    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@gmail.com>, Steven Walters <kemuri9@gmail.com>, and Yusuke Nakamura <muken.the.vfrmaniac@gmail.com>.
    30d76a5e