1. 15 Feb, 2010 1 commit
  2. 14 Feb, 2010 1 commit
  3. 30 Jan, 2010 6 commits
  4. 28 Jan, 2010 2 commits
  5. 21 Jan, 2010 2 commits
  6. 14 Jan, 2010 7 commits
    • Fiona Glaser's avatar
      Eliminate intentional array overflow in quant matrix handling · c37a5100
      Fiona Glaser authored
      While it probably never caused problems, it was incredibly ugly and evil.
      c37a5100
    • David Conrad's avatar
      Fix x264 compilation on Apple GCC · aa48c1fb
      David Conrad authored
      Apple's GCC stupidly ignores the ARM ABI and doesn't give any stack alignment beyond 4.
      aa48c1fb
    • Fiona Glaser's avatar
      Faster weightp motion search · fd1cf294
      Fiona Glaser authored
      For blind-weight dupes, copy the motion vector from the main search and qpel-refine instead of doing a full search.
      Fix the p8x8 early termination, which had unexpected results when combined with blind weighting.
      Overall, marginally reduces compression but should potentially improve speed by over 5%.
      fd1cf294
    • Fiona Glaser's avatar
      More correct padding constants for lowres planes · bc0ae2ef
      Fiona Glaser authored
      Since lowres analysis isn't interlace-aware, we don't need to double the vertical padding for interlaced video.
      bc0ae2ef
    • Fiona Glaser's avatar
      Periodic intra refresh · cde39046
      Fiona Glaser authored
      Uses SEI recovery points, a moving vertical "bar" of intra blocks, and motion vector restrictions to eliminate keyframes.
      Attempt to hide the visual appearance of the intra bar when --no-psy isn't set.
      Enabled with --intra-refresh.
      The refresh interval is controlled using keyint, but won't exceed the number of macroblock columns in the frame.
      Greatly benefits low-latency streaming by making it possible to achieve constant framesize without intra-only encoding.
      Combined with slice-max size for one slice per packet, tests suggest effective resiliance against packet loss as high as 25%.
      x264 is now the best free software low-latency video encoder in the world.
      
      Accordingly, change the API to add b_keyframe to the parameters present in output pictures.
      Calling applications should check this to see if a frame is seekable, not the frame type.
      
      Also make x264's motion estimation strictly abide by horizontal MV range limits in order for PIR to work.
      Also fix a major bug in sliced-threads VBV handling.
      Also change "auto" threads for sliced threads to "cores" instead of "1.5*cores" after performance testing.
      Also simplify ratecontrol's checking of first pass options.
      Also some minor tweaks to row-based VBV that should improve VBV accuracy on small frames.
      cde39046
    • 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
    • Loren Merritt's avatar
      Fix x264_clz on inputs > 1<<31 · 65f988b7
      Loren Merritt authored
      (though x264 never generates such inputs)
      65f988b7
  7. 11 Dec, 2009 2 commits
  8. 09 Dec, 2009 4 commits
  9. 05 Dec, 2009 2 commits
  10. 27 Nov, 2009 1 commit
    • Fiona Glaser's avatar
      Much faster weightp · 979c14da
      Fiona Glaser authored
      Move sum/ssd calculation out of lookahead and do it only once per frame.
      Also various minor optimizations, cosmetics, and cleanups.
      979c14da
  11. 25 Nov, 2009 2 commits
  12. 17 Nov, 2009 1 commit
    • Fiona Glaser's avatar
      Faster weightp analysis · 63f71477
      Fiona Glaser authored
      Modify pixel_var slightly to return the necessary information and use it for weight analysis instead of sad/ssd.
      Various minor cosmetics.
      63f71477
  13. 15 Nov, 2009 2 commits
  14. 12 Nov, 2009 2 commits
    • Dylan Yudaken's avatar
      Various weightp fixes · 45b28315
      Dylan Yudaken authored
      Make weightp results match in threaded vs non-threaded mode.
      Fix two-pass with slow-firstpass.
      45b28315
    • Fiona Glaser's avatar
      Fix all aliasing violations · 03cb8c09
      Fiona Glaser authored
      New type-punning macros perform write/read-combining without aliasing violations per the second-to-last part of 6.5.7 in the C99 specification.
      GCC 4.4, however, doesn't seem to have read this part of the spec and still warns about the violations.
      Regardless, it seems to fix all known aliasing miscompilations, so perhaps the GCC warning generator is just broken.
      As such, add -Wno-strict-aliasing to CFLAGS.
      03cb8c09
  15. 09 Nov, 2009 5 commits
    • Fiona Glaser's avatar
      Fix pixel_ssd on win64 · 4ed2a8e3
      Fiona Glaser authored
      Didn't preserve XMM registers, may or may not have caused problems.
      4ed2a8e3
    • Loren Merritt's avatar
      cosmetics · df732ec7
      Loren Merritt authored
      df732ec7
    • David Conrad's avatar
      Fix weightp on ARM + PPC · 09411091
      David Conrad authored
      No ARM or PPC assembly yet though.
      09411091
    • Dylan Yudaken's avatar
      Weighted P-frame prediction · ccac8546
      Dylan Yudaken authored
      Merge Dylan's Google Summer of Code 2009 tree.
      Detect fades and use weighted prediction to improve compression and quality.
      "Blind" mode provides a small overall quality increase by using a -1 offset without doing any analysis, as described in JVT-AB033.
      "Smart", the default mode, also performs fade detection and decides weights accordingly.
      MB-tree takes into account the effects of "smart" analysis in lookahead, even further improving quality in fades.
      If psy is on, mbtree is on, interlaced is off, and weightp is off, fade detection will still be performed.
      However, it will be used to adjust quality instead of create actual weights.
      This will improve quality in fades when encoding in Baseline profile.
      
      Doesn't add support for interlaced encoding with weightp yet.
      Only adds support for luma weights, not chroma weights.
      Internal code for chroma weights is in, but there's no analysis yet.
      Baseline profile requires that weightp be off.
      All weightp modes may cause minor breakage in non-compliant decoders that take shortcuts in deblocking reference frame checks.
      "Smart" may cause serious breakage in non-compliant decoders that take shortcuts in handling of duplicate reference frames.
      
      Thanks to Google for sponsoring our most successful Summer of Code yet!
      ccac8546
    • Steven Walters's avatar