You've already forked FFmpeg
							
							
				mirror of
				https://github.com/FFmpeg/FFmpeg.git
				synced 2025-10-30 23:18:11 +02:00 
			
		
		
		
	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:
		| @@ -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 | ||||
|  | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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, | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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 | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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 | ||||
|  | ||||
|  | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
|  | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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 */ | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
| @@ -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, | ||||
| }; | ||||
|   | ||||
| @@ -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), | ||||
|   | ||||
		Reference in New Issue
	
	Block a user