Matthieu Bouron
0a24d7ca83
lavc/aarch64: add sbrdsp neon implementation
...
autocorrelate_c: 644.0
autocorrelate_neon: 420.0
hf_apply_noise_0_c: 1688.5
hf_apply_noise_0_neon: 1498.6
hf_apply_noise_1_c: 1691.2
hf_apply_noise_1_neon: 1500.6
hf_apply_noise_2_c: 1688.1
hf_apply_noise_2_neon: 1500.3
hf_apply_noise_3_c: 1696.6
hf_apply_noise_3_neon: 1502.2
hf_g_filt_c: 2117.8
hf_g_filt_neon: 1218.7
hf_gen_c: 4573.4
hf_gen_neon: 2461.0
neg_odd_64_c: 72.0
neg_odd_64_neon: 64.7
qmf_deint_bfly_c: 1107.6
qmf_deint_bfly_neon: 291.6
qmf_deint_neg_c: 210.4
qmf_deint_neg_neon: 107.4
qmf_post_shuffle_c: 163.0
qmf_post_shuffle_neon: 107.7
qmf_pre_shuffle_c: 120.5
qmf_pre_shuffle_neon: 110.7
sum64x5_c: 1361.6
sum64x5_neon: 435.4
sum_square_c: 1686.4
sum_square_neon: 787.2
2017-07-03 14:29:22 +02:00
Matthieu Bouron
7864e07f4a
checkasm: add sbrdsp tests
2017-07-03 14:28:17 +02:00
Steven Liu
274bd1670b
avfomat/hlsenc: support fmp4 format in hls
...
add the fmp4 format into hlsenc
because the fmp4 format add into hls from version 7.
the spec link is:
https://tools.ietf.org/html/draft-pantos-http-live-streaming-20
and the describe on WWDC
https://developer.apple.com/videos/play/wwdc2017/515/
Signed-off-by: Steven Liu <lq@onvideo.cn >
2017-07-03 20:20:44 +08:00
wm4
64ecb78b71
vdpau: do not use buggy HEVC support by default
...
NVIDIA broke its own API when using VDPAU decoding. If you retrieve the
decoded YUV data, or if you map the surfaces with GL interop, the result
are interlacing artifacts. The only way to get non-broken data is by
using the vdpau video mixer to convert it to RGB. There is no way to
block the non-working operations in a reasonable way (a VdpVideoSurface
has to support all operations).
NVIDIA refuses to fix this issue (they "fixed" it by making it work with
the video mixer, but the rest is still broken). There is no sign of that
changing.
Do not use HEVC by default with the generic hwaccle API. Detect whether
it's the NVIDIA native implementation, and exit with an error. (The same
thing work with the MESA implementation.)
As an escape hatch and to allow applications to use the decoder if they
really want to (perhaps because they make sure to explicitly use the
video mixer), reuse AV_HWACCEL_FLAG_ALLOW_PROFILE_MISMATCH to disable
this check.
Once NVIDIA fixes the bug, working driver versions could be detected,
and it could be allowed again.
2017-07-03 12:56:32 +02:00
Paul B Mahol
c8853568b1
avcodec/alsdec: call correct function for multi-channel coding
...
Fixes #5942 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-07-02 16:45:15 +02:00
Kostya Shishkov
06a66e7d94
avcodec/imc: cast float to int prior to comparing with int variable
...
Update FATE test.
Fixes #3886 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-07-01 21:42:12 +02:00
foo86
f8b1a70412
avcodec/s302m: fix AVOption flags
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-07-01 12:03:34 -03:00
James Almer
0eb783eb06
checkasm: randomize the full input buffer in test_hybrid_analysis
...
Missed in the last commit.
2017-06-30 22:49:54 -03:00
James Almer
fb7b477a91
checkasm: fix size of input buffer in test_hybrid_analysis
2017-06-30 20:37:06 -03:00
wm4
ff2d21a58c
hevcdec: properly export some side data with frame threading
...
I noticed this with mastering display data. If frame threading is
enabled, this side data is exported only for some frames. It turns out
it's not properly propagated to the worker threads.
I didn't touch A53 captions, because that involves memory allocation and
freeing the data as side data is exported.
Micro bump so that API users can detect the bug fix.
2017-06-30 19:18:11 +02:00
James Almer
ac8ad8d098
x86/sbrdsp: sign extend start and end gprs in ff_sbr_hf_gen_sse
...
Tested-by: Michael Niedermayer <michael@niedermayer.cc >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-30 11:46:24 -03:00
Michael Niedermayer
de54a37c1d
avcodec/hevc_ps: Fix integer overflow with beta/tc offsets
...
Fixes: runtime error: signed integer overflow: 2113929216 * 2 cannot be represented in type 'int'
Fixes: 2422/clusterfuzz-testcase-minimized-5242114713583616
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 16:24:16 +02:00
Max Weber
9e392c6ece
libavformat/avformat.h: Move docs inside of #if
...
Otherwise AVTimebaseSource gets av_apply_bitstream_filters' documentation in doxygen.
Signed-off-by: Max Weber <mii7303@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 14:35:25 +02:00
Michael Niedermayer
ecc16d893d
avfilter/vf_geq: >8 bps support
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 12:34:34 +02:00
Michael Niedermayer
60a45713e7
avcodec/interplayvideo: Check ff_get_buffer() for failure
...
Fixes: runtime error: division by zero
Fixes: 2408/clusterfuzz-testcase-minimized-5432734438653952
Fixes: 2415/clusterfuzz-testcase-minimized-4672827619803136
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 03:34:58 +02:00
Michael Niedermayer
0b180d2066
fate: Add fate-copy-trac3074
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-30 03:03:08 +02:00
Clément Bœsch
2658e66cd1
lavu/cpu: disable MMX warning on non x86 platforms
...
We have AV_CPU_FLAG_ARMV8 == AV_CPU_FLAG_SSE3 which causes a trigger of
this MMX warning on AArch64.
2017-06-29 18:00:58 +02:00
Paul B Mahol
3821c004e2
avcodec/interplayvideo: fix regression causing artifacts
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-29 16:43:40 +02:00
Paul B Mahol
4d681269e0
avcodec/gdv: add decompression for 2 and 5 method
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-29 15:54:20 +02:00
KongQun Yang
45dbb40cd1
Update mp4 object type for VP9
...
Updated to the standard value 0xB1 defined in mp4ra.org.
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-28 20:04:56 -03:00
Michael Niedermayer
c709f009da
avcodec/cfhd: Fix invalid left shift of negative value
...
Fixes: runtime error: left shift of negative value -1
Fixes: 2395/clusterfuzz-testcase-minimized-6540529313513472
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 23:39:11 +02:00
Michael Niedermayer
bc6ab72bc7
avcodec/vb: Check vertical GMC component before multiply
...
Fixes: runtime error: signed integer overflow: 8224 * 663584 cannot be represented in type 'int'
Fixes: 2393/clusterfuzz-testcase-minimized-6128334993883136
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 23:39:11 +02:00
Paul B Mahol
f0edab6e63
avcodec/interplayvideo: use correct context when checking for enough bytes
...
Fixes #6502 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-28 19:38:22 +02:00
James Darnley
0c2acccd4b
avcodec/x86: use new x86-64 functions for -idct simple
...
They now match according to FATE, barring any further bugs with untested
parts
2017-06-28 17:27:35 +02:00
James Darnley
d7246ea9f2
avcodec/x86: add an 8-bit simple IDCT function based on the x86-64 high depth functions
...
Includes add/put functions
Rounding contributed by Ronald S. Bultje
2017-06-28 17:27:35 +02:00
James Darnley
8b19467d07
avcodec/x86: allow future 8-bit simple idct to have "DC only hack"
...
Created by Ronald S. Bultje
2017-06-28 17:27:35 +02:00
Paul B Mahol
c1d1274bfc
avcodec/interplayvideo: return void
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-28 17:18:13 +02:00
Paul B Mahol
ed782bebf5
avcodec/interplayvideo: fix dead-lock
...
Fixes #6499 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-28 17:14:30 +02:00
Paul B Mahol
613ccdaaac
avcodec/interplayvideo: use int16_t instead of short
...
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-28 17:07:49 +02:00
Paul B Mahol
42f516b5d3
avcodec/interplayvideo: check that video_size is >0
...
Fixes #6498 .
Signed-off-by: Paul B Mahol <onemda@gmail.com >
2017-06-28 17:02:07 +02:00
Vittorio Giovara
3426832ac3
hevc: Add support for alternative transfer characterics SEI
...
The use of this SEI is for backward compatibility in HLG HDR systems:
older devices that cannot interpret the "arib-std-b67" transfer will
get the compatible transfer (usually bt709 or bt2020) from the VUI,
while newer devices that can interpret HDR will read the SEI and use
its value instead.
Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com >
2017-06-28 09:42:24 -04:00
Michael Niedermayer
850c6db97d
avcodec/utvideodec: Factor multiply out of inner loop
...
0.5% faster loop
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Reviewed-by: Steven Liu <lingjiujianke@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 14:08:21 +02:00
Michael Niedermayer
5eb4701b7d
avcodec/utvideodec: bswap directly without memcpy
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 14:08:21 +02:00
Michael Niedermayer
676a589c93
avcodec/utvideodec: enable unchecked bitreader
...
inner reader loop becomes 16% faster
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 14:08:21 +02:00
Michael Niedermayer
9c604b34d4
avcodec/utvideodec: hardcode vlc bits
...
2.5% faster vlc decoding
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 14:08:21 +02:00
Michael Niedermayer
1835c5e7a4
avcodec/utvideodec: Move bitstream end check out of inner loop
...
This is not needed when the buffer is large enough for the worst case of a line
2% faster vlc reading
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 14:08:21 +02:00
Clément Bœsch
b12a36170b
lavc/aacpsdsp: use ptrdiff_t for stride in hybrid_analysis
2017-06-28 12:22:39 +02:00
Clément Bœsch
ff0ecef624
lavc/aarch64: add a few SIMD functions for AAC PS
...
☭ tests/checkasm/checkasm --bench --test=aacpsdsp
checkasm: using random seed 3318985180
MMX implied by specified flags
MMX implied by specified flags
NEON:
- aacpsdsp.add_squares [OK]
- aacpsdsp.mul_pair_single [OK]
- aacpsdsp.hybrid_analysis [OK]
- aacpsdsp.stereo_interpolate [OK]
checkasm: all 5 tests passed
nop: 10.0
ps_add_squares_c: 63221.2
ps_add_squares_neon: 22311.7
ps_hybrid_analysis_c: 2466.6
ps_hybrid_analysis_neon: 1521.9
ps_mul_pair_single_c: 68592.0
ps_mul_pair_single_neon: 17426.6
ps_stereo_interpolate_c: 72344.3
ps_stereo_interpolate_neon: 72308.8
ps_stereo_interpolate_ipdopd_c: 117415.2
ps_stereo_interpolate_ipdopd_neon: 113386.3
2017-06-28 12:22:39 +02:00
Clément Bœsch
9bbb0fbd31
lavc/aacpsdsp: fix a few spaces (cosmetics)
2017-06-28 12:22:39 +02:00
Clément Bœsch
edd041e64c
checkasm: add AAC PS tests
...
This includes various fixes and improvements from James Almer.
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-28 12:22:39 +02:00
Clément Bœsch
e4a27e2f2d
lavc/arm: fix lack of precision in ff_ps_stereo_interpolate_neon
...
The code originally pre-multiply by 2 the steps, causing the running sum
of the h factors to drift away due to the lack of precision. It quickly
causes an inaccuracy > 0.01.
I tried diverse approaches such as multiply by 2.0 (instead of adding
the value itself) without success.
I'm unable to bench the impact of this change, feel free to compare.
This commit fixes the incoming aacpsdsp tests.
Following is an alternative simplified function (matching the incoming
AArch64 code) that may be used:
function ff_ps_stereo_interpolate_neon, export=1
vld1.32 {q0}, [r2]
vld1.32 {q1}, [r3]
ldr r12, [sp]
vmov.f32 q8, q0
vmov.f32 q9, q1
vzip.32 q8, q0
vzip.32 q9, q1
1:
vld1.32 {d4}, [r0,:64]
vld1.32 {d6}, [r1,:64]
vadd.f32 q8, q8, q9
vadd.f32 q0, q0, q1
vmov.f32 d5, d4
vmov.f32 d7, d6
vmul.f32 q2, q2, q8
vmla.f32 q2, q3, q0
vst1.32 {d4}, [r0,:64]!
vst1.32 {d5}, [r1,:64]!
subs r12, r12, #1
bgt 1b
bx lr
endfunc
2017-06-28 11:59:34 +02:00
James Almer
d2ef9e6e7f
x86/vf_blend: use ABS2 macro
2017-06-27 20:45:55 -03:00
Michael Niedermayer
516c213f08
avcodec/x86/vp9dsp_init_16bpp: Fix linking to missing ff_vp9_ipred_dr_32x32_16_avx2() on 32bit
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-28 00:31:33 +02:00
Hendrik Leppkes
15b00aea41
hwcontext_d3d11va: use correct license header
2017-06-28 00:19:55 +02:00
Michael Niedermayer
c578c9c229
libswresample/swresample: remove obsolete code
...
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-27 23:21:53 +02:00
Michael Niedermayer
2c874548d6
avcodec/hevcdec: do basic validity check on delta_chroma_weight and offset
...
Fixes: runtime error: signed integer overflow: 2147483520 + 128 cannot be represented in type 'int'
Fixes: 2385/clusterfuzz-testcase-minimized-6594333576790016
Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc >
2017-06-27 23:21:12 +02:00
Ilia Valiakhmetov
35a5d9715d
avcodec/vp9: add 64-bit ipred_dr_32x32_16 avx2 implementation
...
vp9_diag_downright_32x32_12bpp_c: 429.7
vp9_diag_downright_32x32_12bpp_sse2: 158.9
vp9_diag_downright_32x32_12bpp_ssse3: 144.6
vp9_diag_downright_32x32_12bpp_avx: 141.0
vp9_diag_downright_32x32_12bpp_avx2: 73.8
Almost 50% faster than avx implementation
Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com >
2017-06-27 16:10:50 -04:00
James Almer
0daa1cf073
x86/vf_blend: optimize difference and negation functions
...
Process more pixels per loop.
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-27 13:17:23 -03:00
James Almer
fa50d9360b
x86/vf_blend: add sse and ssse3 extremity functions
...
Reviewed-by: Paul B Mahol <onemda@gmail.com >
Signed-off-by: James Almer <jamrial@gmail.com >
2017-06-27 13:17:23 -03:00
Anton Khirnov
d14179e3d4
hwframe: Allow hwaccel frame allocators to align surface sizes
...
Hardware accelerated decoding generally uses AVHWFramesContext for pool
allocation of hardware surfaces. These are setup to allocate surfaces
aligned to hardware and hwaccel API requirements. Due to the
architecture, av_hwframe_get_buffer() will return AVFrames with
the dimensions set to the aligned sizes.
This causes some decoders (like hevc) return these aligned size as
final frame size, instead of cropping them to the video's actual
dimensions. To make sure this doesn't happen, crop the frame to the
size the decoder expects when ff_get_buffer() is called.
Merges Libav commit 3fdf50f9e8
.
Signed-off-by: Luca Barbato <lu_zero@gentoo.org >
2017-06-27 18:05:02 +02:00