Commit Graph

94957 Commits

Author SHA1 Message Date
Michael Niedermayer 093d1f4250 avformat/mov: Check for EOF in mov_read_meta()
Fixes: Timeout (195sec -> 2ms)
Fixes: 16735/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5090676403863552

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-17 14:41:07 +02:00
Andreas Rheinhardt 2b1fcba8dd fftools/ffmpeg_opt: Fix signed integer overflow
Fixes ticket #8154.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-17 14:41:07 +02:00
Andreas Rheinhardt 34bd293b01 avformat/mov: Fix memleak
When the mov/mp4 demuxer encounters an error during decrypting a packet,
it returns the error, yet doesn't free the packet, so that the packet
leaks. This has been fixed in this commit.

Fixes the memleaks from ticket #8150.

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-17 14:41:07 +02:00
Michael Niedermayer ef50cf7b32 avcodec/hevcdec: Fix memleak of a53_caption
Fixes: 15295/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HEVC_fuzzer-5675655187922944

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 22:51:26 +02:00
Andreas Rheinhardt 3ab488a540 avcodec/ttaenc: Fix undefined shift
ttaenc contained (1 << unary) - 1 as an argument for a function
expecting an unsigned int. unary can be as big as 31 in this case.
The type of the shift and the whole expression is int, because 1 fits
into an integer, so that the behaviour is undefined if unary == 31
as the result of the shift can't be represented in an int §. Subtraction
by 1 (which makes the result of the whole expression representable in
an int) doesn't change that this is undefined (it usually leads to
signed integer overflow which is undefined, too).

The solution is simple: Make 1 unsigned to change the type of the
whole expression to unsigned int (as the function expects anyway).

Fixes ticket #8153.

§: This of course presupposes the common int range of -2^31..2^31-1

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 21:30:19 +02:00
Carl Eugen Hoyos 551fcbbccb lavc/g729dec: Support decoding Sipro ACELP.KELVIN.
Fixes ticket #4799.
Analyzed-by: Aleksandr Ustinov
2019-09-16 20:57:53 +02:00
James Almer dc0806dd25 avcodec/allcodecs: make libdav1d the preferred AV1 decoder
It's considerably faster than libaom in most systems.

Reviewed-by: BBB
Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-16 15:26:46 -03:00
Paul B Mahol 6f4ec4d909 avfilter/vf_v360: add slice threading to remap calculation 2019-09-16 18:43:11 +02:00
Paul B Mahol 05ffaa252e avfilter/vf_v360: refactor creation of remap data 2019-09-16 18:43:11 +02:00
Paul B Mahol a09213da23 avfilter/vf_v360: reverse order of remap for loops 2019-09-16 18:03:16 +02:00
Paul B Mahol cf62110a83 avfilter/vf_v360: simplify allocating remap data 2019-09-16 17:58:08 +02:00
Paul B Mahol c271d88257 avfilter/vf_v360: move some local variables to private filter context 2019-09-16 17:53:58 +02:00
Paul B Mahol d87db83e1c avfilter/vf_v360: rename r_tmp variables 2019-09-16 17:50:16 +02:00
Rick Kern 1db6e47e85 avcodec/videotoolboxenc: warn user when output will use a different profile/level than requested.
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-09-16 09:02:59 -04:00
Limin Wang 57951f3019 avcodec/videotoolboxenc: add H264 Extended profile and level
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-09-16 09:00:39 -04:00
sharpbai 6966548c1b avcodec/videotoolboxenc: fix encoding frame crash on iOS 11
On iOS 11, encoding a frame may return error with log
"Error encoding frame 0", which means vtenc_output_callback
is called with status=0 and sample_buffer=NULL. Then the
encoding session will be crashed on next callback wether or not
closing the codec context.

Let us look through the link below introducing VTCompressionOutputCallback,

https://developer.apple.com/documentation/videotoolbox/vtcompressionoutputcallback?language=objc

"status=0" (noErr) means compression was successful.
"sampleBuffer=NULL" means the frame was dropped when compression
was successful (status=0) or compression was not successful (status!=0).

So we should not set AVERROR_EXTERNAL on "status=0" and "sample_buffer=NULL"
as it is not a error.

The fix is that we only set AVERROR_EXTERNAL with status value non zero.
When sample_buffer is NULL and status value is zero, we simply return
with no other operation.

This crash often occurs on iOS 11 for example encoding 720p@25fps.

Signed-off-by: sharpbai <sharpbai@gmail.com>
Signed-off-by: Rick Kern <kernrj@gmail.com>
2019-09-16 08:58:10 -04:00
Paul B Mahol 94f187d382 avfilter/vf_stereo3d: assert that out variable is valid 2019-09-16 11:45:28 +02:00
Paul B Mahol 34a12b9978 avfilter/vf_stereo3d: merge same code in case branches 2019-09-16 11:41:50 +02:00
Paul B Mahol ea8391e519 avfilter/vf_shuffleplanes: remove not needed line 2019-09-16 11:28:03 +02:00
Paul B Mahol f70690e8ec avfilter/vf_ciescope: remove dead assignments 2019-09-16 11:22:16 +02:00
Paul B Mahol fa045c3ce2 avfilter/window_func: clarify intention in dolph window calculation 2019-09-16 10:57:09 +02:00
Paul B Mahol 654601dd1d avfilter/vf_v360: add missing av_assert0() 2019-09-16 10:40:47 +02:00
Paul B Mahol 7a7aa4f79e avfilter/vf_avgblur: remove dupe assignment 2019-09-16 10:31:05 +02:00
Paul B Mahol dc33250765 avfilter/af_headphone: return on error immediately 2019-09-16 10:27:42 +02:00
Paul B Mahol 921eb21b1d avfilter/x86/vf_360: add most of >8 depth asm 2019-09-16 10:21:16 +02:00
Michael Niedermayer 8e8fd25272 avformat/vividas: Remove align offset which is always masked off
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:53:18 +02:00
Michael Niedermayer 08dc354ef7 avformat/vividas: remove dead assignment
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:53:18 +02:00
Michael Niedermayer 5c5575c8dc avformat/cdxl: Fix integer overflow in intermediate
Fixes: signed integer overflow: 65535 * 65312 cannot be represented in type 'int'
Fixes: 16704/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6294115603447808

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:53:18 +02:00
Michael Niedermayer 9fac243744 avcodec/cfhd: Check that cropped size is smaller than full
Fixes: signed integer overflow: 57342 * 120830 cannot be represented in type 'int'
Fixes: 16426/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_CFHD_fuzzer-5758744817827840

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
2019-09-16 00:53:18 +02:00
Michael Niedermayer 305f6dbb06 tools/target_dec_fuzzer: increase snows threshold
snow allows creating large output from tiny input, like other
wavelet codecs

Fixes: Timeout (82sec -> 1.5sec)
Fixes: 9520/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SNOW_fuzzer-6286612576075776

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:53:18 +02:00
Michael Niedermayer d2d8e797cc avcodec/hevcdec: repeat character in skiped
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer fccc37ca85 repeat an even number of characters in occured
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer 24e5270911 avformat/hcom: Tell the compiler about set but not read variables
This avoids 3 warnings

Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer c80715f153 doc/examples/decode_audio: Fix "warning: ISO C90 forbids mixed declarations and code"
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer a9fae76370 avcodec/gdv: Replace assert() checking bitstream by if()
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer 61b055bed0 libavcodec/utils: Free threads on init failure
Fixes: Multiple memleaks
Fixes: ffmpeg-memory-leak

Found-by: Francis Provencher <francis@protekresearchlab.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Michael Niedermayer 9fd62b84d5 tools/target_dec_fuzzer: Adjust motionpixels threshold
Fixes: Timeout (151sec -> 173ms)
Fixes: 16053/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOTIONPIXELS_fuzzer-5647069169057792
Fixes: 16053/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MOTIONPIXELS_fuzzer-5108957126852608

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
gxw 92fc0bfa54 avutil/mips: refactor msa SLDI_Bn_0 and SLDI_Bn macros.
Changing details as following:
1. The previous order of parameters are irregular and difficult to
   understand. Adjust the order of the parameters according to the
   rule: (RTYPE, input registers, input mask/input index/..., output registers).
   Most of the existing msa macros follow the rule.
2. Remove the redundant macro SLDI_Bn_0 and use SLDI_Bn instead.

Reviewed-by: Shiyou Yin <yinshiyou-hf@loongson.cn>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-16 00:04:18 +02:00
Rodger Combs 77937a42e7 lavc/videotoolboxdec: fix crop handling when multithreaded
This was partially fixed by 233cd89, but it made changes to AVFrame fields
from within end_frame, which doesn't work consistently when multithreading
is enabled. This is what the post_process function is for.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2019-09-15 11:13:29 -07:00
Aman Gupta 81abf90aea avcodec/v4l2: fix compile with older videodev2.h
Some of these symbols are only defined in newer kernel releases.

Signed-off-by: Aman Gupta <aman@tmm1.net>
2019-09-15 11:10:09 -07:00
James Almer 6c0167f6f6 avcodec/libdav1d: use the library default for the filmgrain option
Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-15 11:09:39 -03:00
James Almer 4c34ed65f6 avformat/rmdec.c: fix brackets around arguments
Regression since 78f52b4fe3

Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-15 11:04:33 -03:00
James Almer 78f52b4fe3 avformat/rmdec.c: fix left shift of negative value in rm_sync()
Fixes ticket 8143.

Reviewed-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-09-15 10:31:19 -03:00
Paul B Mahol 5a9560dfc6 avfilter/vf_stereo3d: add tb (top-bottom) aliases 2019-09-15 10:54:00 +02:00
Paul B Mahol 7f8f886344 avfilter/vf_v360: refactor dimensions and offsets calculations 2019-09-15 10:37:42 +02:00
Paul B Mahol 197985c5bf doc/filters: add another v360 example 2019-09-14 19:52:05 +02:00
Paul B Mahol 45bb80dccc avfilter/vf_v360: implement stereo 3D support 2019-09-14 19:35:13 +02:00
Paul B Mahol 451cee662c avfilter/vf_v360: reduce by one cosf call less 2019-09-14 17:40:46 +02:00
Paul B Mahol 2a672a93d2 avfilter/vf_v360: define variables in for loops consistently 2019-09-14 17:33:31 +02:00
Paul B Mahol f78abca0c2 avfilter/vf_v360: call tanf() once 2019-09-14 13:33:24 +02:00