summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* avformat/rcwtdec: add RCWT Closed Captions demuxerMarth642024-04-02
| | | | | | | | | | | | | | | RCWT (Raw Captions With Time) is a format native to ccextractor, a commonly used OSS tool for processing 608/708 Closed Captions (CC). RCWT can be used to archive the original extracted CC bitstream. The muxer was added in January 2024. In this commit, add the demuxer. One can now demux RCWT files for rendering in ccaption_dec or interop with ccextractor (which produces RCWT). Using the muxer/demuxer combo, the CC bits can be kept for processing or rendering with either tool. This can be an effective way to backup an original CC stream, including format extensions like EIA-708 and overall original presentation. Signed-off-by: Marth64 <marth64@proxyid.net>
* Changelog: add next entryStefano Sabatini2024-04-02
|
* avformat/subtitles: extend ff_subtitles_queue_insert() to support not yet ↵Marth642024-04-02
| | | | | | | | | | | | | | | | available events If ff_subtitles_queue_insert() were given a NULL buffer with 0 length, it would still attempt to grow the packet or memcpy depending on if merge option is enabled. In this commit, allow passing a NULL buffer with 0 length without attempting to do such operations. This way, if a subtitle demuxer happens to pass an empty cue or wants to use av_get_packet() to read bytes, there are no unnecessary operations on the packet after it is allocated. Signed-off-by: Marth64 <marth64@proxyid.net>
* avformat/demux: add duration_probesize AVOptionNicolas Gaullier2024-04-02
| | | | | | | | | | | | | | | | | | | | | | | | Yet another probesize used to get the durations when estimate_timings_from_pts is required. It is aimed at users interested in better durations probing for itself, or because using avformat_find_stream_info indirectly and requiring exact values: for concatdec for example, especially if streamcopying above it. The current code is a performance trade-off that can fail to get video stream durations in a scenario with high bitrates and buffering for files ending cleanly (as opposed to live captures): the physical gap between the last video packet and the last audio packet is very high in such a case. Default behaviour is unchanged: 250k up to 250k << 6 (step by step). Setting this new option has two effects: - override the maximum probesize (currently 250k << 6) - reduce the number of steps to 1 instead of 6, this is to avoid detecting the audio "too early" and failing to reach a video packet. Even if a single audio stream duration is found but not the other audio/video stream durations, there will be a retry, so at the end the full user-overriden probesize will be used as expected by the user. Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris>
* doc/muxers: add ircamStefano Sabatini2024-04-02
| | | | | Most of the content copy&pasted from: http://fileformats.archiveteam.org/wiki/Berkeley/IRCAM/Carl_Sound_Format
* doc/muxers/image2: add mention to image2pipeStefano Sabatini2024-04-02
| | | | Clarify the difference with regards to the image2 muxer.
* doc/muxers/image2: apply misc consistency fixesStefano Sabatini2024-04-02
|
* doc/muxers: add ilbcStefano Sabatini2024-04-02
|
* doc/muxers: add stub for iamfStefano Sabatini2024-04-02
|
* doc/muxers/hls: review, apply consistency fixesStefano Sabatini2024-04-02
| | | | | Apply misc typo fixes, consistency fixes, and reformat the layout to provide more overall internal and global consistency.
* RELEASE: update after 7.0 branchJames Almer2024-04-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/vvc: add vvc-conformance-IBC_B_Tencent_2James Almer2024-04-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/vvc: add vvc-conformance-SUBPIC_C_ERICSSON_1James Almer2024-04-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* fate/vvc: disable vvc-conformance-OPI_B_3 and vvc-conformance-VPS_A_3James Almer2024-04-02
| | | | | | | | | Both samples rely on a feature our decoder doesn't currently support. Should fix fate failures on some systems where not even the one single frame could be generated. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vvc_refs: don't ask for a "Inter layer ref" sampleJames Almer2024-04-02
| | | | | | The FATE suite has two already. Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vvcdec: inter prediction, support subpictureNuo Mi2024-04-02
| | | | | | | | | | | | | | | passed files: LMCS_B_Dolby_2.bit CodingToolsSets_E_Tencent_1.bit SUBPIC_A_HUAWEI_3.bit SUBPIC_B_HUAWEI_3.bit SUBPIC_C_ERICSSON_1.bit SUBPIC_D_ERICSSON_1.bit SUBPIC_E_MediaTek_1.bit passed dvb conformance files (https://dvb.org/specifications/verification-validation/vvc-test-content): VVC_HDR_UHDTV1_OpenGOP_3840x2160_50fps_HLG10_mosaic.bit VVC_HDR_UHDTV1_OpenGOP_3840x2160_50fps_HLG10_PiP.bit
* avcodec/vvcdec: mvs, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: alf, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: sao, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: sao, refact out tile_edge arraysNuo Mi2024-04-02
|
* avcodec/vvcdec: refact, movie the lc->sc assignment to task_run_stage to ↵Nuo Mi2024-04-02
| | | | | | simplify the code This change also make the lc->sc assigned for run_sao
* avcodec/vvcdec: deblock, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: refact out deblock_is_boundaryNuo Mi2024-04-02
|
* avcodec/vvcdec: misc, rename x_ctb, y_ctb, ctu_x, ctu_y to rx, ry to avoid ↵Nuo Mi2024-04-02
| | | | misleading
* avcodec/vvcdec: ff_vvc_decode_neighbour, support subpictureNuo Mi2024-04-02
|
* avcodec/vvcdec: derive subpic position for PPSNuo Mi2024-04-02
|
* avcodec/vvcdec: support rectangular single-slice subpicsFrank Plowman2024-04-02
| | | | Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
* avcodec/vvcdec: fix uninitialized last element of xxx_bd and ctb_to_xxx_bd ↵Frank Plowman2024-04-02
| | | | | | | | arrays see "6.5.1 CTB raster scanning, tile scanning, and subpicture scanning processes" Co-authored-by: Nuo Mi <nuomi2021@gmail.com>
* avcodec/vvcdec: misc, add specification name for pps membersNuo Mi2024-04-02
|
* avcodec/cbs_h266: fix sh_collocated_from_l0_flag and sh_collocated_ref_idx inferNuo Mi2024-04-02
| | | | we have to infer sh_collocated_from_l0_flag and sh_collocated_ref_idx from picture head if pps_rpl_info_in_ph_flag is true
* avcodec/vvcdec: NoBackwardPredFlag, only check active picturesNuo Mi2024-04-02
| | | | see "8.3.6 Decoding process for collocated picture and no backward prediction"
* avformat/mov: simplify the entry count overflow check in the keys atomJames Almer2024-04-02
| | | | | Suggested-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: don't read key_size bytes twice in the keys atomJames Almer2024-04-02
| | | | | | | We only support mdta as type, yet we were not skipping other types, but rather reading key_size worth of bytes twice per entry. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: take into account the first eight bytes in the keys atomJames Almer2024-04-02
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: Check if a key is longer than the atom containing itEugene Zemtsov2024-04-02
| | | | | | | | | Stop reading keys and return AVERROR_INVALIDDATA if key_size is larger than the amount of space left in the atom. Bug: https://crbug.com/41496983 Signed-off-by: Eugene Zemtsov <eugene@chromium.org> Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/mov: Don't add attached pic if one is already presentAndreas Rheinhardt2024-04-02
| | | | | | | | | | Fixes: memleak Fixes: 67714/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-5671570999476224 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avformat/mov: ensure all items id referenced by a grid are validJames Almer2024-04-01
| | | | | | | | | Fixes: null pointer dereference Fixes: 67494/clusterfuzz-testcase-minimized-ffmpeg_DEMUXER_fuzzer-6528714521247744 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Tested-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/vlc: Use union of uint8_t and uint16_t in VLC_MULTI_ELEMAndreas Rheinhardt2024-04-02
| | | | | | It is more natural and simplifies writing these arrays. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/vlc, bitstream: Fix multi VLC with uint8_t syms on BEAndreas Rheinhardt2024-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | VLC_MULTI_ELEM contains an uint8_t array that is supposed to be treated as an array of uint16_t when the used symbols have a size of two; otherwise it should be treated as just an array of uint8_t, but it was not always treated that way: vlc_multi_gen() initialized the first entry of the array by writing the symbol via AV_WN16; on big endian systems, the intended value was instead written into the second entry of the array (where it would likely be overwritten lateron during initialization). read_vlc_multi() also treated this case incorrectly: In case the code is so long that it needs a classical multi-stage lookup, the symbol has been written to the destination as if via AV_WN16. On little endian systems, this sets the correct first symbol and clobbers (zeroes) the next one, but the next one will be overwritten lateron anyway, so it won't be recognized. But on big-endian systems, the first symbol will be set to zero and the actually read symbol will be put into the slot for the next one (where it will be overwritten lateron). This commit fixes this; this fixes the magicyuv and utvideo FATE-tests on big endian arches. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/fits: Fix tests on BEAndreas Rheinhardt2024-04-02
| | | | | | | | | | | | | | | The fits decoder decodes to native pixel formats; so the fitsdec-gbrap16be fate test failed on BE despite its name because the reference file is LE. This patch fixes this by forcing a pixel format; the forced pixel format is BE, causing a change in the reference file. The fitsdec-gbrp16be test was not affected, because its source file (lena-rgb48.png from tne FATE suite) is actually biendian (as if someone had multiplied 8bit content by 257...). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Insert scale, format filters in filter-yadif,bwdif10Andreas Rheinhardt2024-04-02
| | | | | | | | The format and the first scale filter ensures that the filter processing actually happens in high bit depth; the second scale filter is only necessary for big endian arches. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/filter-video: Always use little endian pixel formatAndreas Rheinhardt2024-04-02
| | | | | | Fixes filter-metadata-signalstats-yuv420p10 on BE arches. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/video: Only use bitexact IDCT in avid meridianAndreas Rheinhardt2024-04-02
| | | | | | | Precludes the usage of the altivec IDCT which fixes the avid-meridian FATE test on ppc64be here. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/huffyuvencdsp: Fix load of misaligned valuesAndreas Rheinhardt2024-04-02
| | | | | | Affected many ffvhuff FATE tests. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avfilter/vf_spp: Fix left-shift of negative valueAndreas Rheinhardt2024-04-02
| | | | | | | Affected the vf-spp FATE-test (on x86 only when MMX is disabled). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/pngdsp: Fix unaligned accesses, effective type violationsAndreas Rheinhardt2024-04-02
| | | | | | | Affected the lscr fate-test (only visible on x86 if the SSE2 is disabled). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/ppc/hpeldsp_altivec: Fix left-shift of negative numberAndreas Rheinhardt2024-04-02
| | | | | | | It is UB and affected e.g. the vp5 and vp61 FATE tests: https://fate.ffmpeg.org/report.cgi?time=20240327083327&slot=ppc-linux-gcc-13.2-ubsan-altivec-qemu Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/vaapi_encode_av1: Set roi_quant_rangeDavid Rosca2024-04-01
|
* avcodec/vvc/vvcdec: Do not submit frames without VVCFrameThreadMichael Niedermayer2024-04-01
| | | | | | | | | | | Such frames will crash when pthread functions are called on the NULL pointer Fixes: member access within null pointer of type 'VVCFrameThread' (aka 'struct VVCFrameThread') Fixes: 65160/clusterfuzz-testcase-minimized-ffmpeg_BSF_VVC_METADATA_fuzzer-4665241535119360 (partly) Fixes: 65636/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_VVC_fuzzer-5394745824182272 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/mpegts: Reset local nb_prg on add_program() failureMichael Niedermayer2024-04-01
| | | | | | | | | | | add_program() will deallocate the whole array on failure so we must clear nb_prgs Fixes: null pointer dereference Fixes: crash-35a3b39ddcc5babeeb005b7399a3a1217c8781bc Found-by: Catena cyber Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>