aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* avfilter/vf_showinfo: add support for 3D Reference Displays Information side ↵James Almer2025-07-011-0/+12
| | | | | | data Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/dump: add support for 3D Reference Displays Information side dataJames Almer2025-07-011-0/+13
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avcodec/packet: add a 3D Reference Displays Information side data typeJames Almer2025-07-014-1/+14
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil/frame: add a 3D Reference Displays Information side data typeJames Almer2025-07-013-1/+13
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avutil: add an API to handle 3D Reference Displays InformationJames Almer2025-07-014-1/+218
| | | | | | | As defined in section G.14.3.2.3 of ITU-T H.265, it's required for proper signaling of MV-HEVC. Signed-off-by: James Almer <jamrial@gmail.com>
* tools/pktdumper: dump extradata buffersPeter Ross2025-07-011-2/+26
|
* doc: Remove libav-merge.txtDerek Buitenhuis2025-06-301-115/+0
| | | | | | It not longer exists. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* tools: Remove libav-merge-next-commitDerek Buitenhuis2025-06-301-22/+0
| | | | | | Libav is no longer extant. Signed-off-by: Derek Buitenhuis <derek.buitenhuis@gmail.com>
* avcodec/speexdec: consider differing frame sizes in remaining space checkMichael Niedermayer2025-06-281-1/+1
| | | | | | | Fixes: talk109-q5.spx Regression since: f6986e75be87f512f65d64ac91ba19d505a8d210 Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* libavcodec/tests: fix gitignore hashtableNicolas Gaullier2025-06-281-0/+1
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/vf_lut3d: fix leak if allocate_3dlut failedLidong Yan2025-06-281-1/+1
| | | | | | | | | In parse_cinespace(), memory allocated in in_prelut[] and out_prelut[] would leak if allocate_3dlut() failed. Replace return ret with goto end to free memory before return error code. Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/vorbisenc: fix leak if av_mallocz failedLidong Yan2025-06-281-1/+3
| | | | | | | | | In put_main_header(), av_mallocz() allocates memory to local variable buffer, buffer leaks if av_mallocz() to *out failed. Add av_free(buffer) before return error code. Signed-off-by: Lidong Yan <502024330056@smail.nju.edu.cn> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avcodec/vvc/refs: remove early returnMarvin Scholz2025-06-281-3/+2
| | | | | | | | | | | | | The ret value is checked later on again, so this check is redundant and would cause the frame to not be unrefd on failure as well. So remove this check and add one before av_frame_remove_side_data to ensure it is not called with an invalid frame. Fix CID 1648350 Reviewed-by: Frank Plowman <post@frankplowman.com>
* avformat/apvdec: add framerate optionDawid Kozinski2025-06-272-3/+26
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/demux: Fix segfault due to avcodec_open2 failurePavel Koshevoy2025-06-271-1/+7
| | | | | | | Fixes 'ffprobe 1_poc.mp4' segfault introduced with commit 0021484d05f9b0f032fa319399de6e24eea0c04f codec_close should not assume that the codec_id did not change.
* fftools/textformat: renamings in print_unit_int for consistency (cosmetic)Nicolas Gaullier2025-06-274-5/+5
| | | | | Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: fix print 64 bit integersNicolas Gaullier2025-06-272-2/+2
| | | | | | | | | | | Regression in ffprobe since textformat introduction in d7a3f68feae0b1c3718f9d2671c6d41c60a40680. Fixes #11638 Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Reviewed-by: Marvin Scholz <epirat07@gmail.com> Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: do not return earlyMarvin Scholz2025-06-261-1/+0
| | | | | | | | | This would make the goto dead code and also would not properly call avtext_context_close. Fix CID 1646939 Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: remove noop freeMarvin Scholz2025-06-261-2/+0
| | | | | | The tctx->hash was freed already right before. Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: narrow variable scopesMarvin Scholz2025-06-261-9/+6
| | | | Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: remove leftover comments in mermaid_print_valueMarvin Scholz2025-06-261-4/+1
| | | | | | Remove some leftover commented code and an extraneous semicolon. Reviewed-by: softworkz <softworkz@hotmail.com>
* fftools/textformat: exit early in mermaid_print_valueMarvin Scholz2025-06-261-10/+2
| | | | | | | Doesn't change the logic, instead of exiting in each of the two branches below, just exit before. Reviewed-by: softworkz <softworkz@hotmail.com>
* lavc/vvc: Fix condition for using default scaling factorFrank Plowman2025-06-271-3/+3
| | | | | | | | | | | Add handling here for sps_scaling_matrix_for_alternative_colour_space_disabled_flag. Also add parentheses to make behaviour a little more explicit, where &&'s precedence over || was relied on previously. Reported-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Frank Plowman <post@frankplowman.com>
* avformat/whip: check the exchange sdp url is start with httpSteven Liu2025-06-261-0/+8
| | | | | | | | Make sure the WHIP protocol performs the SDP offer/answer exchange with the WebRTC peer over HTTP. Signed-off-by: Steven Liu <lq@chinaffmpeg.org> Reviewed-by: Jack Lau <jacklau1222@qq.com>
* avformat/whip: Remove unnecessary pkt checksSteven Liu2025-06-261-2/+0
| | | | | | | | | | h264_annexb_insert_sps_pps (called after write_packet) reorganizes PPS, SPS, and IDR packets in H.264 streams. Since write_packet already validates pkt, redundant null checks in h264_annexb_insert_sps_pps can be removed. Signed-off-by: Steven Liu <lq@chinaffmpeg.org> Reviewed-by: Marvin Scholz <epirat07@gmail.com>
* avformat/iamf_parser: remove unreachable codeJames Almer2025-06-261-2/+0
| | | | | | | | expanded_loudspeaker_layout is only present and read on the first layer. Fixes Coverity issue #1655173. Signed-off-by: James Almer <jamrial@gmail.com>
* hwcontext_vulkan: fix issues with importing a deviceLynne2025-06-271-7/+9
| | | | | The previous fix just used a local variable for the memory properties, which did not fix this issue.
* avformat/tee: fix multiple bsfs in teeMarvin Scholz2025-06-261-1/+1
| | | | | | | | | | | | | Since 155508c6e925f4f2f5e77087a7e1925b3de735ff specifying multiple bsfs for different streams was broken: "[bsfs/a=h264_metadata:bsfs/v=h264_metadata]out.mp4|..." This incorrectly only parsed the first bsfs specification. The reason for this is that the dictionary is modified in the iterator, hence invalidating the iterator. The simplest fix for this is to simply iterate from the beginning in each loop given that the previous entry is removed.
* acvodec/amfenc: Enable use of AMF Surface in multiple encodersDmitrii Ovchinnikov2025-06-263-167/+291
| | | | | | Fixes the behavior of AMF encoders when the same AMF surface is passed to multiple encoder objects. for example when using -filter_complex
* avcodec/amfdec: Add VP9 AMF decodernyanmisaka2025-06-264-4/+15
|
* avcodec/rv60dec: drop unused sum variable in read_slice_sizesPeter Ross2025-06-261-4/+3
| | | | | Reviewed-by: Michael Niedermayer <michael@niedermayer.cc> Signed-off-by: Peter Ross <pross@xvid.org>
* avformat/mov: Check that sample_count is allocated in mov_parse_heif_items()Michael Niedermayer2025-06-261-1/+1
| | | | | | | | | Fixes: NULL pointer dereference Fixes: 416811958/clusterfuzz-testcase-minimized-ffmpeg_dem_MOV_fuzzer-5425269114732544 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: James Almer <jamrial@gmail.com> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/iamfdec: remove unused variables after recent changesJames Almer2025-06-241-4/+1
| | | | | | Fixes -Wunused-but-set-variable warnings Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: fix layout checks when demixing_info is not presentJames Almer2025-06-241-1/+1
| | | | | | Fixes -Wtautological-overlap-compare warnings Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: use named constants in more placesJames Almer2025-06-241-2/+2
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: reindent after previous commitJames Almer2025-06-241-8/+8
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: add extra constrains for Parameter Sets in Audio ElementsJames Almer2025-06-241-7/+33
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: factor out getting loudspeaker_layout valuesJames Almer2025-06-241-26/+39
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf: fix setting channel layout for Scalable layersJames Almer2025-06-2411-73/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The way streams are coded in an IAMF struct follows a scalable model where the channel layouts for each layer may not match the channel order our API can represent in a Native order layout. For example, an audio element may have six coded streams in the form of two stereo streams, followed by two mono streams, and then by another two stereo streams, for a total of 10 channels, and define for them four scalable layers with loudspeaker_layout values "Stereo", "5.1ch", "5.1.2ch", and "5.1.4ch". The first layer references the first stream, and each following layer will reference all previous streams plus extra ones. In this case, the "5.1ch" layer will reference four streams (the first two stereo and the two mono) to encompass six channels, which does not match out native layout 5.1(side) given that FC and LFE come after FL+FR but before SL+SR, and here, they are at the end. For this reason, we need to build Custom order layouts that properly represent what we're exporting. ---- Before: Stream group #0:0[0x12c]: IAMF Audio Element: Layer 0: stereo Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Layer 1: 5.1(side) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Layer 2: 5.1.2 Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Layer 3: 5.1.4 Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:5[0x5]: Audio: opus, 48000 Hz, stereo, fltp (dependent) ---- AFter: Stream group #0:0[0x12c]: IAMF Audio Element: Layer 0: stereo Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Layer 1: 6 channels (FL+FR+SL+SR+FC+LFE) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Layer 2: 8 channels (FL+FR+SL+SR+FC+LFE+TFL+TFR) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Layer 3: 10 channels (FL+FR+SL+SR+FC+LFE+TFL+TFR+TBL+TBR) Stream #0:0[0x0]: Audio: opus, 48000 Hz, stereo, fltp (default) Stream #0:1[0x1]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:2[0x2]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:3[0x3]: Audio: opus, 48000 Hz, mono, fltp (dependent) Stream #0:4[0x4]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Stream #0:5[0x5]: Audio: opus, 48000 Hz, stereo, fltp (dependent) Signed-off-by: James Almer <jamrial@gmail.com>
* tests/iamf: rename BACK to SIDE filterchain labels in the 5.1.4 iamf testsJames Almer2025-06-243-3/+3
| | | | | | Cosmetic change to reflect the actual channels used in the layouts. Signed-off-by: James Almer <jamrial@gmail.com>
* tests/iamf: reorder muxed streamsJames Almer2025-06-243-45/+45
| | | | | | | Follows the proper order defined by the spec, even if mostly cosmetic, and is also preparation for a following change. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_parse: try to retype the channel layout for ambisonics_mode == 0James Almer2025-06-241-5/+7
| | | | | | | In most cases, the channel ids will match the standard Ambisonic Order, saving us the need to use a custom order layout. Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_writer: ensure each layer's channel layout contains all ↵James Almer2025-06-241-2/+22
| | | | | | channels from the previous one Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/iamf_parse: prevent overreads in update_extradataJames Almer2025-06-241-5/+12
| | | | | | | | | Fixes: libavcodec/put_bits.h:232:32: runtime error: shift exponent -19 is negative Fixes: Assertion n>=0 && n<=32 failed at ./libavcodec/get_bits.h:406 Fixes: 398527871/clusterfuzz-testcase-minimized-ffmpeg_dem_IAMF_fuzzer-6602025714647040 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/f_ebur128: properly propagate true peakNiklas Haas2025-06-241-1/+3
| | | | | | | | After 3b26b782ee, `ebur128->true_peak` was only set to the maximum of the current "true peak per frame" values, when it should report the true peak for the entire stream. Fixes: 3b26b782eeded9b9ab7fac013cd1a83a30d68206
* hwcontext_vulkan: fix 85c0364b703Lynne2025-06-241-0/+3
| | | | | The issue is that by moving the mprops loading later, we inadvertently broke some earlier dependencies.
* avcodec/g728dec: Remove AVCodec.sample_fmtsAndreas Rheinhardt2025-06-231-2/+0
| | | | | | | | | | It is unnecessary for decoders (they just set AVCodecContext.sample_fmt). This also fixes a warning with Clang (because sample_fmts is set directly, not via CODEC_SAMPLEFMTS). Reviewed-by: Peter Ross <pross@xvid.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* hwcontext_vulkan: add workaround for broken Nvidia driversLynne2025-06-241-0/+6
|
* hwcontext_vulkan: move ReBAR check into a new function and use it laterLynne2025-06-241-17/+26
| | | | | | | | The issue is that vulkan_device_create_internal() is only called for devices that lavu creates by itself. For external devices, this was never done. This also solves some mid-function declaration warnings.
* avformat/iff: Check nb_channels == 0 in CHNLMichael Niedermayer2025-06-231-1/+1
| | | | | | | | | | Fixes: division by 0 Fixes: 418396712/clusterfuzz-testcase-minimized-ffmpeg_dem_IFF_fuzzer-6104388018176000 Fixes: 418478219/clusterfuzz-testcase-minimized-ffmpeg_dem_IFF_fuzzer-4569544410857472 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Reviewed-by: Peter Ross <pross@xvid.org> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>