summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/hcadec: Check total_band_count against imdct_in sizeMichael Niedermayer2020-07-021-0/+4
| | | | | | | | Fixes: index 128 out of bounds for type 'float [128]' Fixes: 23465/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_HCA_fuzzer-5089866596745216 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/scpr3: Fix out of array access with dectabMichael Niedermayer2020-07-021-3/+14
| | | | | | | Fixes: 23721/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5914074721550336 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/tiff: Do not overrun the array ends in dng_blit()Michael Niedermayer2020-07-021-1/+4
| | | | | | | | Fixes: out of array access Fixes: 23589/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5110559589793792.fuzz Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/dstdec: Replace AC overread check by sample rate checkMichael Niedermayer2020-07-021-7/+6
| | | | | | | | | | | | | Real files do skip coding 0 bits at the end, thus this kind of check does not work reliable. Fixes: Ticket 8770 Fixes: dst-256fs44-6ch-refdstencoder.dff The samplerate is specified in ISO/IEC 14496-3:2005(E) as one of 3 fixed values, this also can be used to limit the duration and avoid the timeout This reverts commit f6df99dba1ae64b05d08fba8160d13eb9795042f.
* avformat/icecast: Add option to use TLS connectionMarvin Scholz2020-07-022-1/+8
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/hlsenc: simplify code to pass s directlyLimin Wang2020-07-021-6/+2
| | | | | Suggested-by: Nicolas George <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avformat/hlsenc: fix av_bprint_finalize() usageLimin Wang2020-07-021-2/+2
| | | | | | | Don't need to do double check by the description of the API. Reviewed-by: Nicolas George <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avformat/hlsenc: use proper error codesLimin Wang2020-07-021-6/+8
| | | | Signed-off-by: Limin Wang <[email protected]>
* avformat/au: check return value of au_read_annotation()Limin Wang2020-07-021-1/+4
| | | | Signed-off-by: Limin Wang <[email protected]>
* avformat/au: check return value of av_bprint_finalize()Limin Wang2020-07-021-2/+4
| | | | | Reviewed-by: Nicolas George <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avutil/opt: check return value of av_bprint_finalize()Limin Wang2020-07-021-1/+3
| | | | | Reviewed-by: Nicolas George <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avformat/dump: add a \n for end of ERROR logLimin Wang2020-07-021-6/+6
| | | | Signed-off-by: Limin Wang <[email protected]>
* FATE: fix colorbalance fate test failed on x86_32Limin Wang2020-07-025-24/+24
| | | | | | | | | floating point precision will cause rgb*max generate different value on x86_32 and x86_64. have pass fate test on x86_32 and x86_64 by using lrintf to get the nearest integral value for rgb * max before av_clip. Reviewed-by: Paul B Mahol <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* Replace 'FontName' with 'Fontname' in the documentation.Joe Ratterman2020-07-021-1/+1
| | | | | | | | | | This is the only use of 'FontName' with that capitalization, as both source-code and tests use 'Fontname'. Having consistent capitalization makes it easier to find the relevant source from the docs. See these examples for other uses: libavcodec/ass_split.c:68 tests/ref/fate/sub-cc:9
* vf_dnn_processing.c: add dnn backend openvinoGuo, Yejun2020-07-022-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We can try with the srcnn model from sr filter. 1) get srcnn.pb model file, see filter sr 2) convert srcnn.pb into openvino model with command: python mo_tf.py --input_model srcnn.pb --data_type=FP32 --input_shape [1,960,1440,1] --keep_shape_ops See the script at https://github.com/openvinotoolkit/openvino/tree/master/model-optimizer We'll see srcnn.xml and srcnn.bin at current path, copy them to the directory where ffmpeg is. I have also uploaded the model files at https://github.com/guoyejun/dnn_processing/tree/master/models 3) run with openvino backend: ffmpeg -i input.jpg -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=openvino:model=srcnn.xml:input=x:output=srcnn/Maximum -y srcnn.ov.jpg (The input.jpg resolution is 720*480) Also copy the logs on my skylake machine (4 cpus) locally with openvino backend and tensorflow backend. just for your information. $ time ./ffmpeg -i 480p.mp4 -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=tensorflow:model=srcnn.pb:input=x:output=y -y srcnn.tf.mp4 … frame= 343 fps=2.1 q=31.0 Lsize= 2172kB time=00:00:11.76 bitrate=1511.9kbits/s speed=0.0706x video:1973kB audio:187kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.517637% [aac @ 0x2f5db80] Qavg: 454.353 real 2m46.781s user 9m48.590s sys 0m55.290s $ time ./ffmpeg -i 480p.mp4 -vf format=yuv420p,scale=w=iw*2:h=ih*2,dnn_processing=dnn_backend=openvino:model=srcnn.xml:input=x:output=srcnn/Maximum -y srcnn.ov.mp4 … frame= 343 fps=4.0 q=31.0 Lsize= 2172kB time=00:00:11.76 bitrate=1511.9kbits/s speed=0.137x video:1973kB audio:187kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: 0.517640% [aac @ 0x31a9040] Qavg: 454.353 real 1m25.882s user 5m27.004s sys 0m0.640s Signed-off-by: Guo, Yejun <[email protected]> Signed-off-by: Pedro Arthur <[email protected]>
* dnn: add openvino as one of dnn backendGuo, Yejun2020-07-026-2/+317
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | OpenVINO is a Deep Learning Deployment Toolkit at https://github.com/openvinotoolkit/openvino, it supports CPU, GPU and heterogeneous plugins to accelerate deep learning inferencing. Please refer to https://github.com/openvinotoolkit/openvino/blob/master/build-instruction.md to build openvino (c library is built at the same time). Please add option -DENABLE_MKL_DNN=ON for cmake to enable CPU path. The header files and libraries are installed to /usr/local/deployment_tools/inference_engine/ with default options on my system. To build FFmpeg with openvion, take my system as an example, run with: $ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/deployment_tools/inference_engine/lib/intel64/:/usr/local/deployment_tools/inference_engine/external/tbb/lib/ $ ../ffmpeg/configure --enable-libopenvino --extra-cflags=-I/usr/local/deployment_tools/inference_engine/include/ --extra-ldflags=-L/usr/local/deployment_tools/inference_engine/lib/intel64 $ make Here are the features provided by OpenVINO inference engine: - support more DNN model formats It supports TensorFlow, Caffe, ONNX, MXNet and Kaldi by converting them into OpenVINO format with a python script. And torth model can be first converted into ONNX and then to OpenVINO format. see the script at https://github.com/openvinotoolkit/openvino/tree/master/model-optimizer/mo.py which also does some optimization at model level. - optimize at inference stage It optimizes for X86 CPUs with SSE, AVX etc. It also optimizes based on OpenCL for Intel GPUs. (only Intel GPU supported becuase Intel OpenCL extension is used for optimization) Signed-off-by: Guo, Yejun <[email protected]> Signed-off-by: Pedro Arthur <[email protected]>
* avformat/hevc: Defer initializations in ff_isom_write_hvcc()Andreas Rheinhardt2020-07-021-10/+8
| | | | | | | Saves initialization of an HEVCDecoderConfigurationRecord when the data is already in ISOBMFF-format or if it is plainly invalid. Signed-off-by: Andreas Rheinhardt <[email protected]>
* avcodec/libaomenc: Add command-line options for intra-coding toolsWang Cao2020-07-013-1/+57
| | | | | Signed-off-by: Wang Cao <[email protected]> Signed-off-by: James Zern <[email protected]>
* avcodec/libaomenc: Add command-line options to control the use of partition ↵Wang Cao2020-07-013-1/+25
| | | | | | | | | | tools This patch adds the control for enabling rectangular partitions, 1:4/4:1 partitions and AB shape partitions. Signed-off-by: Wang Cao <[email protected]> Signed-off-by: James Zern <[email protected]>
* avcodec/nvenc: add new h264 levels from Video SDK 10Timo Rothenpieler2020-07-012-1/+12
| | | | Signed-off-by: Timo Rothenpieler <[email protected]>
* avcodec/nvenc: add new Video SDK 10 featuresRoman Arzumanyan2020-07-015-6/+145
| | | | | | | | 1. new Nvenc presets 2. new multipass encode modes 3. low delay key frame scale Signed-off-by: Timo Rothenpieler <[email protected]>
* avformat/mov: fix memleaksZhao Zhili2020-07-011-4/+3
| | | | | | | | Fix two cases of memleaks: 1. The leak of dv_demux 2. The leak of dv_fctx upon dv_demux allocate failure Signed-off-by: Andreas Rheinhardt <[email protected]>
* libavformat/mov: Fix memleaks when demuxing DV audioAndreas Rheinhardt2020-07-011-10/+13
| | | | | | | | | | | | | | | | | | | | | The code for demuxing DV audio predates the introduction of refcounted packets and when the latter was added, changes to the former were forgotten. This meant that when avpriv_dv_produce_packet initialized the packet containing the AVBufferRef, the AVBufferRef as well as the underlying AVBuffer leaked; the actual packet data didn't leak: They were directly freed, but not via their AVBuffer's free function. https://samples.ffmpeg.org/ffmpeg-bugs/trac/ticket4671/dir1.tar.bz2 contains samples for this (enable_drefs needs to be enabled for them). Moreover, errors in avpriv_dv_produce_packet were ignored; this has been changed, too. Furthermore, in the hypothetical scenario that the track has a palette, this would leak, too, so reorder the code so that the palette code appears after the DV audio code. Signed-off-by: Andreas Rheinhardt <[email protected]>
* avutil/avsscanf: Add () to avoid integer overflow in scanexp()Michael Niedermayer2020-07-011-2/+2
| | | | | | | | Fixes: signed integer overflow: 2147483610 + 52 cannot be represented in type 'int' Fixes: 23260/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_PBM_fuzzer-5187871274434560 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/utils: reorder duration computation to avoid overflowMichael Niedermayer2020-07-011-1/+1
| | | | | | | | Fixes: signed integer overflow: 8 * 9223372036854774783 cannot be represented in type 'long' Fixes: 23381/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-4818340509122560 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/pngdec: Check for fctl after idatMichael Niedermayer2020-07-011-0/+5
| | | | | | | | Fixes: out of array access Fixes: 23554/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_APNG_fuzzer-4796622520451072.fuzz Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/hls: Pass a copy of the URL for probingMichael Niedermayer2020-07-011-2/+4
| | | | | | | | | | The segments / url can be modified by the io read when reloading This may be an alternative or additional fix for Ticket8673 as a further alternative the reload stuff could be disabled during probing Signed-off-by: Michael Niedermayer <[email protected]>
* avformat/isom: add comment to mov_mdhd_language_mapZhao Zhili2020-07-011-19/+139
| | | | Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/mlpenc: free filter state buffers on allocation failureJames Almer2020-07-011-1/+2
| | | | Signed-off-by: James Almer <[email protected]>
* avcodec/mlpenc: propagate proper error valuesJames Almer2020-07-011-9/+9
| | | | Signed-off-by: James Almer <[email protected]>
* avcodec/mlpenc: remove delay codec capabilityJames Almer2020-07-011-5/+2
| | | | | | | | | | The encoder has no delayed packets at the end of the encoding process, so signaling this capability is unnecessary. This also fixes an assertion failure introduced in 827d6fe73d, as return values higher than 0 are not expected. Signed-off-by: James Almer <[email protected]>
* avcodec/internal: remove unused out_frame field from DecodeSimpleContextJames Almer2020-07-011-1/+0
| | | | | | It was introduced in 061a0c14bb but apparently never used Signed-off-by: James Almer <[email protected]>
* avutil/common: Fix integer overflow in av_ceil_log2_c()Michael Niedermayer2020-06-301-1/+1
| | | | | | | | Fixes: left shift of 1913647649 by 1 places cannot be represented in type 'int' Fixes: 23572/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMALOSSLESS_fuzzer-5082619795734528 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/wmalosslessdec: fix overflow with pred in revert_cdlmsMichael Niedermayer2020-06-301-2/+3
| | | | | | | | Fixes: signed integer overflow: 2048 + 2147483646 cannot be represented in type 'int' Fixes: 23538/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_WMALOSSLESS_fuzzer-5227567073460224 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <[email protected]>
* libavcodec/jpeg2000.c: Precinct size check removedGautam Ramakrishnan2020-06-303-5/+5
| | | | | | | | | | This patch removes a check which throws an error if the log2 precinct width/height is 0. The standard allows the first component to have 0 as the log2 width/height. However, to ensure proper intialization of coding style, an extra check has been added. Signed-off-by: Michael Niedermayer <[email protected]>
* avcodec/nvenc: rename tc option to something more uniqueTimo Rothenpieler2020-06-304-4/+4
| | | | Signed-off-by: Timo Rothenpieler <[email protected]>
* avcodec/nvenc: add a53cc option for hevc_nvencTimo Rothenpieler2020-06-301-0/+1
| | | | Signed-off-by: Timo Rothenpieler <[email protected]>
* avformat/dump: Use intermediate pointer for access to programs arrayAndreas Rheinhardt2020-06-301-7/+8
| | | | | | | Improves readability. Reviewed-by: Limin Wang <[email protected]> Signed-off-by: Andreas Rheinhardt <[email protected]>
* avformat/dump: Use const where appropriateAndreas Rheinhardt2020-06-301-43/+48
| | | | | | | | Also switch to using a pointer to access stream side data instead of copying the stream's AVPacketSideData. Reviewed-by: Limin Wang <[email protected]> Signed-off-by: Andreas Rheinhardt <[email protected]>
* avcodec/smacker: Add FF_CODEC_CAP_INIT_CLEANUPAndreas Rheinhardt2020-06-301-2/+1
| | | | Signed-off-by: Andreas Rheinhardt <[email protected]>
* avcodec/mpeg12dec: Fix uninitialized data in fate-sub-cc-scte20Limin Wang2020-06-301-0/+2
| | | | | | | | | The issue is introduced in a705bcd763e344fa, please tested with below command line: make V=1 fate-sub-cc-scte20 TARGET_EXEC="valgrind --error-exitcode=1" Reported-by: Martin Storsjö <[email protected]> Reviewed-by: Martin Storsjö <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* fate: Update fate refs after cca982ee018aad54214e94f2a0a5921c8bbf1328Andreas Rheinhardt2020-06-294-12/+12
| | | | Signed-off-by: Andreas Rheinhardt <[email protected]>
* avfilter/vf_colorbalance: remove wrong additionPaul B Mahol2020-06-291-1/+1
|
* MAINTAINERS: remove myself as Twitter maintainerLou Logan2020-06-281-1/+1
| | | | Signed-off-by: Lou Logan <[email protected]>
* lavf/movenc: Use a dynamic buffer when writing the mfra boxDerek Buitenhuis2020-06-281-12/+26
| | | | | | | | | | | When doing streamed output, with e.g. +dash, if the mfra box ended up being larger than the AVIOContext write buffer, the (unchecked) seeking back to update the box size would silently fail and produce an invalid mfra box. This is similar to how other boxes are written in fragmented mode. Signed-off-by: Derek Buitenhuis <[email protected]>
* avcodec/nvenc: support for HEVC timecode passthroughLimin Wang2020-06-283-0/+19
| | | | | Reviewed-by: Timo Rothenpieler <[email protected]> Signed-off-by: Limin Wang <[email protected]>
* avcodec/nvenc: add more sei data supportLimin Wang2020-06-281-14/+22
| | | | Signed-off-by: Limin Wang <[email protected]>
* avcodec/utils: add ff_alloc_timecode_sei() for hevc timecode seiLimin Wang2020-06-282-0/+78
| | | | Signed-off-by: Limin Wang <[email protected]>
* avcodec/hevcdec: create AVFrame side data from HEVC timecodes like H.264Limin Wang2020-06-281-0/+24
| | | | Signed-off-by: Limin Wang <[email protected]>
* avcodec/hevc_sei: support HEVC timecode decodeLimin Wang2020-06-282-0/+70
| | | | Signed-off-by: Limin Wang <[email protected]>