1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2024-11-26 19:01:44 +02:00
Commit Graph

95142 Commits

Author SHA1 Message Date
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
Paul B Mahol
cb8d6a4e3e avfilter/vf_v360: implement diagonal field of view 2019-09-14 10:47:01 +02:00
Steven Liu
8efc9fcc56 avformat/hlsenc: make fix code style of hls_write_trailer
change vs->avf to oc
2019-09-14 13:09:16 +08:00
Steven Liu
2e82b50bce avformat/dashdec: reindent code at parse_manifest 2019-09-14 12:54:21 +08:00
Jun Zhao
0c5726a332 lavf/hls: fix memory leak in error handling path for option tmp
fix memory leak in error handling path for option tmp.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-09-14 10:02:00 +08:00
Jun Zhao
90a5bebd19 lavf/hls: remove redundancy seekable setting
ffio_init_context with NULL seek callback will setting seekable with 0, so
remove the redundancy seekable setting.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-09-14 10:01:19 +08:00
Jun Zhao
eada079e71 lavf/hls: drop unnecessary check before ff_format_io_close
ff_format_io_close will check the AVIOContext pointer pb, so drop
the unnecessary check before ff_format_io_close.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-09-14 10:00:12 +08:00
Jun Zhao
48d96ce29a lavf/hls: refine the log message
refine the log message, it's will help the debugging

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-09-14 10:00:03 +08:00
Andreas Rheinhardt
1a066d87e3 avformat/hlsenc: Fix memleak when using single_file
This commit fixes a memleak in the hls muxer when one uses a single file
as output. It has been forgotten to free the temporary buffers used to write
the packets so that the size of the leaks basically amounts to the size
of the output file. This commit adds the necessary free.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
2019-09-14 09:55:49 +08:00
Daniel Oberhoff
88a26abcc6 hlsenc: flush segments to guarantuee atomic single file hls 2019-09-14 09:53:22 +08:00
Michael Niedermayer
3b5ce76b1a avcodec/mjpegdec: Restore non bayer checks in ljpeg_decode_rgb_scan()
Fixes: out of array write
Fixes: 17088/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_JPEGLS_fuzzer-5654877765632000

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-13 21:53:27 +02:00
Michael Niedermayer
2006e5ccb6 avcodec/mjpegdec: Only allow 0x11110000 pix_fmt_id for bayer mode
Fixes: NULL pointer dereference
Fixes: assertion failure
Fixes: 17003/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5696929253556224
Fixes: 17039/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MJPEG_fuzzer-5651008134316032

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-09-13 21:53:27 +02:00
Paul B Mahol
de125a0942 avformat/sccdec: remove not needed code 2019-09-13 19:47:03 +02:00
Paul B Mahol
ed4ad6e1ed avfilter/vf_v360: use always float version instead of double floating-point function 2019-09-13 12:32:35 +02:00
Paul B Mahol
2b3094d61d avfilter/vf_v360: fix flat projection field of view calculation 2019-09-13 11:31:11 +02:00
Gyan Doshi
0993327939 cmdutils: promote report level if loglevel is higher 2019-09-13 11:53:54 +05:30