]> git.sesse.net Git - x264/log
x264
9 years agoSafety check against malicious high bit-depth input which could cause crash
Anton Mitrofanov [Sun, 12 Oct 2014 17:01:53 +0000 (21:01 +0400)]
Safety check against malicious high bit-depth input which could cause crash

9 years agolibx264 API usage example
Anton Mitrofanov [Sun, 12 Oct 2014 16:45:40 +0000 (20:45 +0400)]
libx264 API usage example

9 years agox86: AVX2 high bit-depth var_16x16
Henrik Gramner [Fri, 17 Oct 2014 19:35:42 +0000 (21:35 +0200)]
x86: AVX2 high bit-depth var_16x16

40->27 cycles on Haswell.

9 years agocheckasm: Serialize read_time() calls on x86
Henrik Gramner [Wed, 8 Oct 2014 20:25:35 +0000 (22:25 +0200)]
checkasm: Serialize read_time() calls on x86

Improves the accuracy of benchmarks, especially in short functions.

To quote the Intel 64 and IA-32 Architectures Software Developer's Manual:
"The RDTSC instruction is not a serializing instruction. It does not necessarily
wait until all previous instructions have been executed before reading the counter.
Similarly, subsequent instructions may begin execution before the read operation
is performed. If software requires RDTSC to be executed only after all previous
instructions have completed locally, it can either use RDTSCP (if the processor
supports that instruction) or execute the sequence LFENCE;RDTSC."

RDTSCP would accomplish the same task, but it's only available since Nehalem.

This change makes SSE2 a requirement to run checkasm.

9 years agoSupport case-independent string options
Vittorio Giovara [Mon, 29 Sep 2014 17:51:30 +0000 (18:51 +0100)]
Support case-independent string options

9 years agoShut up gcc -Wuninitialized warnings
Anton Mitrofanov [Sat, 6 Sep 2014 16:44:49 +0000 (20:44 +0400)]
Shut up gcc -Wuninitialized warnings

9 years agoShut up clang -Wuninitialized warning
Anton Mitrofanov [Fri, 5 Sep 2014 15:43:52 +0000 (19:43 +0400)]
Shut up clang -Wuninitialized warning

9 years agoFix few clang -Wunused-* warnings
Anton Mitrofanov [Fri, 5 Sep 2014 15:30:47 +0000 (19:30 +0400)]
Fix few clang -Wunused-* warnings

9 years agoFix inappropriate instruction use
Anton Mitrofanov [Thu, 28 Aug 2014 16:13:13 +0000 (20:13 +0400)]
Fix inappropriate instruction use

9 years agox264asm: warn when inappropriate instruction used in function with specified cpuflags
Anton Mitrofanov [Thu, 28 Aug 2014 14:38:53 +0000 (18:38 +0400)]
x264asm: warn when inappropriate instruction used in function with specified cpuflags

9 years agoFix VBV with true VFR streams
Anton Mitrofanov [Mon, 1 Sep 2014 21:48:00 +0000 (01:48 +0400)]
Fix VBV with true VFR streams

9 years agoFix VBV
Anton Mitrofanov [Mon, 1 Sep 2014 18:45:00 +0000 (22:45 +0400)]
Fix VBV

9 years agoUpdate to the current lavf API and fix memory leak when using --seek
Anton Mitrofanov [Tue, 29 Jul 2014 23:03:32 +0000 (03:03 +0400)]
Update to the current lavf API and fix memory leak when using --seek

9 years agox86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags
Henrik Gramner [Mon, 4 Aug 2014 23:42:55 +0000 (01:42 +0200)]
x86inc: Make INIT_CPUFLAGS support an arbitrary number of cpuflags

Previously there was a limit of two cpuflags.

9 years agox86: Minor pixel_ssim_end4 improvements
Henrik Gramner [Mon, 4 Aug 2014 23:42:51 +0000 (01:42 +0200)]
x86: Minor pixel_ssim_end4 improvements

Reduce the number of vector registers used from 7 to 5.
Eliminate some moves in the AVX implementation.
Avoid bypass delays for transitioning between int and float domains.

9 years agox86: Faster quant_4x4x4
Henrik Gramner [Mon, 4 Aug 2014 23:42:47 +0000 (01:42 +0200)]
x86: Faster quant_4x4x4

Also drop the MMX version instead of doing a bunch of ifdeffery to support it after this change.

9 years agoconfigure: improve cc_check for clang and ICL to not ignore unknown options
Anton Mitrofanov [Sun, 10 Aug 2014 18:46:12 +0000 (22:46 +0400)]
configure: improve cc_check for clang and ICL to not ignore unknown options

9 years agocheckasm: Only call x264_cpu_detect() once
Henrik Gramner [Mon, 4 Aug 2014 23:42:44 +0000 (01:42 +0200)]
checkasm: Only call x264_cpu_detect() once

9 years agoaarch64: deblocking NEON asm
Janne Grunau [Fri, 18 Jul 2014 13:49:10 +0000 (14:49 +0100)]
aarch64: deblocking NEON asm

Deblock chroma/luma are based on libav's h264 aarch64 NEON deblocking
filter which was ported by me from the existing ARM NEON asm. No
additional persons to ask for a relicense.

9 years agoaarch64: intra predition NEON asm
Janne Grunau [Fri, 18 Jul 2014 08:29:35 +0000 (09:29 +0100)]
aarch64: intra predition NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: motion compensation NEON asm
Janne Grunau [Thu, 17 Jul 2014 14:58:44 +0000 (15:58 +0100)]
aarch64: motion compensation NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: transform and zigzag NEON asm
Janne Grunau [Wed, 16 Jul 2014 09:03:52 +0000 (10:03 +0100)]
aarch64: transform and zigzag NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: quantization and level-run NEON asm
Janne Grunau [Tue, 15 Jul 2014 11:57:03 +0000 (12:57 +0100)]
aarch64: quantization and level-run NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: pixel metrics NEON asm
Janne Grunau [Wed, 19 Mar 2014 12:48:21 +0000 (13:48 +0100)]
aarch64: pixel metrics NEON asm

Ported from the ARM NEON asm.

9 years agoaarch64: add utility functions for asm
Janne Grunau [Fri, 18 Jul 2014 15:44:57 +0000 (17:44 +0200)]
aarch64: add utility functions for asm

9 years agoaarch64: add armv8 and neon cpu flags and test them
Janne Grunau [Wed, 19 Mar 2014 12:45:17 +0000 (13:45 +0100)]
aarch64: add armv8 and neon cpu flags and test them

9 years agoaarch64: initial build support
Janne Grunau [Tue, 18 Mar 2014 21:10:24 +0000 (22:10 +0100)]
aarch64: initial build support

9 years agocheckasm: test zigzag_sub_8x8_{frame,field}
Janne Grunau [Tue, 22 Jul 2014 17:28:27 +0000 (19:28 +0200)]
checkasm: test zigzag_sub_8x8_{frame,field}

9 years agoarm: use long multiplication in mc_weight_w*_neon
Janne Grunau [Sun, 20 Jul 2014 16:29:01 +0000 (18:29 +0200)]
arm: use long multiplication in mc_weight_w*_neon

9-19% faster on a cortex-a9.

9 years agoarm: do not use aligned stores in mc_weight_w4_*neon
Janne Grunau [Sun, 20 Jul 2014 16:24:57 +0000 (18:24 +0200)]
arm: do not use aligned stores in mc_weight_w4_*neon

mc_weight_w4_*neon is also used for width 2 which does not guarantee
4-byte aligned destination. Fixes crashes caused by random memory
corruption.

9 years agocheckasm: add memory clobber to read_time inline asm
Janne Grunau [Wed, 2 Apr 2014 14:31:28 +0000 (16:31 +0200)]
checkasm: add memory clobber to read_time inline asm

The memory acts as compiler barrier preventing aggressive reordering
of read_time calls. gcc 4.8 reorders some of initial read_time calls
after the second when targeting arm.

9 years agoarm: check if the assembler supports the '.func' directive
Janne Grunau [Sun, 20 Jul 2014 11:32:10 +0000 (13:32 +0200)]
arm: check if the assembler supports the '.func' directive

The integrated assembler in llvm trunk (to be released as 3.5) is
otherwise capable enough to assemble the arm asm correctly.

9 years agoarm/ppc: use $CC as default assembler
Janne Grunau [Sun, 20 Jul 2014 11:40:28 +0000 (13:40 +0200)]
arm/ppc: use $CC as default assembler

9 years agoarm: move instructions after '.rept' to separate line
Janne Grunau [Sun, 20 Jul 2014 11:34:27 +0000 (13:34 +0200)]
arm: move instructions after '.rept' to separate line

The gas manual states "Repeat the sequence of lines between the .rept
directive and the next .endr directive ...". GNU as seems to support
instructions on the same line as .rept anyway but the integrated
assembler in llvm trunk (to be released 3.5 in August 2014) does not.

9 years agoarm: set .arch/.fpu from asm.S
Janne Grunau [Sun, 20 Jul 2014 11:08:17 +0000 (13:08 +0200)]
arm: set .arch/.fpu from asm.S

9 years agoarm: do not append CFLAGS to ASFLAGS
Janne Grunau [Sun, 20 Jul 2014 10:55:53 +0000 (12:55 +0200)]
arm: do not append CFLAGS to ASFLAGS

9 years agofilters: fix sizeof mismatch
Tristan Matthews [Thu, 17 Jul 2014 04:03:50 +0000 (00:03 -0400)]
filters: fix sizeof mismatch

9 years agoFix memory leak when using select_every filter
Anton Mitrofanov [Thu, 31 Jul 2014 12:17:32 +0000 (16:17 +0400)]
Fix memory leak when using select_every filter

9 years agoFix cltostr.sh on OS X
Tsukasa OMOTO [Sun, 20 Jul 2014 13:17:11 +0000 (22:17 +0900)]
Fix cltostr.sh on OS X

9 years agoCheck pf_log is set in validate_parameters
Fiona Glaser [Wed, 9 Jul 2014 19:21:33 +0000 (12:21 -0700)]
Check pf_log is set in validate_parameters

Help remind people to call x264_param_default in case they didn't read the
documentation.

9 years agoCheck malloc during frame dumping
Anton Mitrofanov [Wed, 9 Jul 2014 13:17:04 +0000 (17:17 +0400)]
Check malloc during frame dumping

9 years agomp4_lsmash: Use new I/O API instead of deprecated one.
Yusuke Nakamura [Wed, 18 Jun 2014 20:21:29 +0000 (05:21 +0900)]
mp4_lsmash: Use new I/O API instead of deprecated one.

9 years agoRemove meaningless use of abs()
Anton Mitrofanov [Sun, 8 Jun 2014 18:19:46 +0000 (22:19 +0400)]
Remove meaningless use of abs()

9 years agoMSVS 2013 Update 2 support
Steven Walters [Sat, 31 May 2014 14:31:16 +0000 (10:31 -0400)]
MSVS 2013 Update 2 support

The first MSVS compiler C99 compliant enough to build x264.
Use `CC=cl ./configure` to compile with it.

9 years agoconfigure: Add -Wno-maybe-uninitialized to CFLAGS
Diego Biurrun [Tue, 15 Apr 2014 20:54:08 +0000 (22:54 +0200)]
configure: Add -Wno-maybe-uninitialized to CFLAGS

The warnings generated by -Wmaybe-uninitialized are mostly spurious.

9 years agobuild: Replace cltostr.pl by a shell script
Diego Biurrun [Wed, 7 May 2014 11:20:43 +0000 (13:20 +0200)]
build: Replace cltostr.pl by a shell script

This avoids a dependency on Perl to build OpenCL support.

9 years agobuild: Simplify phony target declaration with wildcards
Diego Biurrun [Tue, 15 Apr 2014 21:02:39 +0000 (23:02 +0200)]
build: Simplify phony target declaration with wildcards

Also add etags to list of phony targets.

9 years agoconfigure: Drop workaround for obsolete gcc 4.2 on ARM
Diego Biurrun [Wed, 7 May 2014 10:47:37 +0000 (12:47 +0200)]
configure: Drop workaround for obsolete gcc 4.2 on ARM

9 years agobuild: Add dependencies on x86inc.asm/x86util.asm for all .asm files
Diego Biurrun [Wed, 7 May 2014 19:43:15 +0000 (21:43 +0200)]
build: Add dependencies on x86inc.asm/x86util.asm for all .asm files

This is a little bit overzealous, but errs on the side of caution.
Generating full dependency information is also possible, but slightly
slows down the build as YASM cannot do it as a sideeffect of compilation.

9 years agoDelete all SPARC optimizations
Diego Biurrun [Sun, 27 Apr 2014 19:09:54 +0000 (21:09 +0200)]
Delete all SPARC optimizations

SPARC has been obsolete for a long time and makes little sense as a
H.264 encoding platform.

Also update authors file.

9 years agoconfigure: Don't check for libavcore
Diego Biurrun [Wed, 7 May 2014 10:46:42 +0000 (12:46 +0200)]
configure: Don't check for libavcore

libavcore was a never-released bad idea with a short lifespan.

9 years agobuild: Set all ASFLAGS from within configure
Diego Biurrun [Sun, 27 Apr 2014 21:19:04 +0000 (23:19 +0200)]
build: Set all ASFLAGS from within configure

This is how all other toolchain flags are handled.

9 years agoopencl: Check return value of fread()
Diego Biurrun [Sun, 27 Apr 2014 21:23:49 +0000 (23:23 +0200)]
opencl: Check return value of fread()

common/opencl.c:138:10: warning: ignoring return value of 'fread', declared with attribute warn_unused_result [-Wunused-result]

9 years agoDisable i8x8 in lossless
Fiona Glaser [Sun, 20 Jul 2014 03:34:22 +0000 (20:34 -0700)]
Disable i8x8 in lossless

x264's implementation was slightly incorrect due to a vague spec, so some
decoders decoded video incorrectly.

Minimal impact on compression.

9 years agoAVC-Intra: fix compatibility with Avid Transfermanager
Thomas Mundt [Fri, 27 Jun 2014 18:12:06 +0000 (11:12 -0700)]
AVC-Intra: fix compatibility with Avid Transfermanager

9 years agox86: Fix SIGILL in high bit-depth intra_sad_x3_4x4_sse2
Henrik Gramner [Tue, 8 Jul 2014 19:15:32 +0000 (21:15 +0200)]
x86: Fix SIGILL in high bit-depth intra_sad_x3_4x4_sse2

An SSE3 instruction was used in an SSE2 function.

9 years agoFix incorrect row predictor addressing
Anton Mitrofanov [Wed, 9 Jul 2014 13:01:54 +0000 (17:01 +0400)]
Fix incorrect row predictor addressing

Somehow managed to not cause things to explode, but was clearly incorrect.
Might improve VBV in some cases to have this working right.

9 years agoFix b-pyramid MMCO remove for frame-packing==5
Anton Mitrofanov [Sat, 21 Jun 2014 19:52:39 +0000 (23:52 +0400)]
Fix b-pyramid MMCO remove for frame-packing==5

9 years agoFix frame-packing==5 with some decoders
Tal Aloni [Tue, 17 Jun 2014 22:10:56 +0000 (15:10 -0700)]
Fix frame-packing==5 with some decoders

The spec mandates that frame-packing==5 requires the SEI on every frame that
begins a view sequence (i.e. the input frames L0-R0-L1-R1 have 4 view sequences,
but if reordered by the encoder to L0-L1-R0-R1 there are now 2 view sequences).
For simplicity, we write the SEI on every frame.

This fixes frame-packing==5 3D playback on some decoders (PlayStation 3, Sony
W8 series, possibly others).

9 years agoFix pixel_ssim_end4 asm function for x86_64 systems
Anton Mitrofanov [Thu, 22 May 2014 09:27:00 +0000 (13:27 +0400)]
Fix pixel_ssim_end4 asm function for x86_64 systems

10 years agox86: XOP pixel_sad_{x3, x4} high bit-depth
James Almer [Wed, 9 Apr 2014 06:33:06 +0000 (03:33 -0300)]
x86: XOP pixel_sad_{x3, x4} high bit-depth

10 years agox86: XOP pixel_ssd_nv12_core
James Almer [Wed, 9 Apr 2014 06:33:05 +0000 (03:33 -0300)]
x86: XOP pixel_ssd_nv12_core

10 years agox86util: XOP optimized HADDD
James Almer [Wed, 9 Apr 2014 06:33:04 +0000 (03:33 -0300)]
x86util: XOP optimized HADDD

10 years agox86: add missing initialization for high bit-depth sa8d_satd
James Almer [Wed, 9 Apr 2014 06:33:03 +0000 (03:33 -0300)]
x86: add missing initialization for high bit-depth sa8d_satd

10 years agox86: add missing initializations for high bit-depth variance
James Almer [Sun, 6 Apr 2014 02:46:31 +0000 (23:46 -0300)]
x86: add missing initializations for high bit-depth variance

10 years agoarm: use the weight_fn_t typedef for mc weight function arrays
Janne Grunau [Tue, 1 Apr 2014 20:11:45 +0000 (22:11 +0200)]
arm: use the weight_fn_t typedef for mc weight function arrays

10 years agoarm: correct x264_mc_chroma_neon function declaration
Janne Grunau [Tue, 1 Apr 2014 20:11:44 +0000 (22:11 +0200)]
arm: correct x264_mc_chroma_neon function declaration

10 years agoarm: do not export every asm function
Janne Grunau [Tue, 1 Apr 2014 20:11:43 +0000 (22:11 +0200)]
arm: do not export every asm function

Based on Libav's libavutil/arm/asm.S. Also prevents having the same
label twice for every function on systems not defining EXTERN_ASM.
Clang's integrated assembler does not like it.

10 years agoarm: move all .macro/.endm to column 0
Janne Grunau [Tue, 1 Apr 2014 20:11:42 +0000 (22:11 +0200)]
arm: move all .macro/.endm to column 0

10 years agoaarch64: require PIC in shared mode
William Grant [Sun, 23 Mar 2014 16:21:52 +0000 (09:21 -0700)]
aarch64: require PIC in shared mode

10 years agoarm: x264_coeff_last8_arm
Janne Grunau [Sun, 16 Mar 2014 16:21:58 +0000 (17:21 +0100)]
arm: x264_coeff_last8_arm

checkasm --bench on a coretex-a9:
coeff_last8_c: 173
coeff_last8_armv6: 151

60 instead of 73 cycles in ~130k runs on the same cpu while encoding.

10 years agoarm: x264_store_interleave_chroma_neon
Janne Grunau [Sat, 15 Mar 2014 19:09:18 +0000 (20:09 +0100)]
arm: x264_store_interleave_chroma_neon

store_interleave_chroma_c: 4036
store_interleave_chroma_neon: 1043

10 years agoarm: x264_plane_copy_interleave_neon
Janne Grunau [Sat, 15 Mar 2014 18:55:50 +0000 (19:55 +0100)]
arm: x264_plane_copy_interleave_neon

plane_copy_interleave_c: 40285
plane_copy_interleave_neon: 10137

10 years agoarm: x264_plane_copy_deinterleave_rgb_neon
Janne Grunau [Sat, 15 Mar 2014 18:21:12 +0000 (19:21 +0100)]
arm: x264_plane_copy_deinterleave_rgb_neon

plane_copy_deinterleave_rgb_c: 31543
plane_copy_deinterleave_rgb_neon: 8312

10 years agoarm: load_deinterleave_chroma_f{dec,enc}_neon
Janne Grunau [Sat, 15 Mar 2014 17:22:49 +0000 (18:22 +0100)]
arm: load_deinterleave_chroma_f{dec,enc}_neon

load_deinterleave_chroma_fdec_c: 4055
load_deinterleave_chroma_fdec_neon: 995
load_deinterleave_chroma_fenc_c: 4071
load_deinterleave_chroma_fenc_neon: 992

10 years agoarm: x264_plane_copy_deinterleave_neon
Janne Grunau [Sat, 15 Mar 2014 16:22:08 +0000 (17:22 +0100)]
arm: x264_plane_copy_deinterleave_neon

plane_copy_deinterleave_c: 42988
plane_copy_deinterleave_neon: 10184

10 years agoarm: implement deblock_strength_neon
Janne Grunau [Sat, 15 Mar 2014 12:29:41 +0000 (13:29 +0100)]
arm: implement deblock_strength_neon

Based on deblock_strength_avx.

checkasm --bench on a cortex-a9:
deblock_strength_c: 14611
deblock_strength_neon: 1848

10 years agoarm: add missing macro instantiation for x264_pixel_avg_4x16_neon
Janne Grunau [Sat, 15 Mar 2014 09:51:11 +0000 (10:51 +0100)]
arm: add missing macro instantiation for x264_pixel_avg_4x16_neon

checkasm --bench on a cortex-a9:
avg_4x16_c: 8910
avg_4x16_neon: 2091

10 years agoarm: implement x264_predict_4x4_v_armv6
Janne Grunau [Thu, 13 Mar 2014 00:02:13 +0000 (01:02 +0100)]
arm: implement x264_predict_4x4_v_armv6

Alone probably not worth it but allows use of predict_4x4_dc|h_armv6
in intra_sad|satd_x3_4x4_neon.

10 years agoppc: fix build on certain PowerPC variants without Altivec
Roland Stigge [Sun, 23 Mar 2014 16:29:37 +0000 (09:29 -0700)]
ppc: fix build on certain PowerPC variants without Altivec

10 years agoOnly add strip option '-s' for linker flags
Anton Mitrofanov [Mon, 21 Apr 2014 20:58:24 +0000 (00:58 +0400)]
Only add strip option '-s' for linker flags

Fixes some build warnings with clang.

10 years agoconfigure: remove an unnecessary option from CFLAGS on OS X
Tsukasa OMOTO [Sat, 15 Mar 2014 07:53:53 +0000 (16:53 +0900)]
configure: remove an unnecessary option from CFLAGS on OS X

Fixes Clang 3.4 compilation on OS X.

10 years agoMacroblock tree overhaul/optimization
Fiona Glaser [Sun, 23 Feb 2014 18:36:55 +0000 (10:36 -0800)]
Macroblock tree overhaul/optimization

Move the second core part of macroblock tree into an assembly function;
SIMD-optimize roughly half of it (for x86). Roughly ~25-65% faster mbtree,
depending on content.

Slightly change how mbtree handles the tradeoff between range and precision
for propagation.

Overall a slight (but mostly negligible) effect on SSIM and ~2% faster.

10 years agoarm: use available neon functions for intra_sa8d/sad/satd_x3
Janne Grunau [Wed, 12 Mar 2014 23:05:48 +0000 (00:05 +0100)]
arm: use available neon functions for intra_sa8d/sad/satd_x3

4% faster on main/medium, 15% faster on baseline/superfast on a cortex-a9.

10 years agoarm: implement x264_pixel_var2_8x16_neon
Janne Grunau [Wed, 12 Mar 2014 13:35:31 +0000 (14:35 +0100)]
arm: implement x264_pixel_var2_8x16_neon

checkasm --bench on a cortex-a9:
var2_8x16_c: 5677
var2_8x16_neon: 1421

10 years agoarm: implement x264_pixel_var_8x16_neon
Janne Grunau [Wed, 12 Mar 2014 12:16:00 +0000 (13:16 +0100)]
arm: implement x264_pixel_var_8x16_neon

checkasm --bench on a cortex-a9:
var_8x16_c: 4306
var_8x16_neon: 791

10 years agox86: SSE2 and SSSE3 plane_copy_deinterleave_rgb
Henrik Gramner [Sun, 23 Feb 2014 14:33:48 +0000 (15:33 +0100)]
x86: SSE2 and SSSE3 plane_copy_deinterleave_rgb

About 5.6x faster than C on Haswell.

10 years agox86: Minor mbtree_propagate_cost improvements
Henrik Gramner [Sun, 16 Feb 2014 20:24:54 +0000 (21:24 +0100)]
x86: Minor mbtree_propagate_cost improvements

Reduce the number of registers used from 7 to 6.
Reduce the number of vector registers used by the AVX2 implementation from 8 to 7.
Multiply fps_factor by 1/256 once per frame instead of once per macroblock row.
Use mova instead of movu for dst since it's guaranteed to be aligned.
Some cosmetics.

10 years agox86inc: Support arbitrary stack alignments
Henrik Gramner [Sun, 9 Feb 2014 22:58:04 +0000 (23:58 +0100)]
x86inc: Support arbitrary stack alignments

If the stack is known to be at least 32-byte aligned we can safely store ymm
registers on the stack without doing manual alignment.

Change ALLOC_STACK to always align the stack before allocating stack space for
consistency. Previously alignment would occur either before or after allocating
stack space depending on whether manual alignment was required or not.

10 years agox86inc: warn if XOP integer FMA instruction emulation is impossible
Anton Mitrofanov [Fri, 14 Feb 2014 11:53:58 +0000 (15:53 +0400)]
x86inc: warn if XOP integer FMA instruction emulation is impossible

Emulation requires a temporary register if arguments 1 and 4 are the same; this
doesn't obey the semantics of the original instruction, so we can't emulate
that in x86inc.

ffmpeg has an x86util emulation for that case; I'll add it if x264's asm ever
needs it.

Also add pmacsdql emulation.

10 years agox86inc: free up variable name "n" in global namespace
Loren Merritt [Sat, 1 Mar 2014 02:57:56 +0000 (02:57 +0000)]
x86inc: free up variable name "n" in global namespace

10 years agox86: Pass -Worphan-labels to yasm
Henrik Gramner [Wed, 22 Jan 2014 18:09:12 +0000 (19:09 +0100)]
x86: Pass -Worphan-labels to yasm

Makes it easier to detect typos.

10 years agoWrite 3D metadata when outputting Matroska
Steve Lhomme [Sun, 16 Feb 2014 12:15:09 +0000 (13:15 +0100)]
Write 3D metadata when outputting Matroska

For when --frame-packing is set.

10 years agoDon't set chroma_loc_info_present_flag for non-4:2:0
Anton Mitrofanov [Sun, 23 Feb 2014 12:56:03 +0000 (16:56 +0400)]
Don't set chroma_loc_info_present_flag for non-4:2:0

The H.264 spec says it shouldn't be set in these cases.

10 years agox264.h: fix documentation
Fiona Glaser [Mon, 10 Mar 2014 15:42:50 +0000 (08:42 -0700)]
x264.h: fix documentation

The full details of the return values of encoder_encode and encoder_headers
were mistakenly removed a while ago; re-add them.

10 years agoFix pointer cast warning for 64-bit builds
Anton Mitrofanov [Sun, 23 Feb 2014 11:52:57 +0000 (15:52 +0400)]
Fix pointer cast warning for 64-bit builds

10 years agombaff: fix mb_field_decoding_flag tracking and simplify allow skip check
Anton Mitrofanov [Mon, 10 Mar 2014 12:48:02 +0000 (16:48 +0400)]
mbaff: fix mb_field_decoding_flag tracking and simplify allow skip check

Fixes an issue with too many forced non-skips in mbaff+cavlc, as well as
non-deterministic output with mbaff+cavlc+sliced-threads.

10 years agoFix memory overwrite in x264_deblock_h_chroma_mbaff_sse2
Anton Mitrofanov [Sun, 9 Mar 2014 23:22:57 +0000 (03:22 +0400)]
Fix memory overwrite in x264_deblock_h_chroma_mbaff_sse2

Fixes possible corruption with MBAFF+sliced threads.

10 years agoFix corruption with CAVLC overflow handling in MBAFF+main profile
Fiona Glaser [Sun, 2 Mar 2014 18:09:01 +0000 (10:09 -0800)]
Fix corruption with CAVLC overflow handling in MBAFF+main profile

Probably a regression in r2178.

10 years agoFix checkasm --bench output when nop_cycles is too large
Anton Mitrofanov [Mon, 10 Mar 2014 17:17:19 +0000 (21:17 +0400)]
Fix checkasm --bench output when nop_cycles is too large