1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-18 03:19:31 +02:00
Commit Graph

27290 Commits

Author SHA1 Message Date
Michael Niedermayer
82ae8a44e6 Merge commit '5b59a9fc6152169599561f04b4f66370edda5c9c'
* commit '5b59a9fc6152169599561f04b4f66370edda5c9c':
  x86: dcadsp: implement int8x8_fmul_int32

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 01:20:33 +01:00
Christophe Gisquet
481a46a462 dcadsp: add int8x8_fmul_int32 to DSP context
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.

Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.

On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:55:42 +01:00
Michael Niedermayer
bf90abe1dd Merge commit '5bcbb516f2ff45290ef7995b081762e668693672'
* commit '5bcbb516f2ff45290ef7995b081762e668693672':
  arm: Add X() around all references to extern symbols

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:48:26 +01:00
Michael Niedermayer
64278039e5 avcodec/hevc: Simplify get_qPy_pred()
Fixes use of uninitialized memory
Fixes: 93728afd9aa074ba14a09bfd93a632fd-asan_static-oob_124a17d_1445_cov_1021181966_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:22:49 +01:00
Michael Niedermayer
1a3ed056c5 avcodec/hevc: make check for previous slice segment tighter
This ensures the previous one is matching the curent and not just any

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-08 00:22:49 +01:00
Christophe Gisquet
5b59a9fc61 x86: dcadsp: implement int8x8_fmul_int32
For the callable function (as opposed to the inline one):
         C  SSE  SSE2  SSE4
Win32:  47   42   29    26
Win64:  30   33   25    23
The SSE version is neither compiled nor set for ARCH_X86_64, as the
inlinable function takes over.

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:52:40 +01:00
Christophe Gisquet
2bd44cb705 dcadsp: add int8x8_fmul_int32 to dsp context
It is currently declared as a macro who is set to inlinable functions,
among which a Neon and a default C implementations.

Add a DSP parameter to each inline function, unused except by the
default C implementation which calls a function from the DSP context.

On an Arrandale CPU, gain for an inlined SSE2 function vs. a call:
- Win32: 29 to 26 cycles
- Win64: 25 to 23 cycles

Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-07 22:51:59 +01:00
Lukasz Marek
7bb8b87654 lavc/adpcm_data: fix const misplacement
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-07 19:33:20 +00:00
Lukasz Marek
0792b87335 lavc/evrcdec: fix const misplacement
Signed-off-by: Lukasz Marek <lukasz.m.luki@gmail.com>
2014-02-07 19:32:16 +00:00
Michael Niedermayer
ec9578d54d avcodec/wmalosslessdec: fix mclms_coeffs* array size
Fixes corruption of context
Fixes: 8835659dde6a4f7dcdf341de6a45c6c8-signal_sigsegv_1dce67b_4564_cov_2504444599_classical_22_16_1_14000_v3c_0_extend_0_29.wma
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 15:36:30 +01:00
Michael Niedermayer
2a03eb4c99 avcodec/wmalosslessdec: use sizeof() instead of literal number
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 15:36:30 +01:00
Martin Storsjö
5bcbb516f2 arm: Add X() around all references to extern symbols
Don't rely on the fact that an unprefixed label currently exists.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-07 15:13:58 +02:00
Michael Niedermayer
6ef57f4d9a avcodec/hevc: hls_decode_entry: check that the previous slice segment is available before decoding the next
Fixes use of uninitialized memory
Fixes out of array read
Fixes assertion failure
Fixes part of cb307d24befbd109c6f054008d6777b5/asan_static-oob_124a175_1445_cov_2355279992_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 04:40:37 +01:00
Michael Niedermayer
a18f111582 avcodec/hevc: clear tab_slice_address of ctb on error.
This allows us to detect which areas have failed to decode

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 04:30:31 +01:00
Michael Niedermayer
56985d26d7 avcodec/hevc: clear tab_slice_address in hevc_frame_start()
Fixes inconsistencies
Fixes use of uninitilaized memory
Fixes part of  cb307d24befbd109c6f054008d6777b5/asan_static-oob_124a175_1445_cov_2355279992_DBLK_D_VIXS_1.bit
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 03:47:49 +01:00
Michael Niedermayer
951793717a avcodec/hevc_filter: assert validity of qp predictor input
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-07 01:55:17 +01:00
Ronald S. Bultje
5351964a2b vp8: fix bilinear C code to work if src_stride != dst_stride.
Signed-off-by: Anton Khirnov <anton@khirnov.net>
Signed-off-by: Janne Grunau <janne-libav@jannau.net>
2014-02-06 22:45:29 +01:00
Michael Niedermayer
c73445a45c Merge remote-tracking branch 'qatar/master'
* qatar/master:
  vp8: Use 2 registers for dst_stride and src_stride in neon bilin filter

Conflicts:
	libavcodec/arm/vp8dsp_neon.S

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 15:33:54 +01:00
Martin Storsjö
49ec551595 vp8: Use 2 registers for dst_stride and src_stride in neon bilin filter
Based on a patch by Ronald S. Bultje.

Signed-off-by: Martin Storsjö <martin@martin.st>
2014-02-06 09:32:26 +02:00
Loren Merritt
9c978f243a flac/x86: add ff_flac_lpc_32_sse4()
benchmarked on sandybridge x86_64:
1358232 decicycles in flac_lpc_32_c
1244575 decicycles in flac_lpc_32_sse4, James Almer's patch
 650045 decicycles in flac_lpc_32_sse4, this patch

I haven't tested the edgecases such as odd block lengths

odd block length tested-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 02:51:19 +01:00
Timothy Gu
4a37e2977c libfdk-aacenc: disable hard version requirements
Enable compilation on machines with an old libfdk-aac.

Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-06 02:33:33 +01:00
Clément Bœsch
d92a725329 x86/vp9lpf: remove 8 SWAPs in 84/48 transpose. 2014-02-05 07:21:13 +01:00
Clément Bœsch
97dde561de x86/vp9lpf: remove braindead double pxor. 2014-02-05 07:21:11 +01:00
Clément Bœsch
9a3b05b0a9 x86/vp9lpf: save a few mov in flat8in/hev masks calc. 2014-02-05 07:21:09 +01:00
Clément Bœsch
91d85bb167 x86/vp9lpf: add ff_vp9_loop_filter_[vh]_44_16_{sse2,ssse3,avx}. 2014-02-05 07:21:06 +01:00
Michael Niedermayer
acd7505351 Merge remote-tracking branch 'qatar/master'
* qatar/master:
  mpeg: K&R formatting cosmetics

Conflicts:
	libavcodec/mpeg12dec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 03:59:37 +01:00
Michael Niedermayer
6a4cc50980 Merge commit '4c3e1956ee35fdcc5ffdb28782050164b4623c0b'
* commit '4c3e1956ee35fdcc5ffdb28782050164b4623c0b':
  lagarith: reallocate rgb_planes when needed

Conflicts:
	libavcodec/lagarith.c

See: 9eef41b848
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 02:47:46 +01:00
Michael Niedermayer
2b88cb2f46 Merge commit '2240e2078d53d3cfce8ff1dda64e58fa72038602'
* commit '2240e2078d53d3cfce8ff1dda64e58fa72038602':
  truemotion1: check the header size

See: e7b43e8e84
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 02:25:34 +01:00
Michael Niedermayer
e7724f346a Merge commit '5430839144c6da0160e8e0cfb0c8db01de432e94'
* commit '5430839144c6da0160e8e0cfb0c8db01de432e94':
  eacmv: clear references on frame dimensions change

Conflicts:
	libavcodec/eacmv.c

See: e9d443cf08
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:42:06 +01:00
Michael Niedermayer
dcbc748ad1 Merge commit 'd509ae5be0a9bac35a4cedbe68b774a74446bb27'
* commit 'd509ae5be0a9bac35a4cedbe68b774a74446bb27':
  jvdec: K&R formatting cosmetics

Conflicts:
	libavcodec/jvdec.c
	libavformat/jvdec.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-05 01:18:48 +01:00
Vittorio Giovara
a91d3658d9 mpeg: K&R formatting cosmetics
Also adjust header #include order and some comments.

Signed-off-by: Diego Biurrun <diego@biurrun.de>
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
2014-02-04 22:29:53 +01:00
Anton Khirnov
4c3e1956ee lagarith: reallocate rgb_planes when needed
Fixes invalid writes on pixel format changes.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:27 +01:00
Anton Khirnov
2240e2078d truemotion1: check the header size
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 22:00:13 +01:00
Anton Khirnov
1713eec29a shorten: pad the internal bitstream buffer
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:57 +01:00
Anton Khirnov
5430839144 eacmv: clear references on frame dimensions change
Fixes invalid reads.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 21:59:14 +01:00
Michael Niedermayer
20be510887 avcodec/vc1dec: remove blocks_off use from vc1_pred_b_mv()
it should always be 0

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 20:56:09 +01:00
Michael Niedermayer
41f9742053 avcodec/vc1dec: vc1_pred_b_mv() is not used for fields, simplify code
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 20:12:54 +01:00
Michael Niedermayer
c93e691369 Merge commit '1f097d168d9cad473dd44010a337c1413a9cd198'
* commit '1f097d168d9cad473dd44010a337c1413a9cd198':
  h264: reset data partitioning at the beginning of each decode call

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 16:44:32 +01:00
Michael Niedermayer
9a082fec1a Merge commit 'e46ad30a808744ddf3855567e162292a4eaabac7'
* commit 'e46ad30a808744ddf3855567e162292a4eaabac7':
  vp8: use a fixed-size edge emu buffer

Conflicts:
	libavcodec/vp8.c
	libavcodec/vp8.h

See: face578d56
Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 16:14:30 +01:00
Michael Niedermayer
40fc1e2dda Merge commit '5de64bb34d68d6c224dca90003172d7a27958825'
* commit '5de64bb34d68d6c224dca90003172d7a27958825':
  utvideoenc: Add support for the new BT.709 FourCCs for YCbCr

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 15:09:02 +01:00
Diego Biurrun
190d4a447b avcodec: Suppress deprecation warnings from avcodec_alloc_frame()
The function is itself obsolete and slated for removal.
2014-02-04 13:46:20 +01:00
Michael Niedermayer
a0d5204cd9 Merge commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e'
* commit 'b25e84b7399bd91605596b67d761d3464dbe8a6e':
  hevc: check that the VCL NAL types are the same for all slice segments of a frame

Merged-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 13:44:39 +01:00
Vittorio Giovara
d509ae5be0 jvdec: K&R formatting cosmetics
Signed-off-by: Diego Biurrun <diego@biurrun.de>
2014-02-04 12:35:38 +01:00
Anton Khirnov
1f097d168d h264: reset data partitioning at the beginning of each decode call
Prevents using GetBitContexts with data from previous calls.

Fixes access to freed memory.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
CC:libav-stable@libav.org
2014-02-04 11:26:17 +01:00
Anton Khirnov
e46ad30a80 vp8: use a fixed-size edge emu buffer
The reason is the same as for e588615d93

Based on a patch by Ronald S. Bultje <rsbultje@gmail.com>
2014-02-04 11:21:07 +01:00
Jan Ekström
5de64bb34d utvideoenc: Add support for the new BT.709 FourCCs for YCbCr
With cli usage the decoder might have not set the colorspace during
encoder init, manual colorspace override might be needed in such
cases.

Signed-off-by: Anton Khirnov <anton@khirnov.net>
2014-02-04 10:59:28 +01:00
Anton Khirnov
b25e84b739 hevc: check that the VCL NAL types are the same for all slice segments of a frame
Fixes possible invalid memory access for mismatching skipped/non-skipped
slice segments.

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Sample-Id: 00001533-google
2014-02-04 10:39:07 +01:00
Michael Niedermayer
8a3b85f3a7 avcodec/h264: update current_sps & sps->new only after the whole slice header decoder and init code finished
This avoids them being cleared before the full initialization finished

Fixes out of array read
Fixes: asan_heap-oob_f0c5e6_7071_cov_1605985132_mov_h264_aac__Demo_FlagOfOurFathers.mov
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 04:49:25 +01:00
Michael Niedermayer
e708424b70 avcodec/h264: Disallow pps_id changing between slices
Such changes are forbidden in H.264 and lead to race conditions

Fixes out of array read
Fixes: signal_sigsegv_f9796a_1613_cov_3114610371_FM1_BT_B.h264
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-04 00:07:27 +01:00
Michael Niedermayer
1a96b27ebf avcodec/h264: clear dequant8_coeff pointers if 8x8 mode is not enabled
This prevents stale pointers from being left

Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
2014-02-03 22:15:32 +01:00