summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* 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
|
* lavc/bitstream: templatize for BE/LEAnton Khirnov2023-01-06
| | | | Allows using both BE and LE bitstream readers in the same file.
* lavc: add standalone cached bitstream readerAlexandra Hájková2023-01-06
| | | | | | | | | | | | | | | | | | | | The cached bitstream reader was originally written by Alexandra Hájková for Libav, with significant input from Kostya Shishkov and Luca Barbato. It was then committed to FFmpeg in ca079b09549, by merging it with the implementation of the current bitstream reader. This merge makes the code of get_bits.h significantly harder to read, since it now contains two different bitstream readers interleaved with #ifdefs. Additionally, the code was committed without proper authorship attribution. This commit re-adds the cached bitstream reader as a standalone header, as it was originally developed. It will be made useful in following commits. Integration by Anton Khirnov. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mpeg12dec: flush a53 dataAman Karmani2023-01-06
| | | | | Signed-off-by: Aman Karmani <aman@tmm1.net> Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mpeg12dec: use init_get_bits8 and check the return value in all ↵James Almer2023-01-04
| | | | | | remaining cases Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mpeg12dec: use init_get_bits8 and check the return valueThierry Foucu2023-01-04
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* swresample/swresample_frame: fix regression in detecting changesPaul B Mahol2023-01-04
| | | | | Do not overwrite return variable values, instead use different one for checking results.
* lavc/libx265: restructure handling reordered_opaqueAnton Khirnov2023-01-04
| | | | | | | | | | Current code stores a pointer to allocated data in libx265 and frees it when the encoded packet is retrieved. This will leak if the packet is never retrieved, e.g. if the encoder is closed without being flushed. Restructure the code such that only indices to an array stored in our private data are given to libx265. This ensures no allocated memory can be lost.
* lavc/libx264: do not leave an invalid array size on alloc errorAnton Khirnov2023-01-04
|
* lavc/libx264: zero reordered opaque on allocAnton Khirnov2023-01-04
| | | | This is safer.
* lavc/libx264: print an error on invalid opaque pointerAnton Khirnov2023-01-04
|
* lavc/libx264: use a local variable to shorten codeAnton Khirnov2023-01-04
|
* lavc/libx264: reindent after previous commitAnton Khirnov2023-01-04
|
* lavc/libx264: reorder control flow in setup_roi() to reduce nesting depthAnton Khirnov2023-01-04
|
* lavc/libx264: reindent after previous commitAnton Khirnov2023-01-04
|
* lavc/libx264: do not ignore memory allocation errorsAnton Khirnov2023-01-04
|
* lavc/libx264: unify cleanup in setup_frame()Anton Khirnov2023-01-04
|
* lavc/libx264: reindent after previous commitAnton Khirnov2023-01-04
|
* lavc/libx264: factor out setting up ROIAnton Khirnov2023-01-04
|
* lavc/libx264: use a local variable for input frame in setup_frame()Anton Khirnov2023-01-04
|
* lavc/libx264: reindent after previous commitAnton Khirnov2023-01-04
|
* lavc/libx264: factor out setting up the input frameAnton Khirnov2023-01-04
| | | | X264_frame() is currently too large and complex.
* avformat/oggenc: don't flush twice when the last packet is side data onlyJames Almer2023-01-03
| | | | | | | | Commit 18f24527eb accidentally made side data only packets be handled like a flush request. Fix this regression by effectively ignoring them as was the original intention. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mux: use only valid timestamps when calculating packet distanceJames Almer2023-01-03
| | | | | | | | Fixes: signed integer overflow: 0 - -9223372036854775808 cannot be represented in type 'long int' Fixes: fate-cover-art-aiff-id3v2-remux, fate-cover-art-mp3-id3v2-remux and fate-mov-cover-image under ubsan. Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/paletteuse: use explicit key indexes in set_frame_lutClément Bœsch2023-01-03
|
* avfilter/paletteuse: add atkinson ditheringClément Bœsch2023-01-03
| | | | | | | | | Atkinson according to https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt: * 1 1 / 8 1 1 1 1
* avfilter/paletteuse: add burkes ditheringClément Bœsch2023-01-03
| | | | | | | | Burkes according to https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt: * 8 4 2 4 8 4 2 / 32
* avfilter/paletteuse: add sierra3 ditheringClément Bœsch2023-01-03
| | | | | | | | | Sierra3 according to https://bisqwit.iki.fi/jutut/kuvat/ordered_dither/error_diffusion.txt: * 5 3 2 4 5 4 2 2 3 2 / 32
* avfilter/palette{gen,use}: misc for-loop cosmeticsClément Bœsch2023-01-03
|
* avfilter/paletteuse: move r,g,b computation in a more local scopeClément Bœsch2023-01-03
|
* avfilter/paletteuse: remove mean error toolClément Bœsch2023-01-03
| | | | This belongs in another filter.
* avfilter/paletteuse: remove alternative search methodsClément Bœsch2023-01-03
| | | | | This is a maintenance pain more than anything. It appears to make the code slightly faster as a side effect.
* avfilter/paletteuse: switch to recursive methodClément Bœsch2023-01-03
| | | | | | It appears faster than the iterative method on my machine (1.06x faster), so I'm guessing compilers improved over time (the iterative version was slightly faster in the past).
* avfilter/paletteuse: use lowbias32 for color hashingClément Bœsch2023-01-03
| | | | Impact is more negligible than previous commit but still faster (1.02x).