]>
granicus.if.org Git - libx264/log
Anton Mitrofanov [Sat, 25 Apr 2020 23:56:25 +0000 (02:56 +0300)]
Fix undefined behavior: index out of bounds (one more)
last_non_b_pict_type is initialized to -1.
Bug report by Vitaly Buka.
Anton Mitrofanov [Sat, 25 Apr 2020 21:50:12 +0000 (00:50 +0300)]
Remove use of non-breaking spaces
Anton Mitrofanov [Sat, 25 Apr 2020 21:20:07 +0000 (00:20 +0300)]
Fix file encoding from Windows-1252 to UTF-8
Anton Mitrofanov [Sun, 5 Apr 2020 19:29:32 +0000 (22:29 +0300)]
Fix warning: comparison of integers of different signs [-Wsign-compare]
Anton Mitrofanov [Sun, 5 Apr 2020 18:55:15 +0000 (21:55 +0300)]
Fix error "invalid size of malloc" for 10-bit encodes at i686
Anton Mitrofanov [Sun, 1 Mar 2020 11:44:09 +0000 (14:44 +0300)]
Fix undefined behavior: shift exponent is negative
Anton Mitrofanov [Sun, 1 Mar 2020 11:42:50 +0000 (14:42 +0300)]
Fix undefined behavior: access within misaligned address
Anton Mitrofanov [Sun, 1 Mar 2020 11:17:02 +0000 (14:17 +0300)]
Fix undefined behavior: applying [non-]zero offset to null pointer
Anton Mitrofanov [Sun, 1 Mar 2020 11:00:34 +0000 (14:00 +0300)]
Fix undefined behavior: index out of bounds
Anton Mitrofanov [Sun, 1 Mar 2020 10:38:46 +0000 (13:38 +0300)]
Fix undefined behavior: division by zero
Anton Mitrofanov [Wed, 8 Apr 2020 22:11:23 +0000 (01:11 +0300)]
CI: Fix vlc-contrib URL for windows targets
Anton Mitrofanov [Sat, 29 Feb 2020 19:02:01 +0000 (22:02 +0300)]
Bump dates to 2020
Anton Mitrofanov [Mon, 25 Nov 2019 14:38:57 +0000 (17:38 +0300)]
Check support for force_align_arg_pointer attribute
Closes videolan/x264#9.
Anton Mitrofanov [Mon, 25 Nov 2019 11:58:43 +0000 (14:58 +0300)]
Fix float division by zero when encoding CRF+VBV
Bug report by Sam Panzer.
Anton Mitrofanov [Fri, 15 Nov 2019 00:04:16 +0000 (03:04 +0300)]
Limit maximum supported resolution
And other resolution dependent buffers checks.
Closes videolan/x264#10.
Janne Grunau [Fri, 1 Nov 2019 09:00:11 +0000 (10:00 +0100)]
aarch64: Use HAVE_NEON define during CPU detection
Anton Mitrofanov [Thu, 31 Oct 2019 23:45:39 +0000 (02:45 +0300)]
aarch64: Fix compilation with disabled asm
Anton Mitrofanov [Thu, 31 Oct 2019 21:10:22 +0000 (00:10 +0300)]
Export symbols only when building shared library
Anton Mitrofanov [Thu, 31 Oct 2019 20:22:28 +0000 (23:22 +0300)]
Fix compilation of fprofiled shared build
Anton Mitrofanov [Wed, 8 May 2019 16:19:11 +0000 (19:19 +0300)]
Remove CRT objects use between DLL boundaries
Fix crash of MSVC builds compiled with --system-libx264 and /MT (default) CRT.
Anton Mitrofanov [Mon, 22 Apr 2019 19:18:01 +0000 (22:18 +0300)]
Fix MSVS build with ./configure --enable-shared --system-libx264
Anton Mitrofanov [Fri, 29 Mar 2019 14:53:14 +0000 (17:53 +0300)]
Mark explicitly DSO public API symbols and hide all other by -fvisibility=hidden
Removes need for -Bsymbolic during linking.
Henrik Gramner [Sat, 30 Mar 2019 16:47:25 +0000 (17:47 +0100)]
x86: Perform stack realignment in C instead of assembly
Simplifies a lot of code and avoids having to export public asm functions.
Note that the force_align_arg_pointer function attribute is broken in clang
versions prior to 6.0.1 which may result in crashes, so make sure to either
use a newer clang version or a different compiler.
Anton Mitrofanov [Fri, 12 Jul 2019 12:23:29 +0000 (15:23 +0300)]
Strip git-hash from version in x264.pc
pkg-config doesn't like spaces in version string.
Anton Mitrofanov [Mon, 8 Jul 2019 12:46:56 +0000 (15:46 +0300)]
Revert r2959: Signal Progressive and Constrained profiles
Some hardware decoders reject to decode streams with non-zero
constraint_set4_flag/constraint_set5_flag.
Anton Mitrofanov [Fri, 14 Jun 2019 16:57:36 +0000 (19:57 +0300)]
Fix x264_picture_alloc with X264_CSP_I400 colorspace
Anton Mitrofanov [Wed, 8 May 2019 14:52:15 +0000 (17:52 +0300)]
Shut up UBSan about uninitialized data read
Result was never used in that case.
Anton Mitrofanov [Mon, 22 Apr 2019 18:41:43 +0000 (21:41 +0300)]
Fix integer overflow detected by UBSan in --weightp analysis
Bug report by Xuezhi Yan.
Anton Mitrofanov [Fri, 12 Apr 2019 12:40:01 +0000 (15:40 +0300)]
checkasm: Fix heap-buffer-overflow read detected by ASan
Anton Mitrofanov [Fri, 12 Apr 2019 12:38:08 +0000 (15:38 +0300)]
Fix heap-buffer-overflow read detected by ASan with interlaced encoding
Bug report by Hongxu Chen.
Konstantin Pavlov [Tue, 16 Jul 2019 19:38:32 +0000 (22:38 +0300)]
CI: Bump macos target to darwin18
Konstantin Pavlov [Tue, 16 Jul 2019 19:24:46 +0000 (22:24 +0300)]
CI: Use a newer aarch64 image
It now includes pkg-config, so lavf can be detected.
Konstantin Pavlov [Fri, 5 Apr 2019 12:08:29 +0000 (15:08 +0300)]
Added gitlab CI
Supported targets:
- debian amd64
- debian aarch64
- windows 32 bit
- windows 64 bit
- macos 64bit
The tests are ran on all supported targets (via wine on windows).
The release jobs are only available on master/stable branches in
videolan/x264 repository, and must be ran manually when a developer
wishes to upload the artifacts.
Henrik Gramner [Thu, 14 Mar 2019 13:31:22 +0000 (14:31 +0100)]
Fix warning in autocomplete.c when compiled with lavf
Anton Mitrofanov [Mon, 5 Jun 2017 23:30:41 +0000 (02:30 +0300)]
Remove compatibility workarounds
This will break decoding with older versions of FFmpeg/Libav.
Anton Mitrofanov [Fri, 9 Nov 2018 15:37:17 +0000 (18:37 +0300)]
Remove h->rc dereferencing where possible
Henrik Gramner [Sat, 16 Feb 2019 20:02:01 +0000 (21:02 +0100)]
x86inc: Add support for GFNI instructions
Henrik Gramner [Sat, 16 Feb 2019 16:57:21 +0000 (17:57 +0100)]
x86inc: Improve warnings for use of unsupported instructions
Warn when the following are used without the appropriate cpuflag:
* YMM and ZMM registers
* 'pextrw' with a memory operand
* GPR instruction set extensions
Henrik Gramner [Thu, 31 Jan 2019 19:42:32 +0000 (20:42 +0100)]
x86inc: Support N_PEXT bit on Mach-O
Allows for marking symbols as having limited global scope, similar to
using 'hidden' symbol visibility on ELF.
Henrik Gramner [Thu, 31 Jan 2019 19:21:43 +0000 (20:21 +0100)]
x86inc: Make 'non-adjacent' default in the TAIL_CALL macro
Henrik Gramner [Thu, 31 Jan 2019 19:17:56 +0000 (20:17 +0100)]
x86inc: Add x86-32 PIC support macros
Henrik Gramner [Thu, 31 Jan 2019 19:11:01 +0000 (20:11 +0100)]
x86inc: Turn 'movsxd' into 'movifnidn' on x86-32
Henrik Gramner [Thu, 31 Jan 2019 19:08:40 +0000 (20:08 +0100)]
Bump dates to 2019
Henrik Gramner [Sun, 1 Jul 2018 18:34:48 +0000 (20:34 +0200)]
cli: Bash autocomplete support
Allows for automatic command line completion for both options and values.
Options such as --input-csp and --input-fmt will dynamically retrieve
supported values from libavformat when compiled with lavf support.
Execute 'source tools/bash-autocomplete.sh' in bash to enable.
Yusuke Nakamura [Mon, 9 Apr 2018 02:01:28 +0000 (11:01 +0900)]
Signal Progressive and Constrained profiles
Progressive High, Constrained High, and Progressive High 10.
Even in Main profile, constraint_set4_flag is now set to 1 if progressive,
and constraint_set5_flag is set to 1 if no B-slices are present.
Alexandra Hájková [Sat, 8 Sep 2018 07:15:53 +0000 (07:15 +0000)]
ppc: Use xxpermdi in sad_x3/x4 and use macros to avoid redundant code
Luca Barbato [Thu, 6 Sep 2018 10:25:14 +0000 (12:25 +0200)]
ppc: Use the vec_xst_len for partial stores in mc
Around a ~1% speedup to the overall encoding for --slow.
Luca Barbato [Thu, 6 Sep 2018 10:25:13 +0000 (12:25 +0200)]
ppc: Use vec_splats in mc
No overall speedup, just tidier code.
Luca Barbato [Thu, 23 Aug 2018 08:30:37 +0000 (08:30 +0000)]
ppc: Use the vec_xst_len for partial stores
Seems to give about a 1-2% overall speedup on --slow.
Luca Barbato [Sun, 19 Aug 2018 15:27:55 +0000 (17:27 +0200)]
ppc: Use xxpermdi in VEC_STORE8
Around a ~2% speedup to the overall encoding for --slow.
Luca Barbato [Sun, 19 Aug 2018 15:27:54 +0000 (17:27 +0200)]
ppc: Use a single store to write the scores for sad_x4_8x8
Yet another use of xxpermdi, another 10% gain.
Luca Barbato [Sun, 19 Aug 2018 15:27:53 +0000 (17:27 +0200)]
ppc: Use xxpermdi to halve the computation in sad_x4_8x8
About 20% faster.
Luca Barbato [Sun, 19 Aug 2018 07:28:42 +0000 (09:28 +0200)]
ppc: Rework satd_4* likewise
Now 4x4 is as slow as C and 4x8 is a 2% faster than before.
Luca Barbato [Sun, 19 Aug 2018 07:28:41 +0000 (09:28 +0200)]
ppc: Factor out the sum of absolute
And use it on the other satd > 8.
5-10% faster depending on the size.
Luca Barbato [Sun, 19 Aug 2018 07:28:40 +0000 (09:28 +0200)]
ppc: Rework the adds in satd8x8
10% faster.
Luca Barbato [Fri, 17 Aug 2018 20:28:45 +0000 (22:28 +0200)]
ppc: Add quant_4x4x4
4x faster than C.
Luca Barbato [Fri, 17 Aug 2018 20:28:44 +0000 (22:28 +0200)]
ppc: Cleanup quant
Henrik Gramner [Sun, 12 Aug 2018 15:00:13 +0000 (17:00 +0200)]
x86: Always use PIC in x86-64 asm
Most x86-64 operating systems nowadays doesn't even allow .text relocations
in object files any more, and there is no measurable overall performance
difference from using RIP-relative addressing in x264 asm.
Enforcing PIC reduces complexity and simplifies testing.
Henrik Gramner [Sat, 23 Feb 2019 19:15:33 +0000 (20:15 +0100)]
x86: Fix integer overflow in intra_sa8d_x3_8x8_sse2
Anton Mitrofanov [Fri, 9 Nov 2018 15:13:34 +0000 (18:13 +0300)]
Check that mbtree settings are consistent between passes
Also check that CQP mode is not used with 2-pass.
Anton Mitrofanov [Mon, 4 Feb 2019 19:04:56 +0000 (22:04 +0300)]
Mark frame_size_estimated as volatile
Ensures that access is atomic and that other threads sees the actual
value of the variable.
Anton Mitrofanov [Mon, 4 Feb 2019 18:46:12 +0000 (21:46 +0300)]
Fix data race detected by ThreadSanitizer
Bug report by Daniel Deptford.
Anton Mitrofanov [Mon, 24 Dec 2018 16:37:45 +0000 (19:37 +0300)]
Fix XAVC with sliced-threads
Anton Mitrofanov [Fri, 21 Dec 2018 15:54:56 +0000 (18:54 +0300)]
Fix XAVC slice pattern
Henrik Gramner [Sun, 21 Oct 2018 12:28:59 +0000 (14:28 +0200)]
Eliminate the use of strtok()
Also fix the string parsing in param_apply_tune() to correctly compare
the entire string, not just the first N characters.
Anton Mitrofanov [Thu, 8 Nov 2018 19:01:54 +0000 (22:01 +0300)]
configure: Fix log2f misdetection on some systems
Bug report by Dirk Fieldhouse.
Anton Mitrofanov [Thu, 8 Nov 2018 18:53:17 +0000 (21:53 +0300)]
Fix ultrafast preset speed regression
--trellis 0 was missed for it during 8-bit and 10-bit unification.
Bug report by Aleksey Vasenev.
Anton Mitrofanov [Wed, 10 Oct 2018 16:41:08 +0000 (19:41 +0300)]
Fix --crop-rect top offset with --interlaced or --fake-interlaced
Bug report by Koby Shina.
Anton Mitrofanov [Sun, 23 Sep 2018 17:47:44 +0000 (20:47 +0300)]
Fix possible double transpose of custom CQM if --level is not set
Bug reported by Nicolas Gaullier
Henrik Gramner [Tue, 7 Aug 2018 20:42:22 +0000 (22:42 +0200)]
cli: Fix linking with --system-libx264 on x86
Anton Mitrofanov [Tue, 21 Aug 2018 12:11:21 +0000 (15:11 +0300)]
Fix CAVLC+RDO in 4:4:4
Alexandra Hájková [Wed, 11 Jul 2018 19:28:20 +0000 (19:28 +0000)]
ppc: Optimize quant functions
1) using xxpermdi + merge instead of 2 merges improves quant_8x8
performance by 5%
2) use vec_splats instead of vec_splat
checkasm timings when compiled with gcc:
C: AltiVec:
before: after:
quant_2x2_dc: 57 163 46
quant_4x4_dc: 141 162 57
dequant_4x4_cmp: 104 101 45
dequant_4x4_flat: 104 106 46
dequant_8x8_cmp: 412 208 147
dequant_8x8_flat: 414 212 149
Alexandra Hajkova [Sun, 8 Jul 2018 18:04:43 +0000 (13:04 -0500)]
ppc: Add support for Power9-only vec_absd
Increases overall encoding speed on POWER9 by 8%.
Alexandra Hájková [Fri, 29 Jun 2018 16:50:20 +0000 (16:50 +0000)]
ppc: Optimize sub8x8_dct_dc
Alexandra Hájková [Thu, 21 Jun 2018 18:36:32 +0000 (18:36 +0000)]
ppc: AltiVec add16x16_idct_dc
Alexandra Hájková [Sat, 23 Jun 2018 14:58:17 +0000 (14:58 +0000)]
ppc: Optimize add8x8_idct_dc
Luca Barbato [Thu, 12 Jul 2018 08:41:22 +0000 (10:41 +0200)]
ppc: Add compatibility macros for vec_xxpermdi
Henrik Gramner [Sun, 24 Jun 2018 22:09:51 +0000 (00:09 +0200)]
Prefer a monotonic clock source if available
Kieran Kunhya [Wed, 30 Aug 2017 15:05:41 +0000 (16:05 +0100)]
Add Sony XAVC, a flavour of AVC-Intra
Anton Mitrofanov [Mon, 2 Jul 2018 17:20:03 +0000 (20:20 +0300)]
Cosmetics: Fix indentation for multiline function prototypes
It was broken in "Drop the x264 prefix" patch.
Anton Mitrofanov [Mon, 16 Apr 2018 20:54:43 +0000 (23:54 +0300)]
Cosmetics: Use consistent "inline" attribute position
Place it immediately after "static".
Henrik Gramner [Thu, 25 Jan 2018 21:17:57 +0000 (22:17 +0100)]
x86: AVX-512 plane_copy and plane_copy_swap
Avoid the scalar C wrapper by utilizing opmasks to prevent overreading the
input buffer.
Emanuele Ruffaldi [Sat, 6 Jan 2018 01:34:39 +0000 (02:34 +0100)]
4:0:0 (monochrome) encoding support
Virtually zero increase in compression efficiency compared to 4:2:0 with empty
chroma planes. Performance is better though, especially with fast settings.
Diego Biurrun [Sun, 5 Feb 2017 08:02:43 +0000 (09:02 +0100)]
Makefile improvements
* Coalesce some install recipe lines
* Remove empty addition of GPLed filters
* Install libdir in recipes that directly require it
* Coalesce etags/TAGS rules
* Simplify fprofiled rule
Henrik Gramner [Sun, 22 Apr 2018 20:49:15 +0000 (22:49 +0200)]
x86inc: Improve SAVE/LOAD_MM_PERMUTATION macros
Use register numbers instead of copying the full register names. This makes it
possible to change register widths in the middle of a function and keep the
mmreg permutations intact which can be useful for code that only needs larger
vectors for parts of the function in combination with macros etc.
Also change the LOAD_MM_PERMUTATION macro to use the same default name as the
SAVE macro. This simplifies swapping from ymm to xmm registers or vice versa:
SAVE_MM_PERMUTATION
INIT_XMM <cpuflags>
LOAD_MM_PERMUTATION
Henrik Gramner [Sat, 31 Mar 2018 11:49:56 +0000 (13:49 +0200)]
x86inc: Optimize VEX instruction encoding
Most VEX-encoded instructions require an additional byte to encode when src2
is a high register (e.g. x|ymm8..15). If the instruction is commutative we
can swap src1 and src2 when doing so reduces the instruction length, e.g.
vpaddw xmm0, xmm0, xmm8 -> vpaddw xmm0, xmm8, xmm0
Henrik Gramner [Fri, 30 Mar 2018 23:16:06 +0000 (01:16 +0200)]
x86inc: Fix VEX -> EVEX instruction conversion
There's an edge case that wasn't properly handled.
Anton Mitrofanov [Tue, 31 Jul 2018 19:54:33 +0000 (22:54 +0300)]
configure: Fix required version checks for lavf and swscale
Anton Mitrofanov [Fri, 20 Jul 2018 05:37:43 +0000 (08:37 +0300)]
Fix float division by zero in weightp analysis
Anton Mitrofanov [Wed, 18 Jul 2018 18:56:33 +0000 (21:56 +0300)]
Fix undefined behavior of left shift for CAVLC encoding
Anton Mitrofanov [Mon, 2 Jul 2018 17:59:16 +0000 (20:59 +0300)]
Fix integer overflow in slicetype_path_cost
The path cost for high resolutions can exceed COST_MAX.
Henrik Gramner [Fri, 29 Jun 2018 11:14:01 +0000 (13:14 +0200)]
cli: Fix preset help listing
It was previously incorrect when --chroma-format or --bit-depth was
specified in configure.
Luca Barbato [Sat, 23 Jun 2018 11:14:28 +0000 (13:14 +0200)]
ppc: Fix zigzag_interleave
The permv array has 3 elements
Henrik Gramner [Sat, 2 Jun 2018 18:35:10 +0000 (20:35 +0200)]
Fix clang stack alignment issues
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.
Anton Mitrofanov [Sun, 1 Apr 2018 17:49:29 +0000 (20:49 +0300)]
Fix missing bs_flush in AUD writing
Anton Mitrofanov [Sun, 1 Apr 2018 17:39:30 +0000 (20:39 +0300)]
Fix possible undefined behavior of right shift
32-bit shifts are only defined for values in the range 0-31.
Anton Mitrofanov [Sun, 1 Apr 2018 17:34:18 +0000 (20:34 +0300)]
Make bs_align_10 imply bs_flush
Now behaves the same as bs_align_0 and bs_align_1.
Anton Mitrofanov [Sun, 1 Apr 2018 14:52:47 +0000 (17:52 +0300)]
Fix theoretically incorrect cost_mv_fpel free
Anton Mitrofanov [Sun, 1 Apr 2018 14:42:46 +0000 (17:42 +0300)]
configure: Fix ambiguous "$(("
Anton Mitrofanov [Mon, 19 Feb 2018 16:53:38 +0000 (19:53 +0300)]
Fix --qpmax default value in fullhelp