1. 19 Sep, 2010 1 commit
    • James Darnley's avatar
      Add --disable-gpl option to configure · 3145e67d
      James Darnley authored
      Used for commercially-licensed versions of x264.
      Doesn't currently change anything, but may be used to disable GPL-only CLI tools, such as video filters, in the future.
      Also print the x264 license and libavformat license in version info.
      3145e67d
  2. 15 Jul, 2010 1 commit
  3. 25 Jun, 2010 1 commit
  4. 09 Jun, 2010 1 commit
  5. 02 Jun, 2010 1 commit
    • Fiona Glaser's avatar
      x86 assembly code for NAL escaping · 6589ad6d
      Fiona Glaser authored
      Up to ~10x faster than C depending on CPU.
      Helps the most at very high bitrates (e.g. lossless).
      Also make the C code faster and simpler.
      6589ad6d
  6. 06 May, 2010 1 commit
    • Fiona Glaser's avatar
      Deduplicate asm constants, automate name prefixing · 311c4bb1
      Fiona Glaser authored
      Auto-prefix global constants with x264_ in cextern.
      Eliminate x264_ prefix from asm files; automate it in cglobal.
      Deduplicate asm constants wherever possible to save data cache (move them to a new const-a.asm).
      Remove x264_emms() entirely on non-x86 (don't even call an empty function).
      Add cextern_naked for a non-prefixed cextern (used in checkasm).
      311c4bb1
  7. 24 Apr, 2010 1 commit
  8. 23 Apr, 2010 3 commits
  9. 27 Mar, 2010 3 commits
    • Fiona Glaser's avatar
      de8f0ac8
    • Fiona Glaser's avatar
      Overhaul macroblock_cache_rect · 4c03ec69
      Fiona Glaser authored
      Unify the rectangle functions into a single one similar to ffmpeg's fill_rectangle.
      Remove all cases of variable-size cache_rect calls; create a function-pointer-based system for handling such cases.
      Should greatly decrease code size required for such calls.
      4c03ec69
    • Yusuke Nakamura's avatar
      Timecode input/output · 4d3c4787
      Yusuke Nakamura authored
      --tcfile-in allows a user to specify a timecode v1 or v2 file to override input timestamps.
      Useful for dealing with VFR input, especially when FFMS/LAVF support isn't available.
      --tcfile-out writes a timecode v2 file containing the timecodes of the output file.
      New --timebase option allows a user to change the stream timebase.
      Intended primarily for forcing timebase with timecode files if necessary.
      When using --seek, note that x264 will seek in the timecode file as well.
      4d3c4787
  10. 25 Feb, 2010 1 commit
  11. 30 Jan, 2010 2 commits
  12. 14 Jan, 2010 2 commits
    • Anton Mitrofanov's avatar
      Fix static pthreads + dynamically linked x264 on win32 · da619d5d
      Anton Mitrofanov authored
      Add the necessary static pthread initialization code to a new DLLmain function.
      da619d5d
    • 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
  13. 30 Nov, 2009 1 commit
    • Steven Walters's avatar
      Enhanced Avisynth input support · 025f01db
      Steven Walters authored
      Requires avisynth_c.h from the Avisynth API headers.
      Reports errors properly from Avisynth script input.
      Automatically construct input scripts for almost any input file.
      Tries ffmpegsource2, DSS2, directshowsource, and many other sourcing methods, based on the input file extension.
      Automatically converts to YV12.
      025f01db
  14. 15 Nov, 2009 1 commit
  15. 09 Nov, 2009 2 commits
  16. 24 Oct, 2009 1 commit
  17. 19 Oct, 2009 1 commit
  18. 02 Sep, 2009 1 commit
    • Steven Walters's avatar
      Threaded lookahead · 6940dcae
      Steven Walters authored
      Move lookahead into a separate thread, set to higher priority than the other threads, for optimal performance.
      Reduces the amount that lookahead bottlenecks encoding, greatly increasing performance with lookahead-intensive settings (e.g. b-adapt 2) on many-core CPUs.
      Buffer size can be controlled with --sync-lookahead, which defaults to auto (threads+bframes buffer size).
      Note that this buffer is separate from the rc-lookahead value.
      Note also that this does not split lookahead itself into multiple threads yet; this may be added in the future.
      Additionally, split frames into "fdec" and "fenc" frame types and keep the two separate.
      This split greatly reduces memory usage, which helps compensate for the larger lookahead size.
      Extremely special thanks to Michael Kazmier and Alex Giladi of Avail Media, the original authors of this patch.
      6940dcae
  19. 31 Aug, 2009 1 commit
    • Fiona Glaser's avatar
      Multi-slice encoding support · 4ccbb199
      Fiona Glaser authored
      Slicing support is available through three methods (which can be mixed):
      --slices sets a number of slices per frame and ensures rectangular slices (required for Blu-ray).  Overridden by either of the following options:
      --slice-max-mbs sets a maximum number of macroblocks per slice.
      --slice-max-size sets a maximum slice size, in bytes (includes NAL overhead).
      Implement macroblock re-encoding support to allow highly accurate slice size limitation.  Might be useful for other things in the future, too.
      4ccbb199
  20. 29 Aug, 2009 1 commit
  21. 24 Aug, 2009 6 commits
  22. 20 Aug, 2009 1 commit
  23. 13 Aug, 2009 1 commit
  24. 27 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Fix two bugs in QPRD · 9ea7b69d
      Fiona Glaser authored
      fprofile settings now actually fprofile QPRD.
      Don't use i_mbrd before initializing it.
      9ea7b69d
  25. 26 Jul, 2009 1 commit
    • Fiona Glaser's avatar
      Add QPRD support as subme=10 · 4304c427
      Fiona Glaser authored
      Refactor trellis lambda selection to be done in analyse_init instead of in trellis.
      This will allow for more easy adaption of lambda later on; for now it allows constant lambda across variable QPs.
      QPRD is only available with adaptive quantization enabled and generally improves SSIM and visual quality.
      Additionally, weight the SSD values from RD based on the relative QP offset for chroma; helps visually at high QPs where chroma has a lower QP than luma.
      This fixes some visual artifacts created by QPRD at high QPs.
      Note that this generally hurts PSNR and SSIM, and so is only on when psy-RD is on.
      4304c427
  26. 07 Jul, 2009 1 commit
  27. 04 Mar, 2009 1 commit
  28. 11 Feb, 2009 1 commit