1. 01 Nov, 2019 1 commit
  2. 17 Jul, 2019 3 commits
  3. 06 Mar, 2019 2 commits
  4. 23 Dec, 2018 1 commit
  5. 06 Aug, 2018 3 commits
  6. 27 May, 2018 1 commit
  7. 31 Mar, 2018 1 commit
    • Martin Storsjö's avatar
      configure: Only use gas-preprocessor with armasm for compiler=CL · 3d90057e
      Martin Storsjö authored
      This picks the right assembler automatically for arm and aarch64
      llvm-mingw targets.
      
      This doesn't get the right assembler for clang setups when clang
      acts like MSVC and uses MSVC headers though (where it perhaps
      should use armasm as before), but that's probably an even more
      obscure setup.
      3d90057e
  8. 17 Jan, 2018 1 commit
  9. 24 Dec, 2017 5 commits
    • Martin Storsjö's avatar
    • Anton Mitrofanov's avatar
      configure: Improvements · 694d031c
      Anton Mitrofanov authored
      Log result of pkg-config checks to config.log.
      Fix lavf support detection for pkg-config fallback case.
      Fix detection of linking dependencies errors for lavf/lsmash/gpac.
      Cosmetics.
      694d031c
    • Vittorio Giovara's avatar
      Unify 8-bit and 10-bit CLI and libraries · 71ed44c7
      Vittorio Giovara authored
      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
    • Anton Mitrofanov's avatar
      4e2ed408
    • Henrik Gramner's avatar
      1e27313c
  10. 23 May, 2017 1 commit
  11. 21 May, 2017 8 commits
    • Henrik Gramner's avatar
      x86: AVX-512 support · 472ce364
      Henrik Gramner authored
      AVX-512 consists of a plethora of different extensions, but in order to keep
      things a bit more manageable we group together the following extensions
      under a single baseline cpu flag which should cover SKL-X and future CPUs:
       * AVX-512 Foundation (F)
       * AVX-512 Conflict Detection Instructions (CD)
       * AVX-512 Byte and Word Instructions (BW)
       * AVX-512 Doubleword and Quadword Instructions (DQ)
       * AVX-512 Vector Length Extensions (VL)
      
      On x86-64 AVX-512 provides 16 additional vector registers, prefer using
      those over existing ones since it allows us to avoid using `vzeroupper`
      unless more than 16 vector registers are required. They also happen to
      be volatile on Windows which means that we don't need to save and restore
      existing xmm register contents unless more than 22 vector registers are
      required.
      
      Also take the opportunity to drop X264_CPU_CMOV and X264_CPU_SLOW_CTZ while
      we're breaking API by messing with the cpu flags since they weren't really
      used for anything.
      
      Big thanks to Intel for their support.
      472ce364
    • Henrik Gramner's avatar
      x86: Change assembler from yasm to nasm · d2b5f487
      Henrik Gramner authored
      This is required to support AVX-512.
      
      Drop `-Worphan-labels` from ASFLAGS since it's enabled by default in nasm.
      
      Also change alignmode from `k8` to `p6` since it's more similar to `amdnop`
      in yasm, e.g. use long nops without excessive prefixes.
      d2b5f487
    • Anton Mitrofanov's avatar
      msvs/icl: Improve target host detection · 8ae2b624
      Anton Mitrofanov authored
      8ae2b624
    • Martin Storsjö's avatar
      configure: Support targeting ARM with MSVC tools · a52d41c4
      Martin Storsjö authored
      Set up the right gas-preprocessor as assembler frontend in these cases,
      using armasm as actual assembler.
      
      Don't try to add the -mcpu -mfpu options in this case.
      
      Check whether the compiler actually supports inline assembly.
      
      Check for the ARMv7 features in a different way for the MSVC compiler.
      a52d41c4
    • Martin Storsjö's avatar
      configure: Check for -lshell32 before forcibly adding it into LDFLAGSCLI · b22a5db3
      Martin Storsjö authored
      When targeting the Windows Phone API subset, there is no shell32.lib.
      
      When targeting Windows Phone/RT, the CLI itself won't be built, but
      LDFLAGSCLI are included in all later cases of cc_check within configure.
      Therefore only add -lshell32 there if it actually is usable.
      b22a5db3
    • Martin Storsjö's avatar
      arm: Skip using gas-preprocessor for iOS on arm as well · d1370519
      Martin Storsjö authored
      The few constructs that differ can easily be handled within the
      source itself - tested to be working since at least Xcode 6.
      d1370519
    • Martin Storsjö's avatar
      aarch64: Skip invoking gas-preprocessor for iOS · a84e6a48
      Martin Storsjö authored
      Clang can handle all the constructs used there these days, working
      since Xcode 6 at least.
      a84e6a48
    • Henrik Gramner's avatar
      Windows: Add support for MSVC compilation with WSL · bec87ba6
      Henrik Gramner authored
      In Windows 10 version 1703 (Creators Update) WSL supports calling native
      Windows binaries from the Bash shell, but it requires using full file
      names including extension, e.g. `cl.exe` instead of `cl`.
      
      We also don't have access to `cygpath`, so use a simple regex for
      converting the dependencies to Unix paths that `make` can understand.
      bec87ba6
  12. 19 May, 2017 1 commit
  13. 14 Apr, 2017 1 commit
  14. 23 Mar, 2017 1 commit
  15. 01 Dec, 2016 1 commit
  16. 13 Jun, 2016 3 commits
  17. 20 Apr, 2016 1 commit
    • Henrik Gramner's avatar
      Eliminate some compiler warnings on BSD · 2102de25
      Henrik Gramner authored
      Include <strings.h> in addition to <string.h>. According to the POSIX
      specification the prototypes for strcasecmp() and strncasecmp() are
      declared in <strings.h>. On some systems they are also declared in
      <string.h> for compatibility reasons but we shouldn't rely on that.
      
      Define _POSIX_C_SOURCE only when it's required to do so. Some BSD
      variants doesn't declare certain function prototypes otherwise.
      2102de25
  18. 12 Apr, 2016 2 commits
  19. 11 Apr, 2016 3 commits
    • Henrik Gramner's avatar
      ffms: Various improvements · dfe394ca
      Henrik Gramner authored
       * Drop the MinGW Unicode workarounds. Those were required at the time
         Windows Unicode support was added to x264 but the underlying problem
         has since been fixed in FFMS.
      
       * Use FFMS_IndexBelongsToFile() as an additional sanity check when reading
         an index file to ensure that it belongs to the current source video.
      
       * Upgrade to the new API to prevent deprecation warnings when compiling.
      
       * Fix a resource leak that would occur if FFMS_GetFirstTrackOfType() or
         FFMS_CreateVideoSource() failed.
      
       * Minor string handling adjustments related to progress reporting.
      
      This increases the FFMS version requirement from 2.16.2 to 2.21.0.
      dfe394ca
    • Henrik Gramner's avatar
      configure: Define feature test macros for --std=gnu99 · 5be32efc
      Henrik Gramner authored
      Makes the printf() family functions on MinGW use the correct C99 POSIX
      versions instead of the broken pre-VS2015 Microsoft ones.
      
      Also allows us to get rid of some _GNU_SOURCE and _ISOC99_SOURCE defines.
      5be32efc
    • Henrik Gramner's avatar
      mingw: Enable high-entropy ASLR on 64-bit Windows · c01bf421
      Henrik Gramner authored
      To fully utilize HEASLR the image base address must also be set above
      4 GiB. For consistency use the same address as MSVC uses by default.
      
      This requires binutils 2.25 which isn't available on all common
      distributions, so only enable it after checking that it's supported.
      c01bf421