]>
granicus.if.org Git - libx264/log
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.
Janne Grunau [Sun, 20 Jul 2014 11:40:28 +0000 (13:40 +0200)]
arm/ppc: use $CC as default assembler
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.
Janne Grunau [Sun, 20 Jul 2014 11:08:17 +0000 (13:08 +0200)]
arm: set .arch/.fpu from asm.S
Janne Grunau [Sun, 20 Jul 2014 10:55:53 +0000 (12:55 +0200)]
arm: do not append CFLAGS to ASFLAGS
Tristan Matthews [Thu, 17 Jul 2014 04:03:50 +0000 (00:03 -0400)]
filters: fix sizeof mismatch
Anton Mitrofanov [Thu, 31 Jul 2014 12:17:32 +0000 (16:17 +0400)]
Fix memory leak when using select_every filter
Tsukasa OMOTO [Sun, 20 Jul 2014 13:17:11 +0000 (22:17 +0900)]
Fix cltostr.sh on OS X
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.
Anton Mitrofanov [Wed, 9 Jul 2014 13:17:04 +0000 (17:17 +0400)]
Check malloc during frame dumping
Yusuke Nakamura [Wed, 18 Jun 2014 20:21:29 +0000 (05:21 +0900)]
mp4_lsmash: Use new I/O API instead of deprecated one.
Anton Mitrofanov [Sun, 8 Jun 2014 18:19:46 +0000 (22:19 +0400)]
Remove meaningless use of abs()
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.
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.
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.
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.
Diego Biurrun [Wed, 7 May 2014 10:47:37 +0000 (12:47 +0200)]
configure: Drop workaround for obsolete gcc 4.2 on ARM
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.
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.
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.
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.
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]
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.
Thomas Mundt [Fri, 27 Jun 2014 18:12:06 +0000 (11:12 -0700)]
AVC-Intra: fix compatibility with Avid Transfermanager
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.
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.
Anton Mitrofanov [Sat, 21 Jun 2014 19:52:39 +0000 (23:52 +0400)]
Fix b-pyramid MMCO remove for frame-packing==5
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).
Anton Mitrofanov [Thu, 22 May 2014 09:27:00 +0000 (13:27 +0400)]
Fix pixel_ssim_end4 asm function for x86_64 systems
James Almer [Wed, 9 Apr 2014 06:33:06 +0000 (03:33 -0300)]
x86: XOP pixel_sad_{x3, x4} high bit-depth
James Almer [Wed, 9 Apr 2014 06:33:05 +0000 (03:33 -0300)]
x86: XOP pixel_ssd_nv12_core
James Almer [Wed, 9 Apr 2014 06:33:04 +0000 (03:33 -0300)]
x86util: XOP optimized HADDD
James Almer [Wed, 9 Apr 2014 06:33:03 +0000 (03:33 -0300)]
x86: add missing initialization for high bit-depth sa8d_satd
James Almer [Sun, 6 Apr 2014 02:46:31 +0000 (23:46 -0300)]
x86: add missing initializations for high bit-depth variance
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
Janne Grunau [Tue, 1 Apr 2014 20:11:44 +0000 (22:11 +0200)]
arm: correct x264_mc_chroma_neon function declaration
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.
Janne Grunau [Tue, 1 Apr 2014 20:11:42 +0000 (22:11 +0200)]
arm: move all .macro/.endm to column 0
William Grant [Sun, 23 Mar 2014 16:21:52 +0000 (09:21 -0700)]
aarch64: require PIC in shared mode
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.
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
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
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
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
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
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
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
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.
Roland Stigge [Sun, 23 Mar 2014 16:29:37 +0000 (09:29 -0700)]
ppc: fix build on certain PowerPC variants without Altivec
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.
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.
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.
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.
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
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
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.
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.
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.
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.
Loren Merritt [Sat, 1 Mar 2014 02:57:56 +0000 (02:57 +0000)]
x86inc: free up variable name "n" in global namespace
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.
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.
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.
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.
Anton Mitrofanov [Sun, 23 Feb 2014 11:52:57 +0000 (15:52 +0400)]
Fix pointer cast warning for 64-bit builds
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.
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.
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.
Anton Mitrofanov [Mon, 10 Mar 2014 17:17:19 +0000 (21:17 +0400)]
Fix checkasm --bench output when nop_cycles is too large
Anton Mitrofanov [Wed, 22 Jan 2014 08:54:49 +0000 (12:54 +0400)]
Really fix quantization factor allocation
Actually allocate less (instead of just initialize less) and fix comments.
Yu Xiaolei [Sun, 23 Feb 2014 12:12:51 +0000 (04:12 -0800)]
Fix build with Android NDK
Android NDK does not expose sched_getaffinity.
Loren Merritt [Thu, 16 Jan 2014 21:34:46 +0000 (13:34 -0800)]
x86inc: speed up compilation with yasm
Work around yasm's inefficiency with handling large numbers of variables
in the global scope.
Kieran Kunhya [Fri, 10 Jan 2014 23:27:33 +0000 (23:27 +0000)]
Add support for AVC-Intra Class 200
James Weaver [Tue, 7 Jan 2014 10:31:58 +0000 (10:31 +0000)]
v210 input support
Assembly based on code by Henrik Gramner and Loren Merritt.
Fiona Glaser [Tue, 21 Jan 2014 21:39:33 +0000 (13:39 -0800)]
Fix quantization factor allocation
We don't need to wastefully allocate quant tables above QP_MAX_SPEC; they're
never used.
Henrik Gramner [Wed, 8 Jan 2014 00:06:56 +0000 (01:06 +0100)]
Avoid some unneccesary memory loads in macroblock_encode
Henrik Gramner [Sun, 5 Jan 2014 14:25:05 +0000 (15:25 +0100)]
Bump dates to 2014
Also update AUTHORS file and my e-mail address in the headers of various files.
Henrik Gramner [Sun, 5 Jan 2014 23:18:31 +0000 (00:18 +0100)]
Remove tools/xyuv.c
It's an old stand-alone application that isn't relevant to x264.
Anton Mitrofanov [Wed, 6 Nov 2013 22:37:23 +0000 (02:37 +0400)]
Use 8x16c wrappers with x86 asm functions for 4:2:2 with high bit depth
Henrik Gramner [Fri, 20 Dec 2013 21:44:28 +0000 (22:44 +0100)]
CLI: Avoid redundant 16-bit upconversions in piped raw input
It's not possible to seek in pipes, so if we want to skip frames we have to read and
discard unused ones. It's pointless to do bit-depth upconversions in those frames.
Anton Mitrofanov [Fri, 3 Jan 2014 16:06:06 +0000 (20:06 +0400)]
Fix input support from named pipes in Windows
Steve Clark [Wed, 20 Nov 2013 17:40:23 +0000 (21:40 +0400)]
Fix ARM asm compilation with Apple assembler
Anton Mitrofanov [Wed, 13 Nov 2013 15:24:48 +0000 (19:24 +0400)]
Fix uninitialized variable
Caused if the timebase is not specified in stats file. Found by Clang.
Anton Mitrofanov [Sun, 27 Oct 2013 15:27:23 +0000 (19:27 +0400)]
Remove --visualize option.
It probably wasn't used or maintained for last few years.
Anton Mitrofanov [Tue, 15 Oct 2013 08:32:25 +0000 (12:32 +0400)]
Add L-SMASH support as preferable alternative for MP4-muxing
Kieran Kunhya [Sat, 21 Sep 2013 18:16:12 +0000 (19:16 +0100)]
Add AVC-Intra 1080p50/60 Class 100 parameters
Also add some compatibility fixes.
Fiona Glaser [Mon, 9 Sep 2013 19:37:59 +0000 (12:37 -0700)]
Add --filler option
Allows generation of hard-CBR streams without using NAL HRD.
Useful if you want to be able to reconfigure the bitrate (which you can't do
with NAL HRD on).
Anton Mitrofanov [Sun, 27 Oct 2013 11:22:51 +0000 (15:22 +0400)]
Make x264_encoder_reconfig more threadsafe
Do the reconfig when the next frame's encode begins.
Fixes some rare crashes with frame-threading and encoder_reconfig.
Fiona Glaser [Fri, 25 Oct 2013 00:19:00 +0000 (17:19 -0700)]
chroma-me: take shortcut in BI analysis
~100 cycles faster with subme>=9
Fiona Glaser [Thu, 24 Oct 2013 21:44:43 +0000 (14:44 -0700)]
CRF-max: don't warn if VBV underflow occurs
Only warn if underflow occurs for reasons other than CRF-max, as CRF-max
implies that VBV underflow is desired by the user.
Henrik Gramner [Fri, 18 Oct 2013 20:43:36 +0000 (22:43 +0200)]
x86inc: Make ym# behave the same way as xm#
This makes more sense for future implementations of templates with zmm registers.
Henrik Gramner [Fri, 18 Oct 2013 20:21:38 +0000 (22:21 +0200)]
Use calloc instead of malloc + memset
Henrik Gramner [Thu, 10 Oct 2013 14:54:12 +0000 (16:54 +0200)]
Replace gf_malloc with regular malloc in mp4 muxer
It was used as a workaround for a bug that only existed in the GPAC repository
for a few weeks back in 2010. There's no reason to keep it anymore.
Anton Mitrofanov [Tue, 8 Oct 2013 19:20:40 +0000 (23:20 +0400)]
Update to current libav/ffmpeg API
Rafaël Carré [Fri, 25 Oct 2013 14:12:24 +0000 (07:12 -0700)]
version.sh: change to use /bin/sh
Sean McGovern [Wed, 4 Sep 2013 21:15:00 +0000 (14:15 -0700)]
configure: don't generate a git version number if .git isn't present
Martin Storsjo [Tue, 3 Sep 2013 21:56:18 +0000 (14:56 -0700)]
configure: include dependency libs in the Libs pkg-config
If only a static library is built, the user of the library that just
tries to link to the lib using the flags provided by pkg-config
might not know that only a static lib exists and that he'd have to
pass --static to pkg-config to get the internal dependencies to
be able to link the library.
For a shared build, the internal dependencies are kept in Libs.private
as before.
This matches how libav's pkg-config files are generated.
Anton Mitrofanov [Thu, 17 Oct 2013 20:38:06 +0000 (00:38 +0400)]
Fix compilation in case of HAVE_LOG2F check fails spuriously
Anton Mitrofanov [Sat, 12 Oct 2013 08:01:57 +0000 (12:01 +0400)]
Fix compilation of shared library for Windows with original MinGW toolchain
Anton Mitrofanov [Tue, 8 Oct 2013 19:32:37 +0000 (23:32 +0400)]
Fix possible crashes in resize and crop filters with high bitdepth input