1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-03 05:10:03 +02:00
Commit Graph

94618 Commits

Author SHA1 Message Date
Jarek Samic
d3cd33ab1b lavfi: add utilities to reduce OpenCL boilerplate code 2019-08-22 23:11:25 +01:00
Marton Balint
3a09dbdb4a avcodec: remove some dead assignments
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-22 21:38:41 +02:00
Marton Balint
b2e37e3eb2 avutil/imgutils: remove dead assignment
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-22 21:38:41 +02:00
Marton Balint
6ee40dcb64 avformat/mxfdec: do not ignore bad size errors
The return value was unintentionally lost after
00a2652df3.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-22 21:38:41 +02:00
Michael Niedermayer
493438fafc avformat/realtextdec: free queue on error
Fixes: memleak
Fixes: 16277/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5696629440512000

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: James Almer <jamrial@gmail.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-22 18:35:44 +02:00
Michael Niedermayer
ab56e62e8f avcodec/vp5/6/8: use vpX_rac_is_end()
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-22 18:35:44 +02:00
Michael Niedermayer
5937f05503 avformat/vividas: Check av_xiphlacing() return value before use
Fixes: out of array access
Fixes: 16277/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-5696629440512000

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-08-22 18:35:44 +02:00
Peter Collingbourne
9bcb1cb6ed Add assembly support for -fsanitize=hwaddress tagged globals.
As of LLVM r368102, Clang will set a pointer tag in bits 56-63 of the
address of a global when compiling with -fsanitize=hwaddress. This requires
an adjustment to assembly code that takes the address of such globals: the
code cannot use the regular R_AARCH64_ADR_PREL_PG_HI21 relocation to refer
to the global, since the tag would take the address out of range. Instead,
the code must use the non-checking (_NC) variant of the relocation (the
link-time check is substituted by a runtime check).

This change makes the necessary adjustment in the movrel macro, where it is
needed when compiling with -fsanitize=hwaddress.

Signed-off-by: Peter Collingbourne <pcc@google.com>
Reviewed-by: Martin Storsjö
Reviewed-by: Janne Grunau
2019-08-22 11:22:07 +02:00
Xuewei Meng
c87237d105 libavfilter: Update derain filter doc.
Add the usage of tensorflow model in derain filter. Training scripts
as well as scripts for tf/native model generation are provided in the
repository at https://github.com/XueweiMeng/derain_filter.git.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Xuewei Meng <xwmeng96@gmail.com>
2019-08-22 15:25:47 +08:00
Paul B Mahol
aeae6283a9 avfilter/vf_v360: remove unused header 2019-08-21 12:53:33 +01:00
Paul B Mahol
a8ef41c1f5 avfilter/vf_v360: improve comments above headers 2019-08-21 12:53:33 +01:00
Paul B Mahol
e6dd943872 doc/filters: fix typos 2019-08-21 12:53:33 +01:00
Paul B Mahol
cc73b849ff add v360 to Changelog 2019-08-21 12:53:33 +01:00
Paul B Mahol
33cd516167 doc/filters: fix v360 options names 2019-08-21 12:53:24 +01:00
Steven Liu
c66d468795 avformat/hlsenc: avformat/hlsenc: simplified code
simplified code for get dirname string in hls_delete_old_segments

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-08-21 16:46:35 +08:00
Steven Liu
fa78a6abb3 avformat/hlsenc: simplified code of use_localtime in hls_init
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-08-21 16:46:31 +08:00
Steven Liu
d1fe1344ea avformat/hlsenc: fix memleak in update_variant_stream_info
Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-08-21 16:46:28 +08:00
Michael Niedermayer
661a9b274b avcodec/alsdec: Fix integer overflow in decode_var_block_data()
Fixes: signed integer overflow: 1927975249 - -514719744 cannot be represented in type 'int'
Fixes: 16413/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ALS_fuzzer-5651206856245248

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-21 01:21:27 +02:00
Michael Niedermayer
d7866bf527 avcodec/internal: Bump sane_nb_chanels
This allows decoding more als reference samples

Suggested-by: Thilo Borgmann <thilo.borgmann@mail.de>
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-21 01:21:27 +02:00
Michael Niedermayer
f51e4d026c avcodec/alsdec: Limit maximum channels to 512
There seems to be no limit in the specification and upto 64k could be stored
512 is choosen as limit as thats the maximum in a conformance sample

An alternative to this patch would be a max_channels variable

Fixes: OOM
Fixes: 16200/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ALS_fuzzer-5764788793114624

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Suggested-by: Thilo Borgmann <thilo.borgmann@mail.de>
Reviewed-by: Thilo Borgmann <thilo.borgmann@mail.de>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-21 01:21:27 +02:00
Zhong Li
74e6800381 lavfi/qsvvpp: disable pass through mode if format changed
Partly fix tiket#8065

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 14:11:26 +08:00
Zhong Li
d252d1c2e9 lavfi/scale_qsv: change alignment to be 16 bytes
32 bytes alignment is not needed and increases the failure possibilty of
SFC (low power scaling mode)

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:38:12 +08:00
Zhong Li
655ff4708b lavc/qsvdec: Add VP9 decoder support
VP9 decoder is support on Intel kabyLake+ platforms with MSDK Version 1.19+

Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:34:04 +08:00
Zhong Li
7555cfd29b lavc/qsvdec: Add mjpeg decoder support
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:34:04 +08:00
Zhong Li
0dfcfc5096 lavc/qsvdec: remove orignal parser code since not needed now
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:34:03 +08:00
Zhong Li
00d0a4aa9e lavc/qsvdec: Replace current parser with MFXVideoDECODE_DecodeHeader()
Using MSDK parser can improve qsv decoder pass rate in some cases (E.g:
sps declares a wrong level_idc, smaller than it should be).
And it is necessary for adding new qsv decoders such as MJPEG and VP9
since current parser can't provide enough information.
Actually using MFXVideoDECODE_DecodeHeader() was disscussed at
https://ffmpeg.org/pipermail/ffmpeg-devel/2015-July/175734.html and merged as commit 1acb19d,
but was overwritten when merged libav patches (commit: 1f26a23) without any explain.

Split decode header from decode_init, and call it for everyframe to
detect format/resoultion change. It can fix some regression issues such
as hevc 10bits decoding.

Signed-off-by: Zhong Li <zhong.li@intel.com>
Signed-off-by: Dmitry Rogozhkin <dmitry.v.rogozhkin@intel.com>
2019-08-20 13:34:03 +08:00
Zhong Li
f3dfd34f27 lavc/qsv: make function qsv_map_fourcc() can be called externally
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:34:02 +08:00
Zhong Li
f115a2b763 lavc/qsvdec: add function ff_qsv_map_picstruct()
Signed-off-by: Zhong Li <zhong.li@intel.com>
2019-08-20 13:34:01 +08:00
Jun Zhao
1b0a8e48f1 lavfi/dnn/dnn_backend_native: fix memory leak in error path
fix memory leak in error path

Reviewed-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-08-20 10:07:38 +08:00
Jun Zhao
f156f4ab23 lavfi/avfiltergraph: add check before free the format
ff_merge_samplerates will be deallocate a or b in some case, so
add a check before free the format.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-08-20 10:06:17 +08:00
Jun Zhao
df6876d691 lavfi/af_adeclick: fix double free after ff_filter_frame fail
ff_filter_frame fail will free the frame, so we just returen after this
function fail.

Reviewed-by: Paul B Mahol <onemda@gmail.com>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-08-20 10:05:03 +08:00
Steven Liu
3708a2a909 avformat/hlsenc: reindent code
and remove redundant empty line
2019-08-20 09:56:38 +08:00
Steven Liu
939c17fcb3 avformat/hlsenc: remove unuse comment of the code 2019-08-20 09:45:47 +08:00
Jun Zhao
f36925201c lavf/hlsenc: free the old_filname to avoid memory leak
free the old_filname to avoid memory leak in error handle
path.

Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Jun Zhao <barryjzhao@tencent.com>
2019-08-20 08:44:42 +08:00
Limin Wang
eccb94c3ba lavf/hlsenc: fix one warning: unused variable 'filename' [-Wunused-variable]
Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2019-08-20 08:23:53 +08:00
Guo, Yejun
d0fa1a58da FATE/dnn: let fate/dnn tests depend on ffmpeg static libraries
background:
DNN (deep neural network) is a sub module of libavfilter, and FATE/dnn
is unit test for the DNN module, one unit test for one dnn layer.
The unit tests are not based on the APIs exported by libavfilter,
they just directly call into the functions within DNN submodule.

There is an issue when run the following command:
build$ ../ffmpeg/configure --disable-static --enable-shared
make
make fate-dnn-layer-pad

And part of error message:
tests/dnn/dnn-layer-pad-test.o: In function `test_with_mode_symmetric':
/work/media/ffmpeg/build/src/tests/dnn/dnn-layer-pad-test.c:73: undefined reference to `dnn_execute_layer_pad'

The root cause is that function dnn_execute_layer_pad is a LOCAL symbol
in libavfilter.so, and so the linker could not find it when build dnn-layer-pad-test.
To check it, just run: readelf -s libavfilter/libavfilter.so | grep dnn

So, add dependency in fate/dnn Makefile with ffmpeg static libraries.
This is the same method used in fate/checkasm

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-08-19 11:37:16 -03:00
Guo, Yejun
67889d4715 libavfilter/dnn/dnn_backend_tf: add tf.pad support for tensorflow backend with native model.
Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-08-19 11:37:16 -03:00
Guo, Yejun
29aeeb3e3e libavfilter/dnn/dnn_backend_tf: fix typo that variable uninitialized.
if it is initialized randomly, the tensorflow lib will report
error message such as:
Attempt to add output -7920 of depth_to_space4 not in range [0, 1) to node with type Identity

Signed-off-by: Guo, Yejun <yejun.guo@intel.com>
Signed-off-by: Pedro Arthur <bygrandao@gmail.com>
2019-08-19 11:37:16 -03:00
Eugene Lyapustin
596ecc295f avfilter/vf_v360: add dual fisheye format
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
2019-08-19 09:07:38 +01:00
Eugene Lyapustin
d044252aac avfilter/vf_v360: add padding option for cubemap
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
2019-08-19 09:06:27 +01:00
Eugene Lyapustin
b26094e217 avfilter: add v360 filter
Signed-off-by: Eugene Lyapustin <unishifft@gmail.com>
2019-08-19 09:06:07 +01:00
Michael Niedermayer
1965161ef6 avcodec/anm: Check input size for a frame with just a stop code
Fixes: Timeout (11sec -> 6sec)
Fixes: 16344/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_ANM_fuzzer-5673032000995328

Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
Reviewed-by: Peter Ross <pross@xvid.org>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
2019-08-18 22:12:55 +02:00
Steven Liu
cff309097a avformat/hlsenc: merge mpegts and fmp4 workflow to one workflow
write mpegts or fmp4 context into buffer, and flush the buffer into
output file when split fragment. merge two format split workflow into
one workflow

Signed-off-by: Steven Liu <lq@chinaffmpeg.org>
2019-08-18 08:22:32 +08:00
Limin Wang
df6e341b04 lavf/dump: use error log level for invalid size
Reviewed-by: Steven Liu <lq@onvideo.cn>
Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
2019-08-18 08:17:57 +08:00
Limin Wang
6866c54ee4 avfilter/showinfo: support Content Light Level information
show real information instead of the unknown side data type message for HDR10 stream

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
2019-08-17 14:47:13 -03:00
Marton Balint
95fa73a2b4 avformat/avio: remove 4k limit from avio_printf
We do this by switching to AVBPrint.

v2: Also set IO context error flag in case of ENOMEM.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-17 18:39:49 +02:00
Marton Balint
61b4daf78c avformat/assenc: optimize writing dialogs
An example where the preivously added API can be useful.

Also fixes ticket #6390.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-17 18:39:49 +02:00
Marton Balint
a82f8f2f10 avformat/avio: add avio_print_string_array and avio_print
These functions can be used to print a variable number of strings consecutively
to the IO context. Unlike av_bprintf, no temporary buffer is necessary.

Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-17 18:39:49 +02:00
Limin Wang
6a3bdf3148 fate: add accurate_rnd+bitexact sws_flags for fate-gifenc
This fixes make fate issue for frame thread scale in my local testing

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-17 17:33:16 +02:00
Limin Wang
ad3ef00ce5 avfilter/f_select: yuv will use Y plane only for scenecut detect
At the moment scene change detection score uses all planes to detect scene
changes. In this regard this is similar how the frozen frames detection works.
However, in classic encoding scene change detection typically only uses the Y
plane.

We might get more resonable scores for scene change if we also use only
the Y plane for calculating the score if the pixel format is YUV. Although
this will require additional work once packed YUV formats are added,
because for the moment the generic scene sad score calculation has no way
to ignore some components in a packed format.

Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
Signed-off-by: Marton Balint <cus@passwd.hu>
2019-08-17 17:15:19 +02:00