summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
...
* avcodec/tiff: Prettify code in dng_blit()Michael Niedermayer2023-01-11
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/tiff: Check camera_calibration for 0Michael Niedermayer2023-01-11
| | | | | | | | Fixes: division by 0 Fixes: 53926/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-5680347889401856 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/scpr: Test bx before useMichael Niedermayer2023-01-11
| | | | | | | | Fixes: out of array access on 32bit Fixes: 54850/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_SCPR_fuzzer-5302669294305280 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mvha: Check input size for HUFY before picture allocationMichael Niedermayer2023-01-11
| | | | | | | | Fixes: Timeout Fixes: 54772/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_MVHA_fuzzer-5484199677394944 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/eac3dec: avoid float noise in fixed mode addition to overflowMichael Niedermayer2023-01-11
| | | | | | | | Fixes: 2.28595e+09 is outside the range of representable values of type 'int' Fixes: 54644/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_AC3_FIXED_fuzzer-4816961584627712 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/mediacodecdec: check ff_Build_SDK_INT return valueZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec_wrapper: get api level via NDK methodZhao Zhili2023-01-11
| | | | | | | | android_get_device_api_level() is a static inline before API level 29. It was implemented via __system_property_get(). We can do the same thing, but I don't want to mess up with __system_property_get. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolboxenc: fix error codeZhao Zhili2023-01-11
| | | | | | | 1. Fix return 0 on error. 2. Fix return OS error code passthrough. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avutil/hwcontext_videotoolbox: BGRA should be full rangeZhao Zhili2023-01-11
| | | | | | HEVC alpha layer encoding is broken without the patch. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolboxenc: pass error code throughZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/videotoolboxenc: log when get_cv_pixel_format failedZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fftools/ffmpeg_demux: prefer fd over pipe for seek supportZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fftools/ffprobe: prefer fd over pipe for seek supportZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fftools/ffplay: prefer fd over pipe for seek supportZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* fftools/ffmpeg_demux: disable stdin interaction for fd protocolZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/file: add fd protocolZhao Zhili2023-01-11
| | | | | | | Unlike the pipe protocol, fd protocol has seek support if it corresponding to a regular file. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/file: dup file descriptor for pipeZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/file: reindent after the previous commitZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avformat/file: add fd option for pipeZhao Zhili2023-01-11
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/v4l2m2m: allow lower minimum buffer valuesLukas Rusak2023-01-10
| | | | | | | | | There is no reason to enforce a high minimum. In the context of streaming only a few output buffers and capture buffers are even needed for continuous playback. This also helps alleviate memory pressure when decoding 4K media. Signed-off-by: Aman Karmani <aman@tmm1.net>
* avcodec/v4l2_m2m: log both v4l2 and av pixel formats during negotiationAman Karmani2023-01-10
| | | | Signed-off-by: Aman Karmani <aman@tmm1.net>
* avcodec/av1_parser: export timing information when presentJames Almer2023-01-10
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/graphparser: drop a redundant labelAnton Khirnov2023-01-10
|
* lavfi/graphparser: improve applying graph-level sws optionsAnton Khirnov2023-01-10
| | | | | | | | | | | | | | | | | | The current code will apply them if the options string does not contain a 'flags' substring, and will do so by appending the graph-level option string to the filter option string (with the standard ':' separator). This is flawed in at least the following ways: - naive substring matching without actually parsing the options string may lead to false positives (e.g. flags are specified by shorthand) and false negatives (e.g. the 'flags' substring is not actually the option name) - graph-level sws options are not limited to flags, but may set arbitrary sws options This commit simply applies the graph-level options with av_set_options_string() and lets them be overridden as desired by the user-specified filter options (if any). This is also shorter and avoids extra string handling.
* lavfi/avfilter: process options for filters without a private classAnton Khirnov2023-01-10
| | | | | It still makes sense to apply AVFilterContext-level options to such filters.
* lavfi/avfilter: simplify process_options()Anton Khirnov2023-01-10
| | | | | | | | | | | | This function currently treats AVFilterContext options and filter-private options differently: the former are immediately applied, while the latter are stored in a dictionary to be applied later. There is no good reason for having two branches - storing all options in the dictionary is simpler and achieves the same effect (since it is later applied with av_opt_set_dict()). This will also be useful in future commits.
* lavfi/avfilter: export a multikey dict from process_options()Anton Khirnov2023-01-10
| | | | | This way the function does not need to be able to match keys to AVOptions, which will be useful in future commits.
* lavfi/avfilter: avoid a redundant av_opt_set_dict2() callAnton Khirnov2023-01-10
| | | | | | | Current code first sets AVFilterContext-level options, then aplies the leftover on the filter's private data. This is unnecessary, applying the options to AVFilterContext with the AV_OPT_SEARCH_CHILDREN flag accomplishes the same effect.
* lavfi: remove AVFilter.init_dict()Anton Khirnov2023-01-10
| | | | | | | Nothing uses it anymore. All options on all filters can now be set with normal AVOptions mechanisms, such as av_opt_set*().
* lavfi/vf_scale: allow passing options to swscale directlyAnton Khirnov2023-01-10
| | | | | | Avoid using the dictionary mechanism, which is non-introspectable. As this is the only user of AVFilter.init_dict(), this callback can now be removed.
* fftools/ffmpeg: always generate CFR output when -r is usedAnton Khirnov2023-01-10
| | | | | | | | | | | | | | | | Current code may, depending on the muxer, decide to use VSYNC_VFR tagged with the specified framerate, without actually performing framerate conversion. This is clearly wrong and against the documentation, which states unambiguously that -r should produce CFR output for video encoding. FATE test changes: * nuv-rtjpeg: replace -r with '-enc_time_base -1', which keeps the original timebase. Output frames are now produced with proper durations. * filter-mpdecimate: just drop the -r option, it is unnecessary * filter-fps-r: remove, this test makes no sense and actually produces broken VFR output (with incorrect frame durations).
* doc/ffmpeg: improve -r documentationAnton Khirnov2023-01-10
| | | | Explain different behavior for encoding and streamcopy.
* fftools/ffmpeg: reindent after previous commitAnton Khirnov2023-01-10
|
* fftools/ffmpeg: move video frame dup/drop logic into its own functionAnton Khirnov2023-01-10
|
* fftools/ffmpeg: rename a variable to be more descriptiveAnton Khirnov2023-01-10
|
* fftools/ffmpeg: fix stream id in an error message.Anton Khirnov2023-01-10
| | | | Broken in 7ef7a22251b8
* fftools/ffmpeg: stop using AVCodecContext.sample_rate in decode_audio()Anton Khirnov2023-01-10
| | | | | | | Use the decoded frame's sample_rate instead, which is the authoritative value. Drop a now-obsolete check validating AVCodecContext.sample_rate.
* doc/ffmpeg.texi: drop a non-existent optionAnton Khirnov2023-01-10
| | | | | -ilme has not existed for 17 years, since 637b5326f3441b53e2f1004085c4d570ba2d7758
* lavc/decode: validate frames output by decodersAnton Khirnov2023-01-10
| | | | Make sure no frames with invalid parameters will be seen by the caller.
* lavc/decode: deduplicate cleanup in ff_decode_receive_frame()Anton Khirnov2023-01-10
|
* lavc/qsvdec: check ff_decode_frame_props() return valueAnton Khirnov2023-01-10
|
* lavc/ac3dec: fail when the sample rate is unsetAnton Khirnov2023-01-10
|
* avformat: Rename IPFS to IPFS gatewayDerek Buitenhuis2023-01-09
| | | | | | | It is a URL rewriter for IPFS gateways, not an actual implementation of IPFS, and naming it as such was both incorrect and misleading. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avfilter/avf_avectorscope: add anti-aliased line drawing modePaul B Mahol2023-01-09
|
* mov: Disable advanced_editlist for fragmented MP4 inputDerek Buitenhuis2023-01-09
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Advanced edit list support is entirely broken for fragmented MP4s, currently. mov_fix_index is never run in mov_build_index, since in fragmented MP4s the stco, stsz, stts, and stsc boxes have zero entries, with the index being filled in as each fragment's trun box is seen. The result of this is that the skip samples is never set properly, since half the code thinks it doesn't need to, as advanced_editlist is enabled, but as mov_fix_index is never called, it doesnt get set. This means that any edits for e.g. priming are not properly applied as skip samples side data. This also means remuxing to fragmented MP4 from progressive MP4 with lavf will quietly drop the edit list, currently. Example: $ ffmpeg -loglevel quiet -advanced_editlist 1 -i non_fragmented.mp4 -f md5 - MD5=d02d929f8eb4edef624758a298d5f7c6 $ ffmpeg -loglevel quiet -advanced_editlist 0 -i non_fragmented.mp4 -f md5 - MD5=d02d929f8eb4edef624758a298d5f7c6 $ ffmpeg -loglevel quiet -advanced_editlist 1 -i fragmented.mp4 -f md5 - MD5=e38b110f586fa886ff94e0ca98a95d59 <-- wrong, extra samples are output instead of being skipped $ ffmpeg -loglevel quiet -advanced_editlist 0 -i fragmented.mp4 -f md5 - MD5=d02d929f8eb4edef624758a298d5f7c6 We cannot call mov_fix_index after reading a trun box since mov_fix_index seems to assume it is only called once, on a fully complete index, an multiple calls to it don't seem like they'd work, so the "best" option seems to be disabling advanced edit list support entirely for the time being, as it is broken for these types of files. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* libavcodec/qsvenc_av1: Add max_frame_size support to av1_qsv encoderWenbin Chen2023-01-09
| | | | Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* libavcodec/qsvenc_av1: Add low_delay_brc support to av1_qsv encoderWenbin Chen2023-01-09
| | | | Signed-off-by: Wenbin Chen <wenbin.chen@intel.com>
* avcodec/mediacodecenc: enable B frames only with -strict experimentalZhao Zhili2023-01-09
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* lavc/get_bits: add a compat wrapper for the cached bitstream readerAnton Khirnov2023-01-06
| | | | Use that instead of the merged version.
* lavc/tests: add a cached bitstream reader testAnton Khirnov2023-01-06
|