1. 29 Jul, 2010 4 commits
  2. 26 Jul, 2010 1 commit
    • Steven Walters's avatar
      Filtering system-related fixes · b476e058
      Steven Walters authored
      Fix configure to check for outdated libavutil in resize filter support.
      Do not print an explicit error message in ffms when requesting a frame beyond the number of frames in the source.
      Mention in --*help that filtering options can be specified as name=value.
      Fix the shadowing warning in the resize filter on posix systems.
      b476e058
  3. 22 Jul, 2010 2 commits
  4. 21 Jul, 2010 1 commit
  5. 17 Jul, 2010 1 commit
  6. 16 Jul, 2010 2 commits
  7. 15 Jul, 2010 9 commits
    • David Conrad's avatar
      Fix compilation with shared ffmpeg libs · 96383a3b
      David Conrad authored
      lavf input uses libavutil functions, so it must request flags for libavutil from pkg-config.
      96383a3b
    • Fiona Glaser's avatar
      Fix another PCM bug · e3687899
      Fiona Glaser authored
      CABAC assumes that NNZ is 0 or 1, not the number of actual nonzero coefficients.
      Didn't actually break the output; only had a tiny effect on RD.
      e3687899
    • Oskar Arvidsson's avatar
      Fix regression in r1666 · f98fed63
      Oskar Arvidsson authored
      Broke encoding of PCM macroblocks.
      f98fed63
    • Oskar Arvidsson's avatar
      Fix build with bit_depth > 8 · a026b7c6
      Oskar Arvidsson authored
      Definition of x264_cli_plane_copy was inconsistent with declaration.
      a026b7c6
    • Loren Merritt's avatar
      Convert x264 to use NV12 pixel format internally · 387828ed
      Loren Merritt authored
      ~1% faster overall on Conroe, mostly due to improved cache locality.
      Also allows improved SIMD on some chroma functions (e.g. deblock).
      This change also extends the API to allow direct NV12 input, which should be a bit faster than YV12.
      This isn't currently used in the x264cli, as swscale does not have fast NV12 conversion routines, but it might be useful for other applications.
      
      Note this patch disables the chroma SIMD code for PPC and ARM until new versions are written.
      387828ed
    • Steven Walters's avatar
      Add video filtering system to x264cli · c58954cc
      Steven Walters authored
      Similar to mplayer's -vf system.
      Supports some basic operations like resizing and cropping.  Will support more in the future.
      See the help for more details.
      c58954cc
    • Fiona Glaser's avatar
      Eliminate edge cases for MV predictors · da978ebe
      Fiona Glaser authored
      Saves a few clocks in mv pred.
      da978ebe
    • Fiona Glaser's avatar
      Improve scenecut detection a bit · b4217e40
      Fiona Glaser authored
      Put a minimum value on the scenecut threshold; makes x264 more likely to catch successive scenecuts (but might increase the odds of false detection).
      This also fixes scenecut detection with keyint=infinite.
      Also print keyint=infinite in the x264 SEI and statsfile correctly.
      b4217e40
    • Fiona Glaser's avatar
      Fix 8x8dct+slices+no sliced threads+cavlc+deblock · de8a6e9d
      Fiona Glaser authored
      Deblocking was done slightly incorrectly.
      Regression in r1612.
      de8a6e9d
  8. 09 Jul, 2010 2 commits
  9. 04 Jul, 2010 1 commit
    • Oskar Arvidsson's avatar
      Support for 9 and 10-bit encoding · c91f43a4
      Oskar Arvidsson authored
      Output bit depth is specified on compilation time via --bit-depth.
      There is currently almost no assembly code available for high-bit-depth modes, so encoding will be very slow.
      Input is still 8-bit only; this will change in the future.
      
      Note that very few H.264 decoders support >8 bit depth currently.
      Also note that the quantizer scale differs for higher bit depth.  For example, for 10-bit, the quantizer (and crf) ranges from 0 to 63 instead of 0 to 51.
      c91f43a4
  10. 03 Jul, 2010 3 commits
    • Fiona Glaser's avatar
      Support infinite keyint (--keyint infinite). · b7789b1f
      Fiona Glaser authored
      This just means x264 won't insert non-scenecut keyframes.
      Useful for streaming when using interactive error recovery or some other mechanism that makes keyframes unnecessary.
      
      Also change POC logic to limit POC/framenum LSB size (to save bits per slice).
      Also fix a bug in the CPB underflow detection code (didn't affect the bitstream, just resulted in the failure to print certain warning messages).
      b7789b1f
    • Fiona Glaser's avatar
      Don't check i16x16 planar mode unless previous modes were useful · e480c9c8
      Fiona Glaser authored
      Saves ~160 clocks per MB at subme=1, ~270 per MB at subme>1 (measured on Core i7).
      Negligle effect on compression.
      
      Also make a few more arrays static.
      e480c9c8
    • Steven Walters's avatar
      Centralize logging within x264cli · 43a43346
      Steven Walters authored
      x264cli messages will now respect the log level they pertain to.
      Slightly reduces binary size.
      43a43346
  11. 02 Jul, 2010 2 commits
    • Lamont Alston's avatar
      Make open-GOP Blu-ray compatible · 899bf0fd
      Lamont Alston authored
      Blu-ray is even more braindamaged than we thought.
      Accordingly, open-gop options are now "normal" and "bluray", as opposed to display and coded.
      Normal should be used in all cases besides Blu-ray authoring.
      899bf0fd
    • Fiona Glaser's avatar
      Callback feature for low-latency per-slice output · 4cd44841
      Fiona Glaser authored
      Add a callback to allow the calling application to send slices immediately after being encoded.
      Also add some extra information to the x264_nal_t structure to help inform such a calling application how the NAL units should be ordered.
      
      Full documentation is in x264.h.
      4cd44841
  12. 27 Jun, 2010 1 commit
  13. 25 Jun, 2010 7 commits
    • Fiona Glaser's avatar
      Interactive encoder control: error resilience · edc1135e
      Fiona Glaser authored
      In low-latency streaming with few clients, it is often feasible to modify encoder behavior in some fashion based on feedback from clients.
      One possible application of this is error resilience: if a packet is lost, mark the associated frame (and any referenced from it) as lost.
      This allows quick recovery from errors with minimal expense bit-wise.
      
      The new i_dpb_size parameter allows a calling application to tell x264 to use a larger DPB size than required by the number of reference frames.
      This lets x264 and the client keep a large buffer of old references to fall back to in case of lost frames.
      If no recovery is possible even with the available buffer, x264 will force a keyframe.
      
      This initial version does not support B-frames or intra refresh.
      Recommended usage is to set keyint to a very large value, so that keyframes do not occur except as necessary for extreme error recovery.
      
      Full documentation is in x264.h.
      
      Move DTS/PTS calculation to before encoding each frame instead of after.
      Improve documentation of x264_encoder_intra_refresh.
      edc1135e
    • Fiona Glaser's avatar
      Lookaheadless MB-tree support · 669cc1de
      Fiona Glaser authored
      Uses past motion information instead of future data from the lookahead.
      Not as accurate, but better than nothing in zero-latency compression when a lookahead isn't available.
      Currently resets on keyframes, so only available if intra-refresh is set, to avoid pops on non-scenecut keyframes.
      Not on by default with any preset/tune combination; must be enabled explicitly if --tune zerolatency is used.
      
      Also slightly modify encoding presets: disable rc-lookahead in the fastest presets.
      Enable MB-tree in "veryfast", albeit with a very short lookahead.
      669cc1de
    • Lamont Alston's avatar
      Open-GOP support · d020c427
      Lamont Alston authored
      Allows B-frames immediately prior to keyframes (in display order).
      This helps reduce keyframe popping and improve compression with short keyframe intervals.
      Due to a staggering display of braindamage in the Blu-ray spec, two open-GOP modes are available.
      The two modes calculate keyframe interval differently: one based on coded distance and one based on display distance.
      The latter is superior compression-wise, but for no comprehensible reason, Blu-ray requires the former if open-GOP is used.
      d020c427
    • Steven Walters's avatar
      Use threadpools to avoid unnecessary thread creation · 81cada8e
      Steven Walters authored
      Tiny performance improvement with fast settings and lots of threads.
      May help more on some OSs with slow thread creation, like OS X.
      Unify inconsistent synchronized abbreviations to sync.
      81cada8e
    • Fiona Glaser's avatar
      Improve 2-pass bitrate prediction · 1a3548cf
      Fiona Glaser authored
      Adapt based on distance to the end in bits, not in frames.
      Helps in videos with absurdly simple end sections, e.g. black frames.
      1a3548cf
    • Fiona Glaser's avatar
      SSE4 and SSSE3 versions of some intra_sad functions · af34dfe3
      Fiona Glaser authored
      Primarily Nehalem-optimized.
      af34dfe3
    • Fiona Glaser's avatar
      Improve HRD accuracy · 5a57688f
      Fiona Glaser authored
      In a staggering display of brain damage, the spec requires all HRD math to be done in infinite precision despite the output being of quite limited precision.
      Accordingly, convert buffer management to work in units of timescale.
      These accumulating rounding errors probably didn't cause any real problems, but might in theory cause issues in very picky muxers on extremely long-running streams.
      5a57688f
  14. 24 Jun, 2010 1 commit
    • Fiona Glaser's avatar
      Use -fno-tree-vectorize to avoid miscompilation · f2b78b93
      Fiona Glaser authored
      Some versions of gcc have been reported to attempt (and fail) to vectorize a loop in plane_expand_border.
      This results in a segfault, so to limit the possible effects of gcc's utter incompetence, we're turning off vectorization entirely.
      It's not like it ever did anything useful to begin with.
      f2b78b93
  15. 23 Jun, 2010 1 commit
  16. 15 Jun, 2010 2 commits