summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Add metric test script/filtergraph.metricsAnton Khirnov2024-03-09
|
* fftools/ffmpeg_enc: set AV_PKT_FLAG_TRUSTED on encoded packetsAnton Khirnov2024-03-09
| | | | | | | | 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-09
| | | | | 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-09
| | | | Will be useful in following commits.
* fftools/ffmpeg_sched: allow connecting encoder output to decodersAnton Khirnov2024-03-09
|
* fftools/ffmpeg_sched: factor initializing nodes into separate functionAnton Khirnov2024-03-09
| | | | Will be useful in following commits.
* fftools/ffmpeg_sched: allow encoders to send to multiple destinationsAnton Khirnov2024-03-09
| | | | Will become useful in following commits.
* fftools/ffmpeg_enc: merge do_{audio,video}_out into frame_encode()Anton Khirnov2024-03-09
| | | | | 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-09
| | | | | | | | 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-09
| | | | | | 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-09
| | | | | | | | | | | | | | | | | | | | 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-09
|
* fftools/ffmpeg_filter: move filtergraph input type check to a better placeAnton Khirnov2024-03-09
| | | | 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-09
| | | | | | | | | | | | | | | 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-09
| | | | | | | | 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-09
| | | | | 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-09
| | | | | 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-09
| | | | | | | | | | | | | | 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-09
|
* fftools/ffmpeg_filter: merge block with the enclosing oneAnton Khirnov2024-03-09
| | | | It has no reason to exist.
* fftools/ffmpeg_filter: don't forward EOF in close_output()Anton Khirnov2024-03-09
| | | | | The caller does not need or expect it, and it can lead to terminating filtering prematurely in case there is more than one output.
* avformat/mxfenc: add h264_mp4toannexb bitstream filter if needed when muxing ↵Marton Balint2024-03-08
| | | | | | | | h264 Partially fixes ticket #10395. Signed-off-by: Marton Balint <cus@passwd.hu>
* fate/flvenc: force the av1 decoder in all steps for fate-enhanced-flv-av1James Almer2024-03-08
| | | | | Tested-by: Steven Liu <lingjiujianke@gmail.com> Signed-off-by: James Almer <jamrial@gmail.com>
* avfilter/avfilter: Fix for Incorrect Parameter in ff_filter_config_links联盟少侠2024-03-08
| | | | | | | src/libavfilter/internal.h:255:45: note: passing argument to parameter 'filter' here int ff_filter_config_links(AVFilterContext *filter); Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
* libavdevice: Fix the avfoundation device after switching to FFInputFormatMartin Storsjö2024-03-08
| | | | | | This was missed in b800327f4c7233d09baca958121722a04c2035ff. Signed-off-by: Martin Storsjö <martin@martin.st>
* lavfi: deprecate avfilter_config_links()Anton Khirnov2024-03-08
| | | | It never makes sense for this function to be called by users.
* lavfi: deprecate avfilter_link_free()Anton Khirnov2024-03-08
| | | | It never makes sense for this function to be called by users.
* tests/fate/matroska: add tests for side data preferenceAnton Khirnov2024-03-08
| | | | | | Cf. #10857 Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc/*dec: use side data preference for mastering display/content light metadataAnton Khirnov2024-03-08
|
* avcodec/dpx: respect side data preferenceNiklas Haas2024-03-08
| | | | | If the time code side data is overridden by the packet level, we also make sure not to update `p->metadata` to a mismatched timecode.
* avcodec/libdav1d: respect side data preferenceNiklas Haas2024-03-08
| | | | Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/webp: respect side data preferenceNiklas Haas2024-03-08
|
* avcodec/tiff: respect side data preferenceNiklas Haas2024-03-08
|
* avcodec/pngdec: respect side data preferenceNiklas Haas2024-03-08
|
* avcodec/mpeg12dec: respect side data preferenceNiklas Haas2024-03-08
| | | | | | | We only need to consider side data types that may possibly come from the packet. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/mjpegdec: respect side data preferenceNiklas Haas2024-03-08
|
* avcodec/libjxldec: respect side data preferenceNiklas Haas2024-03-08
| | | | | | | Also fixes a memory leak where the side data was previously not properly cleaned up on OOM. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* avcodec/hevcdec: respect side data preferenceNiklas Haas2024-03-08
| | | | | | | If the time code side data is overridden by the packet level, we also make sure not to update `out->metadata` to a mismatched timecode. Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc/hevcdec: pass an actual codec context to ff_h2645_sei_to_frame()Anton Khirnov2024-03-08
| | | | Needed by following commit.
* avcodec/h264_slice: respect side data preferenceNiklas Haas2024-03-08
| | | | | If the time code side data is overridden by the packet level, we also make sure not to update `out->metadata` to a mismatched timecode.
* avcodec/cri: respect side data preferenceNiklas Haas2024-03-08
| | | | This function was already ignoring OOM errors.
* avcodec/av1dec: respect side data preferenceNiklas Haas2024-03-08
|
* lavc: add content light/mastering display side data wrappersAnton Khirnov2024-03-08
|
* avcodec: add internal side data wrappersNiklas Haas2024-03-08
| | | | | | | | The signature of these wrappers is more complicated due to a need to distinguish between "failed allocating side data" and "side data was already present". Signed-off-by: Anton Khirnov <anton@khirnov.net>
* lavc: add a decoder option for configuring side data preferenceAnton Khirnov2024-03-08
| | | | This and the following commits fix #10857
* lavu/opt: add array optionsAnton Khirnov2024-03-08
|
* lavu/opt: distinguish between native and foreign access for AVOption fieldsAnton Khirnov2024-03-08
| | | | | | | | Native access is from the code that declared the options, foreign access is from code that is using the options. Forbid foreign access to AVOption.offset/default_val, for which there is no good reason, and which should allow us more freedom in extending their semantics in a compatible way.
* lavu/opt: factor per-type dispatch out of av_opt_copy()Anton Khirnov2024-03-08
| | | | Will be useful in following commits.
* libavutil/opt: rework figuring out option sizesAnton Khirnov2024-03-08
| | | | | | | | | | Replace the opt_size() function, currently only called from av_opt_copy(), with * a constant array of element sizes * a function that signals whether an option type is POD (i.e. memcpyable) or not Will be useful in following commits.
* lavu/opt: factor per-type dispatch out of av_opt_set()Anton Khirnov2024-03-08
| | | | Will be useful in following commits.