1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-12-23 12:43:46 +02:00
Commit Graph

86707 Commits

Author SHA1 Message Date
James Almer
440285474b x86/utvideodsp: make restore_rgb_planes functions work on x86_32
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-04 22:49:45 -03:00
Michael Niedermayer
c07af72098 avcodec/wavpack: Fix invalid shift
Fixes: runtime error: left shift of 1 by 31 places cannot be represented in type 'int'
Fixes: 2377/clusterfuzz-testcase-minimized-6108505935183872

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-05 03:19:27 +02:00
Michael Niedermayer
7592d97f10 avcodec/h264_slice: Fix signed integer overflow
Fixes: runtime error: signed integer overflow: 26 + 2147483644 cannot be represented in type 'int'
Fixes: 2456/clusterfuzz-testcase-minimized-4822695051001856

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-05 03:19:27 +02:00
John Stebbins
95f3c85976 movenc: use correct tag list for AVOutputFormat.codec_tag
ff_mp4_obj_type contains the wrong type of tags for
AVOutputFormat.codec_tag. AVOutputFormat.codec_tag is used to
validate AVCodecParameters.codec_tag so needs to be the same
type of tag.

Creates new tag lists for mp4 and ismv.  New tag lists support
same list of codecs found in ff_mp4_obj_type. psp uses the same
tag list as mp4 since these both use mp4_get_codec_tag to look up tags.

(cherry picked from commit 713efb2c0d)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-04 15:49:34 -04:00
Martin Storsjö
d086e40459 lavf: Remove codec_tag from dashenc and smoothstreamingenc
Skip the codec_tag altogether here, to let the user (try to) set
whichever codec/tag is preferred; the individual chained muxer will
reject invalid codecs anyway.

(cherry picked from commit 61f589e31e)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-04 15:47:10 -04:00
Kevin Mark
d32a6c36e4 libavfilter/scale2ref: Maintain main input's DAR
The scale2ref filter will now maintain the DAR of the main input and
not the DAR of the reference input. This previous behavior was deemed
counterintuitive for most (all?) use-cases.

Before:
scale2ref=iw/4:ow/mdar
in  w:320 h:240 fmt:rgb24 sar:1/1
ref w:640 h:360 fmt:rgb24 sar:1/1
out w:160 h:120 fmt:rgb24 sar:4/3 flags:0x2
SAR: ((120 * 640) / (160 * 360)) * (1 / 1) = 4 / 3
DAR: (160 / 120) * (4 / 3) = 16 / 9
(main out now same DAR as ref)

Now:
scale2ref=iw/4:ow/mdar
in  w:320 h:240 fmt:rgb24 sar:1/1
ref w:640 h:360 fmt:rgb24 sar:1/1
out w:160 h:120 fmt:rgb24 sar:1/1 flags:0x2
SAR: ((120 * 320) / (160 * 240)) * (1 / 1) = 1 / 1
DAR: (160 / 120) * (1 / 1) = 4 / 3
(main out same DAR as main in)

The scale2ref FATE test has also been updated.

Signed-off-by: Kevin Mark <kmark937@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-04 15:09:10 +02:00
Paul B Mahol
1212041c91 avfilter/vf_ssim: use unsigned so result can be properly stored
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-07-04 10:21:14 +02:00
Paul B Mahol
cbbd330abc avcodec/alsdec: fix some undefined shifts
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-07-04 09:24:54 +02:00
Paul B Mahol
c3f10ea4bb avcodec/alsdec: remove unused header
Signed-off-by: Paul B Mahol <onemda@gmail.com>
2017-07-04 09:20:48 +02:00
Aman Gupta
aad79e4323 lavc/mediacodec: rescale pts before decoding for both hw and sw buffers
Replicates the logic used in the wrap_hw_buffer path to wrap_sw_buffer
as well.

Fixes decoding issues observed on AMLogic devices with
OMX.amlogic.mpeg2.decoder.awesome, where the decoder would spit out a
constant stream of "mPtsRecoveryCount" errors and decoded frames were
returned in the incorrect order.

Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-07-03 23:39:06 +02:00
Aman Gupta
6d4a686d45 lavc/mediacodec: add missing newline on warning
Signed-off-by: Matthieu Bouron <matthieu.bouron@gmail.com>
2017-07-03 23:38:06 +02:00
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