aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
Commit message (Collapse)AuthorAgeFilesLines
* avcodec/dnxuc_parser: rework DNXUC parserMarton Balint2024-11-252-80/+46
| | | | | | | | | | | | | | | | The current parser does things which a parser should not, like skipping parts of the packet header, but it does not actually able to packetize a raw DNXUC bitstream. Rework the parser logic to work similar to other parsers and be able to correctly packetize raw DNXUC bitstreams. Bump minor version because the DNXUC codec packet format changes with this. Normally this would be a breaking change, but in this particular case it should not cause any issues in practice because the DNXUC codec is relatively new and we never added a decoder for it. Signed-off-by: Marton Balint <cus@passwd.hu>
* avcodec: deprecate sonicJ. Dekker2024-11-251-0/+4
| | | | | | | | | | | | | This is an experimental and research codec of which ffmpeg is the only encoder and decoder, development has stalled since 2013 and these files don't exist in the wild. Deprecate the encoders to be removed next major bump, decoders to be removed one bump afterwards. We also disable the the encoders by default in configure, the decoders should be disabled by default next bump. Signed-off-by: J. Dekker <jdek@itanimul.li> Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
* avcodec/ac3dec: fix downmix logic for eac3James Almer2024-11-251-1/+1
| | | | | | | | | Ensure downmixed is only set once during init, as it used to be. Fixes a regression since acbb2777e28c. Fixes ticket #11321 Signed-off-by: James Almer <jamrial@gmail.com>
* lavc/h264idct: fix compilation for RV32IMARémi Denis-Courmont2024-11-251-0/+2
|
* lavc/vp8dsp: fix compilation for RV32IMARémi Denis-Courmont2024-11-252-2/+2
|
* lavc/pixblockdsp: fix compilation for RV32IMARémi Denis-Courmont2024-11-252-1/+4
|
* riscv: remove unnecessary #include'sRémi Denis-Courmont2024-11-256-6/+0
|
* avcodec/mjpegdec: Disallow progressive bayer imagesMichael Niedermayer2024-11-251-0/+4
| | | | | | | Fixes: Null pointer dereference Fixes: sample1.dng Found-by: South East <8billion.people@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/codec_desc: remove Intra Only prop for AACJames Almer2024-11-242-3/+3
| | | | | | | | | | | xHE-AAC is a profile where some frames depend on other key frames, named IPF. By setting the codec as Intra Only, all frames output by decoders and all packets output by encoders/demuxers will be unconditionally flaged as keyframes, which is incorrect. Should fix ticket #11272. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mediacodecdec: set set keyframe flag in output framesJames Almer2024-11-241-0/+1
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libfdk-aacenc: set keyframe in output packetsJames Almer2024-11-241-0/+1
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libfdk-aacdec: set keyframe flag and profile in output framesJames Almer2024-11-241-2/+5
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/audiotoolboxnec: set set keyframe flag in output packetsJames Almer2024-11-241-0/+1
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/audiotoolboxdec: set set keyframe flag in output framesJames Almer2024-11-241-0/+2
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/aacenc: set keyframe flag in output packetsJames Almer2024-11-241-0/+2
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/aac/aacdec: set keyframe flag in output framesJames Almer2024-11-241-0/+2
| | | | | | | Don't depend on the generic code setting this. This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/aac_parser: set key_frame and profileJames Almer2024-11-241-1/+8
| | | | | | This is in preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/libfdk-aacenc: export CPB propertiesJames Almer2024-11-221-0/+9
| | | | | | | | Needed to signal the muxer that the stream is VBR. Finishes fixing ticket #11303. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/mm: decode raw chunk type and skip unknown audio chunk typePeter Ross2024-11-211-0/+11
|
* avcodec/mm: don't fail if x offset exceeds frame widthPeter Ross2024-11-211-1/+1
|
* avcodec/mm: decode partial palettePeter Ross2024-11-211-7/+4
|
* avcodec/mediacodecenc: add async mode supportZhao Zhili2024-11-202-33/+265
| | | | | | It has better performance than poll in a loop. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodec_wrapper: add async mode supportZhao Zhili2024-11-202-0/+158
| | | | Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodecenc: Add operating_rate optionZhao Zhili2024-11-202-2/+7
| | | | | | | | | | | For example, with ./ffmpeg -operating_rate 400 -hwaccel mediacodec -i test.mp4 -an \ -c:v h264_mediacodec -operating_rate 400 -b:v 5M -f null - The transcoding speed is 254 FPS. Without -operating_rate on dec/enc, the speed is 148 FPS. With -operating_rate on decoder only, the speed is 239 FPS. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* avcodec/mediacodecdec: Add operating_rate optionZhao Zhili2024-11-201-0/+8
| | | | | | | | The codec wants to know whether the usecase is realtime playback or full-speed transcoding, or playback at a higher speed. The codec runs faster when operating_rate higher than framerate. Signed-off-by: Zhao Zhili <zhilizhao@tencent.com>
* lavc/vulkan/common: fix reverse4's incorrect swizzleLynne2024-11-201-1/+1
| | | | | The function is responsible for converting little to big endian. It had an incorrect swizzle for the last 2 bytes.
* ffv1enc_vulkan: increase max outstanding byte count to 16bitLynne2024-11-201-8/+8
| | | | | The issue is that at higher resolutions, the outstanding byte counter overflowed in case the image had a lot of blank areas.
* ffv1enc_vulkan: fix PCM encodingLynne2024-11-201-0/+1
| | | | This line was mysteriously deleted.
* ffv1enc_vulkan: support buffers larger than 4GiBLynne2024-11-202-20/+15
| | | | | | | | | | | | Unlike the software FFv1 encoder, none of our buffers are allocated by FFmpeg, which supports at most 4GiB large allocations. For really large sizes, the maximum size of the buffer can exceed 4GiB, which the software encoder optimistically tries to allocate as 4GiB in the hopes that the encoder will compress to under that amount. We can just let Vulkan allocate us a larger buffer, and switch to 64-bit offsets.
* avcodec/decode: Fix incorrect enum type used in side_data_map()Eugene Zemtsov2024-11-181-2/+2
| | | | | | | | It's AVPacketSideDataType, not AVFrameSideDataType. Reviewed-by: Ted (Chromium) Meyer <tmathmeyer@chromium.org> Reviewed-by: Marth64 <marth64@proxyid.net> Signed-off-by: Marth64 <marth64@proxyid.net>
* avcodec/ffv1enc: restore header writing behavior for version > 1James Almer2024-11-181-4/+6
| | | | | | Broken by accident in a6c58353ac0. Signed-off-by: James Almer <jamrial@gmail.com>
* riscv/h264dsp: remove spurious instructionRémi Denis-Courmont2024-11-181-1/+0
|
* ffv1enc_vulkan: restrict number of execution contexts to 1Lynne2024-11-181-1/+1
| | | | | This only leads to wasting memory in a single-threaded operation. Limit this to 1 for now and leave a comment.
* lavc/h264dsp: fix R-V V weight_pixels pointer arithmeticRémi Denis-Courmont2024-11-181-1/+0
| | | | | | | | As of 459a1512f13ae1fdd404ff9281b02d225ac70a09, the code is unrolled to process two rows per iteration. The output cursor thus needs to be incremented by twice the stride, which is taken care of with SH1ADD. However the original ADD from the original implemetation was incorrectly left over.
* lavc: bump minor version for FFv1 Vulkan encoderLynne2024-11-181-1/+1
|
* ffv1enc: add a Vulkan encoderLynne2024-11-1816-0/+2904
| | | | | | | | | | | | | | | | | | | | | | | | This commit implements a standard, compliant, version 3 and version 4 FFv1 encoder, entirely in Vulkan. The encoder is written in standard GLSL and requires a Vulkan 1.3 supporting GPU with the BDA extension. The encoder can use any amount of slices, but nominally, should use 32x32 slices (1024 in total) to maximize parallelism. All features are supported, as well as all pixel formats. This includes: - Rice - Range coding with a custom quantization table - PCM encoding CRC calculation is also massively parallelized on the GPU. Encoding of unaligned dimensions on subsampled data requires version 4, or requires oversizing the image to 64-pixel alignment and cropping out the padding via container flags. Performance-wise, this makes 1080p real-time screen capture possible at 60fps on even modest GPUs.
* ffv1enc: move slice allocation out of generic encode initLynne2024-11-181-24/+24
|
* ffv1enc: move plane info init into a separate functionLynne2024-11-182-13/+28
|
* ffv1enc: expose ff_ffv1_write_extradataLynne2024-11-182-2/+5
|
* ffv1enc: split off encoder initialization into a separate functionLynne2024-11-182-191/+240
|
* lavc/h264idct: fix RISC-V group multiplierRémi Denis-Courmont2024-11-171-4/+4
| | | | | | After the branch, the expected SEW/LMUL ratio is 1 byte/vector. So we have to set the same ratio before branching (QEMU does not care, but real hardware does).
* lavc/vp8dsp: remove RISC-V table alignmentRémi Denis-Courmont2024-11-171-1/+1
| | | | These values are bytes and need not be aligned.
* lavc/h264dsp: remove RISC-V table alignmentRémi Denis-Courmont2024-11-171-1/+1
| | | | These values are bytes and need not be aligned.
* lavc/h264dsp: move RISC-V fn pointers to .data.rel.roRémi Denis-Courmont2024-11-161-1/+1
| | | | This should fix PIC builds.
* avcodec/ffv1: Support >8bit rice golombMichael Niedermayer2024-11-162-4/+4
| | | | Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/ffv1: Support slice coding mode 1 with golomb riceMichael Niedermayer2024-11-163-21/+25
| | | | | Sponsored-by: Sovereign Tech Fund Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/rv60: consistent indentationPeter Ross2024-11-161-8/+8
|
* avcodec/rv60: simplify fill_mv_skip_candPeter Ross2024-11-161-37/+17
|
* avcodec/rv60: loosen fill_mv_skip_cand top right and bottom left criteriaPeter Ross2024-11-161-2/+2
| | | | Fixes ticket #11293.
* avcodec/x86/diracdsp_init: remove unused macroKyosuke Kawakami2024-11-151-5/+0
| | | | | | | PIXFUNC macro is unused since d29a9c2aa68fc3eb6d61ff95c698e29316037583. Signed-off-by: Kyosuke Kawakami <kawakami150708@gmail.com> Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>