> From: ffmpeg-devel [mailto:ffmpeg-devel-boun...@ffmpeg.org] On Behalf > Of Linjie Fu > Sent: Friday, July 12, 2019 9:19 PM > To: ffmpeg-devel@ffmpeg.org > Cc: Fu, Linjie <linjie...@intel.com> > Subject: [FFmpeg-devel] [PATCH] fftools/ffmpeg_filter: use -reinit_filter to > disable/enable auto scale > > Currently, ffmpeg inserts scale filter in the filter graph to force the whole > decoded stream to scale into the same size with the first frame. It's not > quite > make sense in resolution changing cases if user wants the rawvideo without > any scale. > > Option -reinit_filter 0 could be used to realize similar function, but it > fails > when ifilter has hw_frame_ctx. > > Add auto_scale flag set by -reinit_filter to indicate whether auto inserting > the scale filter in the filter graph. > > Signed-off-by: Linjie Fu <linjie...@intel.com> > --- > Request for comments. > As we have discussed in the rawdump filter patch, here is a simpler solution > based on -reinit_filter, and reuse this option.(maybe it's not easy to be > accepted to add a separate option) > > fftools/ffmpeg.c | 2 +- > fftools/ffmpeg.h | 1 + > fftools/ffmpeg_filter.c | 2 +- > 3 files changed, 3 insertions(+), 2 deletions(-) > > diff --git a/fftools/ffmpeg.c b/fftools/ffmpeg.c index > 01f04103cf..5305b87bd4 100644 > --- a/fftools/ffmpeg.c > +++ b/fftools/ffmpeg.c > @@ -2133,6 +2133,7 @@ static int ifilter_send_frame(InputFilter *ifilter, > AVFrame *frame) > > /* determine if the parameters for this input changed */ > need_reinit = ifilter->format != frame->format; > + fg->auto_scale = ifilter->ist->reinit_filters; > > switch (ifilter->ist->st->codecpar->codec_type) { > case AVMEDIA_TYPE_AUDIO: > @@ -2145,7 +2146,6 @@ static int ifilter_send_frame(InputFilter *ifilter, > AVFrame *frame) > ifilter->height != frame->height; > break; > } > - > if (!ifilter->ist->reinit_filters && fg->graph) > need_reinit = 0; > > diff --git a/fftools/ffmpeg.h b/fftools/ffmpeg.h index > 7b6f802082..0c289b439f 100644 > --- a/fftools/ffmpeg.h > +++ b/fftools/ffmpeg.h > @@ -285,6 +285,7 @@ typedef struct FilterGraph { > > AVFilterGraph *graph; > int reconfiguration; > + int auto_scale; > > InputFilter **inputs; > int nb_inputs; > diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index > 72838de1e2..856ba48de7 100644 > --- a/fftools/ffmpeg_filter.c > +++ b/fftools/ffmpeg_filter.c > @@ -469,7 +469,7 @@ static int configure_output_video_filter(FilterGraph > *fg, OutputFilter *ofilter, > if (ret < 0) > return ret; > > - if (ofilter->width || ofilter->height) { > + if ((ofilter->width || ofilter->height) && fg->auto_scale) { > char args[255]; > AVFilterContext *filter; > AVDictionaryEntry *e = NULL; > -- > 2.17.1
Is there any big difference with https://patchwork.ffmpeg.org/patch/8173/, especially for the purpose of disabling scaling for HWACCEL? _______________________________________________ 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".