summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* fftools/ffprobe: export Tile Grid Stream Group parametersJames Almer2024-03-13
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* lavfi/atempo: avoid asendcmd assertion failureRajiv Harlalka2024-03-13
| | | | | | | Check for zeros equal to the total samples early, because in that case we would already be leaving the first few frames out. Fixes trac ticket #10692
* fftools/ffmpeg_enc: set AV_PKT_FLAG_TRUSTED on encoded packetsAnton Khirnov2024-03-13
| | | | | | | | This allows using WRAPPED_AVFRAME encoders with loopback decoders in order to connect multiple filtergraphs together. Clear the flag in muxers, since lavf does not need it for anything and it would change the results of framecrc FATE tests.
* fftools/ffmpeg: add loopback decodingAnton Khirnov2024-03-13
| | | | | This allows to send an encoder's output back to decoding and feed the result into a complex filtergraph.
* fftools/ffmpeg: prepare FrameData for having allocated fieldsAnton Khirnov2024-03-13
| | | | Will be useful in following commits.
* fftools/ffmpeg_sched: allow connecting encoder output to decodersAnton Khirnov2024-03-13
|
* fftools/ffmpeg_sched: factor initializing nodes into separate functionAnton Khirnov2024-03-13
| | | | Will be useful in following commits.
* fftools/ffmpeg_sched: allow encoders to send to multiple destinationsAnton Khirnov2024-03-13
| | | | Will become useful in following commits.
* fftools/ffmpeg_enc: merge do_{audio,video}_out into frame_encode()Anton Khirnov2024-03-13
| | | | | These functions used to be much longer, but now they are only a couple lines each, some of them duplicated between audio and video.
* fftools/ffmpeg_enc: drop unnecessary parameter from forced_kf_apply()Anton Khirnov2024-03-13
| | | | | | | | Encoder timebase is equal to the frame timebase, so does not need to be passed separately. Also, rename in_picture to frame, which is shorter and more accurate - it always contains a frame, never a field.
* fftools/ffmpeg: remove unncessary casts for *_thread() return valuesAnton Khirnov2024-03-13
| | | | | | These functions used to be passed directly to pthread_create(), which required them to return void*. This is no longer the case, so they can return a plain int.
* fftools/ffmpeg: simplify propagating fallback parameters from decoders to ↵Anton Khirnov2024-03-13
| | | | | | | | | | | | | | | | | | | | filters Current callstack looks like this: * ifilter_bind_ist() (filter) calls ist_filter_add() (demuxer); * ist_filter_add() opens the decoder, and then calls dec_add_filter() (decoder); * dec_add_filter() calls ifilter_parameters_from_dec() (i.e. back into the filtering code) in order to give post-avcodec_open2() parameters to the filter. This is unnecessarily complicated. Pass the parameters as follows instead: * dec_init() (which opens the decoder) returns post-avcodec_open2() parameters to its caller (i.e. the demuxer) in a parameter-only AVFrame * the demuxer passes these parameters to the filter in InputFilterOptions, together with other filter options
* fftools/ffmpeg_filter: add logging for binding inputs to demuxer streamsAnton Khirnov2024-03-13
|
* fftools/ffmpeg_filter: move filtergraph input type check to a better placeAnton Khirnov2024-03-13
| | | | Perform it right after we figure out what the type is.
* fftools/ffmpeg_opt: merge init_complex_filters() and check_filter_outputs()Anton Khirnov2024-03-13
| | | | | | | | | | | | | | | The first of these binds inputs of complex filtergraphs to demuxer streams (with a misleading comment claiming it *creates* complex filtergraphs). The second ensures that all filtergraph outputs are connected to an encoder. Merge them into a single function, which simplifies the ffmpeg_filter API, is shorter, and will also be useful in following commits. Also, rename misleadingly-named init_input_filter() to fg_complex_bind_input().
* fftools/ffmpeg_dec: factor opening the decoder out of dec_open()Anton Khirnov2024-03-13
| | | | | | | | Rename dec_open to dec_init(), as it is more descriptive of its new purpose. Will be useful in following commits, which will add a new path for opening decoders.
* fftools/ffmpeg_dec: move scheduler registration from dec_open() to dec_alloc()Anton Khirnov2024-03-13
| | | | | Will be useful in following commits where we will want to create a decoder before having enough information to open it.
* fftools/ffmpeg_filter: drop unused InputFilterPriv.istAnton Khirnov2024-03-13
| | | | | Outside of ifilter_bind_ist(), there are no longer any assumptions about about filter inputs being fed by an InputStream.
* fftools/ffmpeg_filter: refactor setting input timebaseAnton Khirnov2024-03-13
| | | | | | | | | | | | | | Treat it analogously to stream parameters like format/dimensions/etc. This is functionally different from previous code in 2 ways: * for non-CFR video, the frame timebase (set by the decoder) is used rather than the demuxer timebase * for sub2video, AV_TIME_BASE_Q is used, which is hardcoded by the subtitle decoding API These changes should avoid unnecessary and potentially lossy timestamp conversions from decoder timebase into the demuxer one. Changes the timebases used in sub2video tests.
* fftools/cmdutils: fix printing group name in split_commandline()Anton Khirnov2024-03-13
|
* configure: add threads dep for vulkanGyan Doshi2024-03-13
| | | | Fixes #10900
* avcodec/parser: Reset *buf_size on realloc failureReimar Döffinger2024-03-13
| | | | | | | | | Fixes: out of array access Fixes: crash-0d640731c7da52415670eb47a2af701cbe2e1a3b Fixes: crash-e745864ead6ea418959c8df56de2765571201dae Found-by: Catena cyber <contact@catenacyber.fr> Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
* avformat/gopher: Add audio and video itemtypesChristian Lee Seibold2024-03-12
| | | | | | | | The 's', ';', and '<' itemtypes are used for audio and video by Gophernicus and Gopher+. Signed-off-by: Christian Lee Seibold <christian.seibold32@outlook.com> Signed-off-by: Marton Balint <cus@passwd.hu>
* fate: fix generating references when sh=dashNicolas Gaullier2024-03-12
| | | | | | | Regression since 0b98f28c46a7e3e914c51debc461 Signed-off-by: Nicolas Gaullier <nicolas.gaullier@cji.paris> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/webvttdec: Skip more parts of header to let parsing continueKristoffer Brånemyr2024-03-12
| | | | | Signed-off-by: Kristoffer Brånemyr <ztion1@yahoo.se> Signed-off-by: Marton Balint <cus@passwd.hu>
* avformat/fifo_test: Move into tests/fifo_muxer.cAndreas Rheinhardt2024-03-12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This muxer solely exists to test the fifo muxer via a dedicated test tool in libavformat/tests/fifo_muxer.c. It fulfills no other role and it is only designed with this role in mind. The latter can be seen in two facts: The muxer uses printf for logging and it simply presumes the packets' data to contain a FailingMuxerPacketData (a struct duplicated in fifo_test.c and tests/fifo_muxer.c.); in particular, it presumes packets to have data at all, but this need not be true with side-data only packets and a segfault can easily be triggered by e.g. encoding flac (our native encoder sends a side-data only packet with updated extradata at the end of encoding). This patch fixes this by moving the test muxer into the fifo test tool, making it inaccessible via the API (and actually removing it from libavformat.so and libavformat.a). While this muxer was accessible via e.g. av_guess_format(), it was not really usable for an API user as FailingMuxerPacketData was not public. Therefore this is not considered a breaking change. In order to continue to use the test muxer in the test tool, the ordinary fifo muxer had to be overridden: fifo_muxer.c includes lavf/fifo.c but with FIFO_TEST defined which makes it support the fifo_test muxer. This is possible because test tools are always linked statically to their respective library. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/libjxlenc: add option to disable xyb encodingLeo Izen2024-03-12
| | | | | | | | Add an AVOption to the libjxl encoder wrapper, which exposes the flag uses_original_profile in libjxl. For highly unusual ICC profiles where the target needs to stay in the original space, this can be useful. Signed-off-by: Leo Izen <leo.izen@gmail.com>
* avcodec/tiff: Use ff_tget_long() where appropriateAndreas Rheinhardt2024-03-12
| | | | | | | No need to use the generic ff_tget() when we know the type. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* fate/h264: add missing swscale dependency to h264-bsf-mp4toannexb-new-extradataJames Almer2024-03-12
| | | | Signed-off-by: James Almer <jamrial@gmail.com>
* avformat/sccdec: remove unused bprint.h includeMarth642024-03-12
| | | | Signed-off-by: Marth64 <marth64@proxyid.net>
* avcodec/rcwtenc: canonize name and refresh documentationMarth642024-03-12
| | | | | | | | | | | | The formal title of the muxer according to the specification is "RCWT (Raw Captions With Time)", so canonize this in the long name of the codec and docs. In the documentation section, point #2 was wrong: ccextractor extracts the Closed Captions data and stores normalized bits similarly to this muxer. Signed-off-by: Marth64 <marth64@proxyid.net>
* avcodec/tiff: Improve inclusionsAndreas Rheinhardt2024-03-12
| | | | | Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/tiff: Don't check before av_freep()Andreas Rheinhardt2024-03-12
| | | | | Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/tiff: Avoid duplicating stringsAndreas Rheinhardt2024-03-12
| | | | | Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* avcodec/tiff: Fix handling of av_strdup() failuresAndreas Rheinhardt2024-03-12
| | | | | | | | | | | | | | | | | For unknown geokey values, get_geokey_val() returns "Unknown-%d" with val being used for %d. This string is allocated and therefore all the known geokey values (static strings) are strdup'ed. In case this fails it is either ignored or treated as "Unknown-%d". (Furthermore it is possible to call av_strdup(NULL), although this is not documented to be legal.) This commit changes this by only returning the static strings in get_geokey_val(); the unknown handling and strdup'ing is moved out of it. Reviewed-by: Stefano Sabatini <stefasab@gmail.com> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* lavc/vvc_ps: Correct NoOutputBeforeRecoveryFlag of IDRFei Wang2024-03-12
| | | | | | | The NoOutputBeforeRecoveryFlag of an IDR frame should be set to 1 as spec says in 8.1.1. Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* lavc/vvcdec: Add missed chroma sampling factor for crop offsetFei Wang2024-03-12
| | | | Signed-off-by: Fei Wang <fei.w.wang@intel.com>
* avformat/aea: add aea muxerasivery2024-03-12
| | | | Signed-off-by: asivery <asivery@protonmail.com>
* doc/examples/qsv_decode: remove unused config.h header filehung kuishing2024-03-12
| | | | Signed-off-by: clarkh <hungkuishing@outlook.com>
* avformat/dvdvideodec: add menu demuxing supportMarth642024-03-12
| | | | Signed-off-by: Marth64 <marth64@proxyid.net>
* avformat/dvdvideodec: add CLUT utilities and subtitle color supportMarth642024-03-12
| | | | Signed-off-by: Marth64 <marth64@proxyid.net>
* doc/muxers/fifo: review documentationStefano Sabatini2024-03-12
| | | | Apply consistency fixes, sort options, clarify example.
* lavf/fifo: sort options by nameStefano Sabatini2024-03-12
|
* fftools/ffmpeg_filter: merge block with the enclosing oneAnton Khirnov2024-03-12
| | | | It has no reason to exist.
* fftools/ffmpeg_filter: don't forward EOF in close_output()Anton Khirnov2024-03-12
| | | | | The caller does not need or expect it, and it can lead to terminating filtering prematurely in case there is more than one output.
* fftools/ffmpeg_filter: do not assume av_buffersrc_get_nb_failed_requests()>0Anton Khirnov2024-03-12
| | | | | | | | | Apparently it can happen that avfilter_graph_request_oldest() returns EAGAIN, yet av_buffersrc_get_nb_failed_requests() returns 0 for every input. Works around #10795, though the root issue is most likely in the scale2ref filter.
* lavf/fifo: fix typoStefano Sabatini2024-03-11
|
* lavf/dvenc: improve error messagingStefano Sabatini2024-03-11
| | | | | Provide useful information about the failure in the error message, do not let the user guess.
* fftools/opt_common: show if muxer is deviceStefano Sabatini2024-03-11
|
* avcodec/av1dec: parse DV profile 10 T.35 OBUNiklas Haas2024-03-11
| | | | See previous commit.