summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* lavc/decode: drop a useless warningAnton Khirnov2023-05-152-9/+0
| | | | | | | | | | Decoders will currently warn if an audio decoder not marked with AV_CODEC_CAP_SUBFRAMES consumes less than the whole packet, but * this happens for regular files * this has no negative consequences * there is no meeaningful action that can or should be taken in response The warning is thus useless noise.
* avformat/hls: Try to implement RFC8216 playlist refusalMichael Niedermayer2023-05-151-1/+10
| | | | | | | | This should fix the regression since 6b1f68ccb04d791f0250e05687c346a99ff47ea1 Should fix Ticket10353 (please test and report cases that still fail) Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat: add ff_match_url_ext()Michael Niedermayer2023-05-152-0/+34
| | | | | | Match url against a list of extensions similar to av_match_ext() Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avfilter/*xfade: reduce memory consumptionPaul B Mahol2023-05-142-0/+24
| | | | There is no always need for new buffers.
* avcodec/cbs_av1: add valid range of values for num_units_in_decoding_tickJames Almer2023-05-141-1/+1
| | | | | | The spec states "num_units_in_decoding_tick shall be greater than 0". Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/f_graphmonitor: set output frame durationPaul B Mahol2023-05-141-0/+1
|
* avfilter/f_loop: free video frames once not neededPaul B Mahol2023-05-141-4/+17
|
* avfilter/f_graphmonitor: add nozero display modePaul B Mahol2023-05-142-20/+28
|
* avfilter/f_graphmonitor: rename enumsPaul B Mahol2023-05-141-52/+53
|
* avfilter/f_loop: fix looping for aloopPaul B Mahol2023-05-141-1/+5
|
* avfilter/f_loop: add time option, for loop start in secondsPaul B Mahol2023-05-142-40/+57
|
* lavfi/vf_libplacebo: add frame_mixer optionNiklas Haas2023-05-142-6/+42
| | | | | Fairly straightforward. We just need to modify the scaler handling code slightly to support looking at a different list of filter presets.
* lavfi/vf_libplacebo: allow fps conversionNiklas Haas2023-05-142-7/+38
| | | | | | | | | | | This exposes libplacebo's frame mixing functionality to vf_libplacebo, by allowing users to specify a desired target fps to output at. Incoming frames will be smoothly resampled (in a manner determined by the `frame_mixer` option, to be added in the next commit). To generate a consistently timed output stream, we directly use the desired framerate as the timebase, and simply output frames in sequential order (tracked by the number of frames output so far).
* lavfi/vf_libplacebo: switch to activate()Niklas Haas2023-05-141-33/+80
| | | | | | | | | To present compatibility with the current behavior, we keep track of a FIFO of exact frame timestamps that we want to output to the user. In practice, this is essentially equivalent to the current filter_frame() code, but this design allows us to scale to more complicated use cases in the future - for example, insertion of intermediate frames (deinterlacing, frame doubling, conversion to fixed fps, ...)
* lavfi/vf_libplacebo: switch to pl_queue-based designNiklas Haas2023-05-141-70/+144
| | | | | | This does not leverage any immediate benefits, but refactors and prepares the codebase for upcoming changes, which will include the ability to do deinterlacing and resampling (frame mixing).
* lavfi/vf_libplacebo: split and refactor logicNiklas Haas2023-05-141-79/+93
| | | | | | | | | | | | This commit contains no functional change. The goal is merely to separate the highly intertwined `filter_frame` and `process_frames` functions into their separate concerns, specifically to separate frame uploading (which is now done directly in `filter_frame`) from emitting a frame (which is now done by a dedicated function `output_frame`). The overall idea here is to be able to ultimately call `output_frame` multiple times, to e.g. emit several output frames for a single input frame.
* lavfi/vf_libplacebo: update render params on demandNiklas Haas2023-05-141-102/+126
| | | | | | Only update this struct when it's expected to change, and cache it otherwise. Partially motivated by a desire to make `process_frames` smaller.
* avfilter/setpts: add command supportOleg2023-05-143-17/+64
| | | | | | Add support for changing expr on the fly. Signed-off-by: Oleg <oafanasiev@gmail.com>
* tools/normalize: port to python3, extend syntaxStefano Sabatini2023-05-141-33/+73
| | | | Also add documentation and logging.
* avfilter/vf_waveform: add input optionPaul B Mahol2023-05-142-1/+11
| | | | For finer control of selected formats for filtering.
* avfilter/avfiltergraph: remove no longer valid commentPaul B Mahol2023-05-141-1/+0
|
* avfilter/formats: fix format negotiation when multiple channel_layouts are ↵James Almer2023-05-132-10/+31
| | | | | | | | | | provided For example ffmpeg -f lavfi -i sine -af "aformat=cl=stereo|5.1|7.1,lowpass,aformat=cl=7.1|5.1|stereo" -f null - Reviewed-by: Paul B Mahol <onemda@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/vf_libplacebo: allow operation without avhwdeviceNiklas Haas2023-05-131-42/+45
| | | | | | | | | | | | | | | | | | | Recent versions of libplacebo have required Vulkan versions incompatible with lavu Vulkan hwcontexts. While this is expected to change eventually, breaking vf_libplacebo every time there is such a transition period is obviously undesired behavior, as the following sea of bug reports shows. This commit adds a fallback path for init_vulkan failures which simply creates an internal device if there was no user-supplied Vulkan hwaccel. Useful when no interop with lavu vulkan hwframes is needed or desired, and makes using this filter easier inside certain applications. Fixes: https://github.com/haasn/libplacebo/issues/170 Fixes: https://github.com/mpv-player/mpv/issues/9589#issuecomment-1535432185 Fixes: https://github.com/mpv-player/mpv/issues/11363 Fixes: https://github.com/mpv-player/mpv/issues/11685#issuecomment-1546627082 Closes: https://code.videolan.org/videolan/libplacebo/-/issues/270
* avfilter/af_asetrate: extend query_formats()Paul B Mahol2023-05-131-1/+11
| | | | | | | It left some formats not defined. Causing format negotiation errors with ffplay. Fixes #9248
* avfilter/avfiltergraph: fix check for negative returnPaul B Mahol2023-05-131-2/+4
| | | | | | | | | | | | Before this commit if allocation would fail in ff_add_channel_layout() function, function would return negative error code and this would cause wrong format pick up later. If allocation would not fail return code would be 0 and then format negotiation would simply fail as code would break from the loop but with wrong return code. Error was introduced in 6aaac24d72a7da commit. Fixes #6638
* avfilter/ccfifo: constify some parametersJames Almer2023-05-122-4/+4
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/af_loudnorm: simplify query_formats even morePaul B Mahol2023-05-121-11/+9
|
* avfilter/ccfifo: remove unnecessary context allocationsJames Almer2023-05-1213-94/+89
| | | | | | | This is not public API, no it has no need for an alloc() and free() functions. The struct can reside on stack. Signed-off-by: James Almer <jamrial@gmail.com>
* doc/muxers/image2: drop unmatched quote in exampleAndriy Utkin2023-05-121-1/+1
| | | | | Percent sign is not a special character in popular shells, so the quoting isn't necessary.
* avfilter/af_surround: scale output gain for non-default overlapPaul B Mahol2023-05-121-2/+20
|
* avfilter/af_surround: cache constant rdft_size inside loopsPaul B Mahol2023-05-121-6/+12
|
* avdevice/decklink: move AVPacketQueue into decklink_common and rename it to ↵Devin Heitmueller2023-05-113-125/+133
| | | | | | | | | | | | | | | | | | | | DecklinkPacketQueue Move the AVPacketQueue functionality that is currently only used for the decklink decode module into decklink_common, so it can be shared by the decklink encoder (i.e. for VANC insertion when we receive data packets separate from video). The threadsafe queue used within the decklink module was named "AVPacketQueue" which implies that it is part of the public API, which it is not. Rename the functions and the name of the queue struct to make clear it is used exclusively by decklink, per Marton Balint's suggestion. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/mxfdec: recognize AAC per SMPTE ST 381-4Ammon Riley2023-05-112-0/+7
| | | | | | | | | This patch simply recognizes the AAC audio track during decode -- it does not add functionality to encode AAC in MXF. Signed-off-by: Ammon Riley <ammon.riley@gmail.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* avfilter/af_surround: reduce double usagePaul B Mahol2023-05-111-27/+27
|
* avfilter/avf_showwaves: zero whole allocated chunkPaul B Mahol2023-05-111-1/+1
|
* avfilter/vf_yadif_cuda: fix buildTimo Rothenpieler2023-05-111-2/+2
| | | | Identical patches were sent by Leo Izen and Devin Heitmueller.
* avformat/tests/imf: add invalid resource testPierre-Anthony Lemieux2023-05-112-0/+67
|
* avformat/imf: fix invalid resource handlingPierre-Anthony Lemieux2023-05-111-8/+6
|
* avdevice/decklink_enc: add support for playout of 608 captions in MOV filesDevin Heitmueller2023-05-115-1/+94
| | | | | | | | | | | | | | | | | Unlike other cases where the closed captions are embedded in the video stream as MPEG-2 userdata or H.264 SEI data, with MOV files the captions are often found on a separate "e608" subtitle track. Add support for playout of such files, leveraging the new ccfifo mechanism to ensure that they are embedded into VANC at the correct rate (since e608 packets often contain batches of multiple 608 pairs). Note this patch includes a new file named libavdevice/ccfifo.c, which allows the ccfifo functionality in libavfilter to be reused even if doing shared builds. This is the same approach used for log2_tab.c. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_ccrepack: Add new filter to repack CEA-708 side dataDevin Heitmueller2023-05-114-0/+114
| | | | | | | | | | | | | THis filter can correct certain issues seen from upstream sources where the cc_count is not properly set or the CEA-608 tuples are not at the start of the payload as expected. Make use of the ccfifo to extract and immediately repack the CEA-708 side data, thereby removing any extra padding and ensuring the 608 tuples are at the front of the payload. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/tinterlace: Properly preserve CEA-708 closed captionsDevin Heitmueller2023-05-112-0/+13
| | | | | | | | | | | | | | | Because the interlacing filter halves the effective framerate, we need to ensure that no CEA-708 data is lost as frames are merged. Make use of the new ccfifo mechanism to ensure that caption data is properly preserved as frames pass through the filter. Thanks to Thomas Mundt for review and noticing a couple of missed codepaths for injection on output. Thanks to Lance Wang for pointing out a memory leak. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/yadif: Properly preserve CEA-708 closed captionsDevin Heitmueller2023-05-115-0/+32
| | | | | | | | | | | | | Various deinterlacing modes have the effect of doubling the framerate, and we need to ensure that the caption data isn't duplicated (or else you get double captions on-screen). Use the new ccfifo mechanism for yadif (and yadif_cuda and bwdif since they use the same yadif core) so that CEA-708 data is properly preserved through this filter. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/vf_fps: properly preserve CEA-708 captionsDevin Heitmueller2023-05-111-1/+10
| | | | | | | | | | | | | | | The existing implementation made an attempt to remove duplicate captions if increasing the framerate, but made no attempt to handle reducing the framerate, nor did it rewrite the caption payloads to have the appropriate cc_count (e.g. the cc_count needs to change from 20 to 10 when going from 1080i59 to 720p59 and vice-versa). Make use of the new ccfifo mechanism to ensure that caption data is properly preserved. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* avfilter/ccfifo: Properly handle CEA-708 captions through framerate conversionDevin Heitmueller2023-05-113-0/+335
| | | | | | | | | | | | | | | | | | | | | | | | | | | When transcoding video that contains 708 closed captions, the caption data is tied to the frames as side data. Simply dropping or adding frames to change the framerate will result in loss of data, so the caption data needs to be preserved and reformatted. For example, without this patch converting 720p59 to 1080i59 would result in loss of 50% of the caption bytes, resulting in garbled 608 captions and 708 probably wouldn't render at all. Further, the frames that are there will have an illegal cc_count for the target framerate, so some decoders may ignore the packets entirely. Extract the 608 and 708 tuples and insert them onto queues. Then after dropping/adding frames, re-write the tuples back into the resulting frames at the appropriate rate given the target framerate. This includes both having the correct cc_count as well as clocking out the 608 pairs at the appropriate rate. Thanks to Lance Wang <lance.lmwang@gmail.com>, Anton Khirnov <anton@khirnov.net>, and Michael Niedermayer <michael@niedermayer.cc> for providing review/feedback. Signed-off-by: Devin Heitmueller <dheitmueller@ltnglobal.com> Signed-off-by: Limin Wang <lance.lmwang@gmail.com>
* libavcodec/libsvtav1: Allow -1 for preset optionChristopher Degawa2023-05-111-2/+2
| | | | | | | | Currently, the -1 (MR) preset is disallowed as it's taken as the preset option not set, and the only way to access it was through svtav1-params. Signed-off-by: Christopher Degawa <ccom@randomderp.com> Signed-off-by: James Almer <jamrial@gmail.com>
* doc/filters/crop: drop unmatched quote in exampleAndriy Utkin2023-05-111-1/+1
| | | | | | | Commit 55b81528a991 ("doc/filters: itemize crop examples") dropped the quotation marks from these examples, but this one remained. Quotes are actually needed to put the example into a command line or a program, but removing it here makes the example consistent with the document.
* avfilter/vsrc_testsrc: mark zoneplate as full rangePaul B Mahol2023-05-101-0/+1
|
* avfilter/af_pan: free input frame once unneededPaul B Mahol2023-05-101-2/+1
|
* avfilter/af_join: fix leak on errorPaul B Mahol2023-05-101-1/+1
|
* avfilter/af_pan: fix leaks on error casePaul B Mahol2023-05-101-1/+4
|