1. 20 May, 2013 1 commit
  2. 23 Apr, 2013 1 commit
    • Steve Borho's avatar
      OpenCL lookahead · f49a1b2e
      Steve Borho authored
      OpenCL support is compiled in by default, but must be enabled at runtime by an
      --opencl command line flag. Compiling OpenCL support requires perl. To avoid
      the perl requirement use: configure --disable-opencl.
      
      When enabled, the lookahead thread is mostly off-loaded to an OpenCL capable GPU
      device.  Lowres intra cost prediction, lowres motion search (including subpel)
      and bidir cost predictions are all done on the GPU.  MB-tree and final slice
      decisions are still done by the CPU.  Presets which do not use a threaded
      lookahead will not use OpenCL at all (superfast, ultrafast).
      
      Because of data dependencies, the GPU must use an iterative motion search which
      performs more total work than the CPU would do, so this is not work efficient
      or power efficient. But if there are spare GPU cycles to spare, it can often
      speed up the encode. Output quality when OpenCL lookahead is enabled is often
      very slightly worse in quality than the CPU quality (because of the same data
      dependencies).
      
      x264 must compile its OpenCL kernels for your device before running them, and in
      order to avoid doing this every run it caches the compiled kernel binary in a
      file named x264_lookahead.clbin (--opencl-clbin FNAME to override).  The cache
      file will be ignored if the device, driver, or OpenCL source are changed.
      
      x264 will use the first GPU device which supports the required cl_image
      features required by its kernels. Most modern discrete GPUs and all AMD
      integrated GPUs will work.  Intel integrated GPUs (up to IvyBridge) do not
      support those necessary features. Use --opencl-device N to specify a number of
      capable GPUs to skip during device detection.
      
      Switchable graphics environments (e.g. AMD Enduro) are currently not supported,
      as some have bugs in their OpenCL drivers that cause output to be silently
      incorrect.
      
      Developed by MulticoreWare with support from AMD and Telestream.
      f49a1b2e
  3. 23 Apr, 2012 1 commit
  4. 06 Mar, 2012 1 commit
  5. 04 Feb, 2012 2 commits
  6. 15 Jan, 2012 1 commit
    • Loren Merritt's avatar
      CABAC trellis opts part 4: x86_64 asm · 7d804baf
      Loren Merritt authored
      Another 20% faster.
      18k->12k codesize.
      
      This patch series may have a large impact on encoding speed.
      For example, 24% faster at --preset slower --crf 23 with 720p parkjoy.
      Overall speed increase is proportional to the cost of trellis (which is proportional to bitrate, and much more with --trellis 2).
      7d804baf
  7. 12 Jan, 2012 1 commit
  8. 28 Nov, 2011 1 commit
  9. 09 Sep, 2011 1 commit
  10. 12 May, 2011 1 commit
    • Nikoli's avatar
      Improve build system capabilities · 5a37283d
      Nikoli authored
      Make static lib and CLI optional.
      Support linking CLI to system libx264.
      Don't strip by default, to match GNU packaging guidelines.
      5a37283d
  11. 24 Mar, 2011 1 commit
  12. 14 Dec, 2010 1 commit
  13. 07 Dec, 2010 2 commits
  14. 05 Dec, 2010 1 commit
  15. 25 Nov, 2010 1 commit
  16. 23 Nov, 2010 1 commit
  17. 19 Nov, 2010 2 commits
    • Oskar Arvidsson's avatar
      Convert X264_HIGH_BIT_DEPTH to HIGH_BIT_DEPTH · 1382552b
      Oskar Arvidsson authored
      Less verbose.
      1382552b
    • Oskar Arvidsson's avatar
      x86 asm for high-bit-depth pixel metrics · abde94f6
      Oskar Arvidsson authored
      Overall speed change from these 6 asm patches: ~4.4x.
      But there's still tons more asm to do -- patches welcome!
      
      Breakdown from this patch:
      ~13x faster SAD than C.
      ~11.5x faster SATD than C (only MMX done).
      ~18.5x faster SA8D than C.
      ~19.2x faster hadamard_ac than C.
      ~8.3x faster SSD than C.
      ~12.4x faster VAR than C.
      ~3-4.2x faster intra SAD than C.
      ~7.9x faster intra SATD than C.
      abde94f6
  18. 10 Oct, 2010 1 commit
  19. 28 Sep, 2010 1 commit
    • Oskar Arvidsson's avatar
      Finish support for high-depth video throughout x264 · 0467589e
      Oskar Arvidsson authored
      Add support for high depth input in libx264.
      Add support for 16-bit colorspaces in the filtering system.
      Add support for input bit depths in the interval [9,16] with the raw demuxer.
      Add a depth filter to dither input to x264.
      0467589e
  20. 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
  21. 15 Jul, 2010 1 commit
  22. 25 Jun, 2010 1 commit
  23. 09 Jun, 2010 1 commit
  24. 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
  25. 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
  26. 24 Apr, 2010 1 commit
  27. 23 Apr, 2010 3 commits
  28. 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
  29. 25 Feb, 2010 1 commit
  30. 30 Jan, 2010 2 commits
  31. 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