avfilter: add AVFILTER_FLAG_METADATA_ONLY

This flag allows distinguishing between filters that actually modify the
data and those that only modify metadata or gather some stream
information.
This commit is contained in:
Anton Khirnov 2021-11-22 14:39:11 +01:00
parent 944c34a94c
commit b9c928a486
60 changed files with 116 additions and 26 deletions

View File

@ -14,6 +14,9 @@ libavutil: 2021-04-27
API changes, most recent first:
2021-11-xx - xxxxxxxxxx - lavfi 8.19.100 - avfilter.h
Add AVFILTER_FLAG_METADATA_ONLY.
2021-12-03 - xxxxxxxxxx - lavu 57.10.100 - frame.h
Add AVFrame.time_base

View File

@ -63,6 +63,7 @@ static const AVFilterPad acopy_outputs[] = {
const AVFilter ff_af_acopy = {
.name = "acopy",
.description = NULL_IF_CONFIG_SMALL("Copy the input audio unchanged to the output."),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(acopy_inputs),
FILTER_OUTPUTS(acopy_outputs),
};

View File

@ -162,6 +162,7 @@ const AVFilter ff_af_aformat = {
.uninit = uninit,
.priv_size = sizeof(AFormatContext),
.priv_class = &aformat_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_af_aformat_inputs),
FILTER_OUTPUTS(avfilter_af_aformat_outputs),
FILTER_QUERY_FUNC(query_formats),

View File

@ -44,6 +44,7 @@ static const AVFilterPad avfilter_af_anull_outputs[] = {
const AVFilter ff_af_anull = {
.name = "anull",
.description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_af_anull_inputs),
FILTER_OUTPUTS(avfilter_af_anull_outputs),
};

View File

@ -166,6 +166,7 @@ const AVFilter ff_af_asdr = {
.priv_size = sizeof(AudioSDRContext),
.activate = activate,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_SINGLE_SAMPLEFMT(AV_SAMPLE_FMT_DBLP),

View File

@ -113,4 +113,5 @@ const AVFilter ff_af_asetrate = {
FILTER_OUTPUTS(asetrate_outputs),
FILTER_QUERY_FUNC(query_formats),
.priv_class = &asetrate_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -257,6 +257,7 @@ const AVFilter ff_af_ashowinfo = {
.description = NULL_IF_CONFIG_SMALL("Show textual information for each audio frame."),
.priv_size = sizeof(AShowInfoContext),
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
};

View File

@ -172,6 +172,7 @@ const AVFilter ff_af_asr = {
.priv_class = &asr_class,
.init = asr_init,
.uninit = asr_uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(asr_inputs),
FILTER_OUTPUTS(asr_outputs),
FILTER_QUERY_FUNC(query_formats),

View File

@ -848,5 +848,5 @@ const AVFilter ff_af_astats = {
AV_SAMPLE_FMT_S64, AV_SAMPLE_FMT_S64P,
AV_SAMPLE_FMT_FLT, AV_SAMPLE_FMT_FLTP,
AV_SAMPLE_FMT_DBL, AV_SAMPLE_FMT_DBLP),
.flags = AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -202,6 +202,7 @@ const AVFilter ff_af_drmeter = {
.priv_size = sizeof(DRMeterContext),
.priv_class = &drmeter_class,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(drmeter_inputs),
FILTER_OUTPUTS(drmeter_outputs),
FILTER_SAMPLEFMTS(AV_SAMPLE_FMT_FLTP, AV_SAMPLE_FMT_FLT),

View File

@ -606,6 +606,7 @@ const AVFilter ff_af_replaygain = {
.description = NULL_IF_CONFIG_SMALL("ReplayGain scanner."),
.uninit = uninit,
.priv_size = sizeof(ReplayGainContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(replaygain_inputs),
FILTER_OUTPUTS(replaygain_outputs),
FILTER_QUERY_FUNC(query_formats),

View File

@ -272,4 +272,5 @@ const AVFilter ff_af_silencedetect = {
AV_SAMPLE_FMT_S32, AV_SAMPLE_FMT_S32P,
AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P),
.priv_class = &silencedetect_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -134,6 +134,7 @@ const AVFilter ff_af_volumedetect = {
.description = NULL_IF_CONFIG_SMALL("Detect audio volume."),
.priv_size = sizeof(VolDetectContext),
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(volumedetect_inputs),
FILTER_OUTPUTS(volumedetect_outputs),
FILTER_SAMPLEFMTS(AV_SAMPLE_FMT_S16, AV_SAMPLE_FMT_S16P),

View File

@ -119,6 +119,22 @@ enum AVMediaType avfilter_pad_get_type(const AVFilterPad *pads, int pad_idx);
* and processing them concurrently.
*/
#define AVFILTER_FLAG_SLICE_THREADS (1 << 2)
/**
* The filter is a "metadata" filter - it does not modify the frame data in any
* way. It may only affect the metadata (i.e. those fields copied by
* av_frame_copy_props()).
*
* More precisely, this means:
* - video: the data of any frame output by the filter must be exactly equal to
* some frame that is received on one of its inputs. Furthermore, all frames
* produced on a given output must correspond to frames received on the same
* input and their order must be unchanged. Note that the filter may still
* drop or duplicate the frames.
* - audio: the data produced by the filter on any of its outputs (viewed e.g.
* as an array of interleaved samples) must be exactly equal to the data
* received by the filter on one of its inputs.
*/
#define AVFILTER_FLAG_METADATA_ONLY (1 << 3)
/**
* Some filters support a generic "enable" expression option that can be used
* to enable or disable a filter in the timeline. Filters supporting this

View File

@ -113,6 +113,7 @@ const AVFilter ff_vf_bench = {
FILTER_INPUTS(bench_inputs),
FILTER_OUTPUTS(bench_outputs),
.priv_class = &bench_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_BENCH_FILTER */
@ -143,5 +144,6 @@ const AVFilter ff_af_abench = {
FILTER_INPUTS(abench_inputs),
FILTER_OUTPUTS(abench_outputs),
.priv_class = &abench_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_ABENCH_FILTER */

View File

@ -142,6 +142,7 @@ const AVFilter ff_af_acue = {
.description = NULL_IF_CONFIG_SMALL("Delay filtering to match a cue."),
.priv_class = &cue_acue_class,
.priv_size = sizeof(CueContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(acue_inputs),
FILTER_OUTPUTS(acue_outputs),
.activate = activate,

View File

@ -118,7 +118,8 @@ const AVFilter ff_vf_latency = {
.init = init,
.uninit = uninit,
.activate = activate,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(latency_inputs),
FILTER_OUTPUTS(latency_outputs),
};

View File

@ -391,7 +391,8 @@ const AVFilter ff_af_ametadata = {
.uninit = uninit,
FILTER_INPUTS(ainputs),
FILTER_OUTPUTS(aoutputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_AMETADATA_FILTER */
@ -424,6 +425,7 @@ const AVFilter ff_vf_metadata = {
.uninit = uninit,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_METADATA_FILTER */

View File

@ -138,7 +138,8 @@ const AVFilter ff_af_aperms = {
.priv_size = sizeof(PermsContext),
FILTER_INPUTS(aperms_inputs),
FILTER_OUTPUTS(aperms_outputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_APERMS_FILTER */
@ -167,6 +168,7 @@ const AVFilter ff_vf_perms = {
FILTER_INPUTS(perms_inputs),
FILTER_OUTPUTS(perms_outputs),
.priv_class = &perms_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_PERMS_FILTER */

View File

@ -95,6 +95,7 @@ const AVFilter ff_vf_realtime = {
.description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."),
.priv_size = sizeof(RealtimeContext),
.priv_class = &realtime_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_realtime_inputs),
FILTER_OUTPUTS(avfilter_vf_realtime_outputs),
};
@ -122,6 +123,7 @@ const AVFilter ff_af_arealtime = {
.description = NULL_IF_CONFIG_SMALL("Slow down filtering to match realtime."),
.priv_class = &realtime_class,
.priv_size = sizeof(RealtimeContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(arealtime_inputs),
FILTER_OUTPUTS(arealtime_outputs),
};

View File

@ -286,7 +286,7 @@ const AVFilter ff_vf_segment = {
.activate = activate,
FILTER_INPUTS(segment_inputs),
.outputs = NULL,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY,
};
#endif // CONFIG_SEGMENT_FILTER
@ -325,6 +325,6 @@ const AVFilter ff_af_asegment = {
.activate = activate,
FILTER_INPUTS(asegment_inputs),
.outputs = NULL,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY,
};
#endif // CONFIG_ASEGMENT_FILTER

View File

@ -533,6 +533,6 @@ const AVFilter ff_vf_select = {
.priv_class = &select_class,
FILTER_INPUTS(avfilter_vf_select_inputs),
FILTER_QUERY_FUNC(query_formats),
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_SELECT_FILTER */

View File

@ -597,6 +597,7 @@ const AVFilter ff_vf_sendcmd = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(SendCmdContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(sendcmd_inputs),
FILTER_OUTPUTS(sendcmd_outputs),
.priv_class = &sendcmd_class,
@ -628,6 +629,7 @@ const AVFilter ff_af_asendcmd = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(SendCmdContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(asendcmd_inputs),
FILTER_OUTPUTS(asendcmd_outputs),
};

View File

@ -147,7 +147,8 @@ const AVFilter ff_af_asidedata = {
.init = init,
FILTER_INPUTS(ainputs),
FILTER_OUTPUTS(aoutputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_ASIDEDATA_FILTER */
@ -179,6 +180,7 @@ const AVFilter ff_vf_sidedata = {
.init = init,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_SIDEDATA_FILTER */

View File

@ -132,6 +132,7 @@ const AVFilter ff_vf_fifo = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(FifoContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_fifo_inputs),
FILTER_OUTPUTS(avfilter_vf_fifo_outputs),
};
@ -158,6 +159,7 @@ const AVFilter ff_af_afifo = {
.init = init,
.uninit = uninit,
.priv_size = sizeof(FifoContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_af_afifo_inputs),
FILTER_OUTPUTS(avfilter_af_afifo_outputs),
};

View File

@ -294,6 +294,7 @@ const AVFilter ff_vf_setpts = {
.init = init,
.activate = activate,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
.priv_size = sizeof(SetPTSContext),
.priv_class = &setpts_class,
@ -334,6 +335,7 @@ const AVFilter ff_af_asetpts = {
.uninit = uninit,
.priv_size = sizeof(SetPTSContext),
.priv_class = &asetpts_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(asetpts_inputs),
FILTER_OUTPUTS(asetpts_outputs),
};

View File

@ -185,6 +185,7 @@ const AVFilter ff_vf_settb = {
FILTER_INPUTS(avfilter_vf_settb_inputs),
FILTER_OUTPUTS(avfilter_vf_settb_outputs),
.activate = activate,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_SETTB_FILTER */
@ -216,5 +217,6 @@ const AVFilter ff_af_asettb = {
FILTER_OUTPUTS(avfilter_af_asettb_outputs),
.priv_class = &asettb_class,
.activate = activate,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_ASETTB_FILTER */

View File

@ -112,7 +112,7 @@ const AVFilter ff_vf_split = {
.init = split_init,
FILTER_INPUTS(avfilter_vf_split_inputs),
.outputs = NULL,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY,
};
static const AVFilterPad avfilter_af_asplit_inputs[] = {
@ -131,5 +131,5 @@ const AVFilter ff_af_asplit = {
.init = split_init,
FILTER_INPUTS(avfilter_af_asplit_inputs),
.outputs = NULL,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS,
.flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -363,6 +363,7 @@ const AVFilter ff_af_atrim = {
.init = init,
.priv_size = sizeof(TrimContext),
.priv_class = &atrim_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(atrim_inputs),
FILTER_OUTPUTS(atrim_outputs),
};

View File

@ -30,7 +30,7 @@
#include "libavutil/version.h"
#define LIBAVFILTER_VERSION_MAJOR 8
#define LIBAVFILTER_VERSION_MINOR 18
#define LIBAVFILTER_VERSION_MINOR 19
#define LIBAVFILTER_VERSION_MICRO 100

View File

@ -262,6 +262,8 @@ const AVFilter ff_vf_addroi = {
.priv_size = sizeof(AddROIContext),
.priv_class = &addroi_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(addroi_inputs),
FILTER_OUTPUTS(addroi_outputs),
};

View File

@ -188,6 +188,7 @@ const AVFilter ff_vf_setdar = {
.description = NULL_IF_CONFIG_SMALL("Set the frame display aspect ratio."),
.priv_size = sizeof(AspectContext),
.priv_class = &setdar_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_setdar_inputs),
FILTER_OUTPUTS(avfilter_vf_setdar_outputs),
};
@ -250,6 +251,7 @@ const AVFilter ff_vf_setsar = {
.description = NULL_IF_CONFIG_SMALL("Set the pixel sample aspect ratio."),
.priv_size = sizeof(AspectContext),
.priv_class = &setsar_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_setsar_inputs),
FILTER_OUTPUTS(avfilter_vf_setsar_outputs),
};

View File

@ -151,6 +151,6 @@ const AVFilter ff_vf_bbox = {
FILTER_INPUTS(bbox_inputs),
FILTER_OUTPUTS(bbox_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY,
.process_command = ff_filter_process_command,
};

View File

@ -257,5 +257,5 @@ const AVFilter ff_vf_blackdetect = {
FILTER_PIXFMTS_ARRAY(pix_fmts),
.uninit = uninit,
.priv_class = &blackdetect_class,
.flags = AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SLICE_THREADS | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -127,6 +127,7 @@ const AVFilter ff_vf_blackframe = {
.description = NULL_IF_CONFIG_SMALL("Detect frames that are (almost) black."),
.priv_size = sizeof(BlackFrameContext),
.priv_class = &blackframe_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_blackframe_inputs),
FILTER_OUTPUTS(avfilter_vf_blackframe_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -75,6 +75,7 @@ static const AVFilterPad avfilter_vf_copy_outputs[] = {
const AVFilter ff_vf_copy = {
.name = "copy",
.description = NULL_IF_CONFIG_SMALL("Copy the input video unchanged to the output."),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_copy_inputs),
FILTER_OUTPUTS(avfilter_vf_copy_outputs),
FILTER_QUERY_FUNC(query_formats),

View File

@ -273,5 +273,5 @@ const AVFilter ff_vf_cropdetect = {
FILTER_INPUTS(avfilter_vf_cropdetect_inputs),
FILTER_OUTPUTS(avfilter_vf_cropdetect_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -192,5 +192,5 @@ const AVFilter ff_vf_entropy = {
FILTER_OUTPUTS(outputs),
FILTER_PIXFMTS_ARRAY(pixfmts),
.priv_class = &entropy_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -294,6 +294,7 @@ const AVFilter ff_vf_find_rect = {
.priv_size = sizeof(FOCContext),
.init = init,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(foc_inputs),
FILTER_OUTPUTS(foc_outputs),
FILTER_PIXFMTS(AV_PIX_FMT_YUV420P, AV_PIX_FMT_YUVJ420P),

View File

@ -169,6 +169,8 @@ const AVFilter ff_vf_format = {
.priv_size = sizeof(FormatContext),
.priv_class = &format_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_format_inputs),
FILTER_OUTPUTS(avfilter_vf_format_outputs),
@ -203,6 +205,8 @@ const AVFilter ff_vf_noformat = {
.priv_size = sizeof(FormatContext),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_noformat_inputs),
FILTER_OUTPUTS(avfilter_vf_noformat_outputs),

View File

@ -388,6 +388,7 @@ const AVFilter ff_vf_fps = {
.priv_size = sizeof(FPSContext),
.priv_class = &fps_class,
.activate = activate,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_fps_inputs),
FILTER_OUTPUTS(avfilter_vf_fps_outputs),
};

View File

@ -94,5 +94,5 @@ const AVFilter ff_vf_framestep = {
.priv_class = &framestep_class,
FILTER_INPUTS(framestep_inputs),
FILTER_OUTPUTS(framestep_outputs),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -217,6 +217,7 @@ const AVFilter ff_vf_freezedetect = {
.priv_size = sizeof(FreezeDetectContext),
.priv_class = &freezedetect_class,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(freezedetect_inputs),
FILTER_OUTPUTS(freezedetect_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -412,7 +412,9 @@ const AVFilter ff_vf_identity = {
FILTER_INPUTS(identity_inputs),
FILTER_OUTPUTS(identity_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_IDENTITY_FILTER */
@ -434,7 +436,9 @@ const AVFilter ff_vf_msad = {
FILTER_INPUTS(identity_inputs),
FILTER_OUTPUTS(identity_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
};
#endif /* CONFIG_MSAD_FILTER */

View File

@ -436,6 +436,7 @@ const AVFilter ff_vf_idet = {
.priv_size = sizeof(IDETContext),
.init = init,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(idet_inputs),
FILTER_OUTPUTS(idet_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -363,6 +363,7 @@ const AVFilter ff_vf_mestimate = {
.priv_size = sizeof(MEContext),
.priv_class = &mestimate_class,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(mestimate_inputs),
FILTER_OUTPUTS(mestimate_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -43,6 +43,7 @@ static const AVFilterPad avfilter_vf_null_outputs[] = {
const AVFilter ff_vf_null = {
.name = "null",
.description = NULL_IF_CONFIG_SMALL("Pass the source unchanged to the output."),
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_null_inputs),
FILTER_OUTPUTS(avfilter_vf_null_outputs),
};

View File

@ -143,6 +143,7 @@ const AVFilter ff_vf_ocr = {
.priv_class = &ocr_class,
.init = init,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(ocr_inputs),
FILTER_OUTPUTS(ocr_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -466,5 +466,7 @@ const AVFilter ff_vf_psnr = {
FILTER_INPUTS(psnr_inputs),
FILTER_OUTPUTS(psnr_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -198,5 +198,6 @@ const AVFilter ff_vf_qp = {
FILTER_INPUTS(qp_inputs),
FILTER_OUTPUTS(qp_outputs),
.priv_class = &qp_class,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -555,6 +555,8 @@ const AVFilter ff_vf_readeia608 = {
FILTER_OUTPUTS(readeia608_outputs),
FILTER_PIXFMTS_ARRAY(pixel_fmts),
.uninit = uninit,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_GENERIC |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
.process_command = process_command,
};

View File

@ -242,6 +242,7 @@ const AVFilter ff_vf_readvitc = {
.description = NULL_IF_CONFIG_SMALL("Read vertical interval timecode and write it to frame metadata."),
.priv_size = sizeof(ReadVitcContext),
.priv_class = &readvitc_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
FILTER_PIXFMTS_ARRAY(pixel_fmts),

View File

@ -206,6 +206,7 @@ const AVFilter ff_vf_scdet = {
.priv_size = sizeof(SCDetContext),
.priv_class = &scdet_class,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(scdet_inputs),
FILTER_OUTPUTS(scdet_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),

View File

@ -165,6 +165,7 @@ const AVFilter ff_vf_setparams = {
.description = NULL_IF_CONFIG_SMALL("Force field, or color property for the output video frame."),
.priv_size = sizeof(SetParamsContext),
.priv_class = &setparams_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
};
@ -204,6 +205,7 @@ const AVFilter ff_vf_setrange = {
.priv_size = sizeof(SetParamsContext),
.init = init_setrange,
.priv_class = &setrange_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
};
@ -238,6 +240,7 @@ const AVFilter ff_vf_setfield = {
.priv_size = sizeof(SetParamsContext),
.init = init_setfield,
.priv_class = &setfield_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(inputs),
FILTER_OUTPUTS(outputs),
};

View File

@ -678,4 +678,5 @@ const AVFilter ff_vf_showinfo = {
FILTER_OUTPUTS(avfilter_vf_showinfo_outputs),
.priv_size = sizeof(ShowInfoContext),
.priv_class = &showinfo_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -592,5 +592,7 @@ const AVFilter ff_vf_ssim = {
FILTER_INPUTS(ssim_inputs),
FILTER_OUTPUTS(ssim_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -108,6 +108,7 @@ const AVFilter ff_vf_vfrdet = {
.priv_size = sizeof(VFRDETContext),
.init = init,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(vfrdet_inputs),
FILTER_OUTPUTS(vfrdet_outputs),
};

View File

@ -196,6 +196,7 @@ const AVFilter ff_vf_vidstabdetect = {
.priv_size = sizeof(StabData),
.init = init,
.uninit = uninit,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(avfilter_vf_vidstabdetect_inputs),
FILTER_OUTPUTS(avfilter_vf_vidstabdetect_outputs),
FILTER_PIXFMTS_ARRAY(ff_vidstab_pix_fmts),

View File

@ -638,5 +638,7 @@ const AVFilter ff_vf_vif = {
FILTER_INPUTS(vif_inputs),
FILTER_OUTPUTS(vif_outputs),
FILTER_PIXFMTS_ARRAY(pix_fmts),
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL | AVFILTER_FLAG_SLICE_THREADS,
.flags = AVFILTER_FLAG_SUPPORT_TIMELINE_INTERNAL |
AVFILTER_FLAG_SLICE_THREADS |
AVFILTER_FLAG_METADATA_ONLY,
};

View File

@ -363,6 +363,7 @@ const AVFilter ff_vf_vmafmotion = {
.uninit = uninit,
.priv_size = sizeof(VMAFMotionContext),
.priv_class = &vmafmotion_class,
.flags = AVFILTER_FLAG_METADATA_ONLY,
FILTER_INPUTS(vmafmotion_inputs),
FILTER_OUTPUTS(vmafmotion_outputs),
FILTER_QUERY_FUNC(query_formats),