1. 29 Jun, 2018 1 commit
  2. 02 Jun, 2018 1 commit
    • Henrik Gramner's avatar
      Fix clang stack alignment issues · 7737e6ad
      Henrik Gramner authored
      Clang emits aligned AVX stores for things like zeroing stack-allocated
      variables when using -mavx even with -fno-tree-vectorize set which can
      result in crashes if this occurs before we've realigned the stack.
      
      Previously we only ensured that the stack was realigned before calling
      assembly functions that accesses stack-allocated buffers but this is
      not sufficient. Fix the issue by changing the stack realignment to
      instead occur immediately in all CLI, API and thread entry points.
      7737e6ad
  3. 27 May, 2018 1 commit
  4. 17 Jan, 2018 1 commit
  5. 24 Dec, 2017 3 commits
    • Vittorio Giovara's avatar
      Support writing the alternative transfer SEI message · 95cdb743
      Vittorio Giovara authored and Anton Mitrofanov's avatar Anton Mitrofanov committed
      95cdb743
    • Vittorio Giovara's avatar
      Support 04/2017 color matrix and transfer values · c98d02be
      Vittorio Giovara authored and Anton Mitrofanov's avatar Anton Mitrofanov committed
      c98d02be
    • Vittorio Giovara's avatar
      Unify 8-bit and 10-bit CLI and libraries · 71ed44c7
      Vittorio Giovara authored and Anton Mitrofanov's avatar Anton Mitrofanov committed
      Add 'i_bitdepth' to x264_param_t with the corresponding '--output-depth' CLI
      option to set the bit depth at runtime.
      
      Drop the 'x264_bit_depth' global variable. Rather than hardcoding it to an
      incorrect value, it's preferable to induce a linking failure. If applications
      relies on this symbol this will make it more obvious where the problem is.
      
      Add Makefile rules that compiles modules with different bit depths. Assembly
      on x86 is prefixed with the 'private_prefix' define, while all other archs
      modify their function prefix internally.
      
      Templatize the main C library, x86/x86_64 assembly, ARM assembly, AARCH64
      assembly, PowerPC assembly, and MIPS assembly.
      
      The depth and cache CLI filters heavily depend on bit depth size, so they
      need to be duplicated for each value. This means having to rename these
      filters, and adjust the callers to use the right version.
      
      Unfortunately the threaded input CLI module inherits a common.h dependency
      (input/frame -> common/threadpool -> common/frame -> common/common) which
      is extremely complicated to address in a sensible way. Instead duplicate
      the module and select the appropriate one at run time.
      
      Each bitdepth needs different checkasm compilation rules, so split the main
      checkasm target into two executables.
      71ed44c7
  6. 21 May, 2017 1 commit
  7. 21 Jan, 2017 1 commit
  8. 01 Dec, 2016 2 commits
  9. 20 Sep, 2016 1 commit
  10. 13 Jun, 2016 1 commit
  11. 11 Apr, 2016 2 commits
  12. 16 Jan, 2016 1 commit
  13. 11 Oct, 2015 1 commit
  14. 23 Feb, 2015 5 commits
  15. 20 Dec, 2014 1 commit
  16. 20 Jul, 2014 1 commit
  17. 21 Jan, 2014 2 commits
  18. 08 Jan, 2014 1 commit
  19. 30 Oct, 2013 4 commits
  20. 25 Oct, 2013 1 commit
  21. 23 Aug, 2013 2 commits
    • Henrik Gramner's avatar
      Windows Unicode support · fa3cac51
      Henrik Gramner authored
      Windows, unlike most other operating systems, uses UTF-16 for Unicode strings while x264 is designed for UTF-8.
      
      This patch does the following in order to handle things like Unicode filenames:
      * Keep strings internally as UTF-8.
      * Retrieve the CLI command line as UTF-16 and convert it to UTF-8.
      * Always use Unicode versions of Windows API functions and convert strings to UTF-16 when calling them.
      * Attempt to use legacy 8.3 short filenames for external libraries without Unicode support.
      fa3cac51
    • Kieran Kunhya's avatar
      AVC-Intra support · 9b94896b
      Kieran Kunhya authored
      This format has been reverse engineered and x264's output has almost exactly
      the same bitstream as Panasonic cameras and encoders produce. It therefore does
      not comply with SMPTE RP2027 since Panasonic themselves do not comply with
      their own specification. It has been tested in Avid, Premiere, Edius and
      Quantel.
      
      Parts of this patch were written by Fiona Glaser and some reverse
      engineering was done by Joseph Artsimovich.
      9b94896b
  22. 03 Jul, 2013 2 commits
  23. 23 Apr, 2013 3 commits
    • 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 co...
      f49a1b2e
    • Fiona Glaser's avatar
      Add slices-max feature · 732e4f7e
      Fiona Glaser authored
      The H.264 spec technically has limits on the number of slices per frame. x264
      normally ignores this, since most use-cases that require large numbers of
      slices prefer it to. However, certain decoders may break with extremely large
      numbers of slices, as can occur with some slice-max-size/mbs settings.
      
      When set, x264 will refuse to create any slices beyond the maximum number,
      even if slice-max-size/mbs requires otherwise.
      732e4f7e
    • Fiona Glaser's avatar
      Add slice-min-mbs feature · fdfffa30
      Fiona Glaser authored
      Works in conjunction with slice-max-mbs and/or slice-max-size to avoid overly
      small slices.
      Useful with certain decoders that barf on extremely small slices.
      
      If slice-min-mbs would be violated as a result of slice-max-size, x264 will
      exceed slice-max-size and print a warning.
      fdfffa30
  24. 25 Feb, 2013 1 commit