On Sun, 24 Mar 2024, Poorva wrote:
From 0874a55ad33bb4df2789cbafc5247c0ae3d97e6a Mon Sep 17 00:00:00 2001 From: PoorvaGaikar <pbgaikar_...@el.vjti.ac.in> Date: Sat, 9 Mar 2024 00:27:25 +0530 Subject: [PATCH v2] avfilter/f_select.c: add support for iw and ih constants
You should mention the fixed ticket number in the commit message.
--- doc/filters.texi | 6 ++++++ libavfilter/f_select.c | 14 ++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/doc/filters.texi b/doc/filters.texi index 913365671d..e73dc9c1bf 100644 --- a/doc/filters.texi +++ b/doc/filters.texi @@ -30737,6 +30737,12 @@ missing. That basically means that an input frame is selected if its pts is within the interval set by the concat demuxer. +@item iw @emph{(video only)} +Represents the width of the input video frame + +@item ih @emph{(video only)} +Represents the height of the input video frame + @end table The default value of the select expression is "1". diff --git a/libavfilter/f_select.c b/libavfilter/f_select.c index 9b330a0673..ccfe915ee1 100644 --- a/libavfilter/f_select.c +++ b/libavfilter/f_select.c @@ -90,6 +90,9 @@ static const char *const var_names[] = { "concatdec_select", ///< frame is within the interval set by the concat demuxer + "ih", ///< ih: Represents the height of the input video frame. + "iw", ///< iw: Represents the width of the input video frame. + NULL }; @@ -144,6 +147,9 @@ enum var_name { VAR_CONCATDEC_SELECT, + VAR_IH, + VAR_IW, + VAR_VARS_NB }; @@ -264,6 +270,9 @@ static int config_input(AVFilterLink *inlink) select->var_values[VAR_CONSUMED_SAMPLES_N] = NAN; select->var_values[VAR_SAMPLES_N] = NAN; + select->var_values[VAR_IH] = NAN; + select->var_values[VAR_IW] = NAN; + select->var_values[VAR_SAMPLE_RATE] = inlink->type == AVMEDIA_TYPE_AUDIO ? inlink->sample_rate : NAN; @@ -370,6 +379,10 @@ FF_ENABLE_DEPRECATION_WARNINGS } break; } + if (inlink->type == AVMEDIA_TYPE_VIDEO){ + select->var_values[VAR_IH] = frame->height; + select->var_values[VAR_IW] = frame->width; + }
There is a switch(inlink->type) just above this, so you should put these there to the corresponding case AVMEDIA_TYPE_VIDEO, and not create a new block.
select->select = res = av_expr_eval(select->expr, select->var_values, NULL); av_log(inlink->dst, AV_LOG_DEBUG, @@ -546,3 +559,4 @@ const AVFilter ff_vf_select = { .flags = AVFILTER_FLAG_DYNAMIC_OUTPUTS | AVFILTER_FLAG_METADATA_ONLY, }; #endif /* CONFIG_SELECT_FILTER */ +
This is still an uneeded newline. Regards, Marton _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".