Commit Graph

86821 Commits

Author SHA1 Message Date
Michael Niedermayer f1baafac71 avcodec/interplayvideo: Clean up frames on parameter change
Fixes: out of array access
Fixes: 2467/clusterfuzz-testcase-minimized-4755798049685504

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-06 03:59:09 +02:00
Azamat H. Hackimov 121ab69c9d libavformat/gdv: Fix parsing for soundless video
Added 2 byte skipping if there no sound present, that fixes playback
files without sound stream.

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-05 23:25:58 +02:00
John Stebbins 369a3e111c movenc: allow alternative hvc1 h.265 codec tag
If AVCodecParameters.codec_tag is 'hvc1' use it instead of 'hev1' for
h.265 streams. QuickTime (and other Apple software) requires 'hvc1'.

(cherry picked from commit 84ab1cc437)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-05 15:55:25 -04:00
John Stebbins 974d508e57 movenc: write correct format hvcc when tag is hvc1
(cherry picked from commit 1ea9b7fdf9)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-05 15:55:25 -04:00
John Stebbins 38d808d72e movenc: move tags definitions to where they are used
(cherry picked from commit 1c64bae648)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-05 15:55:25 -04:00
John Stebbins e199d90da6 movenc: simplify codec_tag lookup
mux.c init_muxer() already sets codec_tag correctly in the cases
simplified here.

This also adds the capability to support alternative tags for the
same codec_id.

(cherry picked from commit f6f86f432f)
Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
2017-07-05 15:55:25 -04:00
James Almer 9878935927 fate: add fate-checkasm-sbrdsp target
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-05 16:54:16 -03:00
James Almer 9d5e81d3b1 Revert "x86/sbrdsp: remove unnecessary sign extend instruction in apply_noise_main"
This reverts commit 24bb7db403.

noise has to after all be sign extended, not zero extended, on tests
other than checkasm.
Fixes most aac tests broken by the now reverted commit.
2017-07-05 10:29:15 -03:00
Steven Liu 1fe40e73a6 avformat/hlsenc: copy codec_tag when stream copy
when use fmp4 segment type in hls and use codec copy,
there have an error message.
error message:
   [mp4 @ 0x25df020] Tag avc1 incompatible with output codec id '28' ([33][0][0][0])
   [hls @ 0x2615c80] Some of the provided format options in '(null)' are not recognized
   Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument
this patch can fix it.

Signed-off-by: Liu Qi <w_liuqi@kingsoft.com>
Signed-off-by: Steven Liu <lq@onvideo.cn>
2017-07-05 11:20:21 +08:00
Steven Liu d01b8f8683 avformat/hlsenc: optimize help message default value.
show the hls_segment_type default always 0, show the flag name better

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2017-07-05 11:15:20 +08:00
Michael Niedermayer c8cfbc6629 avcodec/hevcdec: do not let updated extradata corrupt state
Fixes: out of array access
Fixes: 2451/clusterfuzz-testcase-minimized-4781613957251072

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Hendrik Leppkes <h.leppkes@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2017-07-05 04:37:57 +02:00
James Almer 24bb7db403 x86/sbrdsp: remove unnecessary sign extend instruction in apply_noise_main
noise needs to be zero extended and it can be done implicitly as a side effect
in a subsequent instruction.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-04 23:36:17 -03:00
James Almer 3d3243577c checkasm: use declare_func_float() in sbrdsp sum_square test
The function returns a float.

This fixes the test in x86_32 targets.

Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-04 23:02:57 -03:00
James Almer bcbe9e4447 x86/sbrdsp: zero extend m_max in apply_noise_main
Tested-by: Michael Niedermayer <michael@niedermayer.cc>
Signed-off-by: James Almer <jamrial@gmail.com>
2017-07-04 23:02:24 -03:00
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