Re: [FFmpeg-devel] [PATCH] lavf/qsv_scale: fix green stripe at the bottom
On Tue, 2020-12-01 at 22:40 +, Artem Galin wrote: > Explicitly set region of interest for input surfaces. > > Signed-off-by: Artem Galin > --- > libavfilter/vf_scale_qsv.c | 9 ++--- > 1 file changed, 6 insertions(+), 3 deletions(-) > > diff --git a/libavfilter/vf_scale_qsv.c b/libavfilter/vf_scale_qsv.c > index 5064dcbb60..321adbbb18 100644 > --- a/libavfilter/vf_scale_qsv.c > +++ b/libavfilter/vf_scale_qsv.c > @@ -274,7 +274,7 @@ static const mfxHandleType handle_types[] = { > MFX_HANDLE_D3D11_DEVICE, > }; > > -static int init_out_session(AVFilterContext *ctx) > +static int init_out_session(AVFilterContext *ctx, int in_width, int > in_height) > { > > QSVScaleContext *s = ctx->priv; > @@ -385,8 +385,11 @@ static int init_out_session(AVFilterContext *ctx) > sizeof(*s->mem_ids_in)); > if (!s->mem_ids_in) > return AVERROR(ENOMEM); > -for (i = 0; i < in_frames_hwctx->nb_surfaces; i++) > +for (i = 0; i < in_frames_hwctx->nb_surfaces; i++) { > s->mem_ids_in[i] = in_frames_hwctx->surfaces[i].Data.MemId; > +in_frames_hwctx->surfaces[i].Info.CropW = in_width; > +in_frames_hwctx->surfaces[i].Info.CropH = in_height; > +} > s->nb_mem_ids_in = in_frames_hwctx->nb_surfaces; > > s->mem_ids_out = av_mallocz_array(out_frames_hwctx->nb_surfaces, > @@ -450,7 +453,7 @@ static int init_scale_session(AVFilterContext *ctx, int > in_width, int in_height, > if (ret < 0) > return ret; > > -ret = init_out_session(ctx); > +ret = init_out_session(ctx, in_width, in_height); > if (ret < 0) > return ret; LGTM, thanks! > ___ 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".
[FFmpeg-devel] [PATCH] lavf/qsv_scale: fix green stripe at the bottom
Explicitly set region of interest for input surfaces. Signed-off-by: Artem Galin --- libavfilter/vf_scale_qsv.c | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_scale_qsv.c b/libavfilter/vf_scale_qsv.c index 5064dcbb60..321adbbb18 100644 --- a/libavfilter/vf_scale_qsv.c +++ b/libavfilter/vf_scale_qsv.c @@ -274,7 +274,7 @@ static const mfxHandleType handle_types[] = { MFX_HANDLE_D3D11_DEVICE, }; -static int init_out_session(AVFilterContext *ctx) +static int init_out_session(AVFilterContext *ctx, int in_width, int in_height) { QSVScaleContext *s = ctx->priv; @@ -385,8 +385,11 @@ static int init_out_session(AVFilterContext *ctx) sizeof(*s->mem_ids_in)); if (!s->mem_ids_in) return AVERROR(ENOMEM); -for (i = 0; i < in_frames_hwctx->nb_surfaces; i++) +for (i = 0; i < in_frames_hwctx->nb_surfaces; i++) { s->mem_ids_in[i] = in_frames_hwctx->surfaces[i].Data.MemId; +in_frames_hwctx->surfaces[i].Info.CropW = in_width; +in_frames_hwctx->surfaces[i].Info.CropH = in_height; +} s->nb_mem_ids_in = in_frames_hwctx->nb_surfaces; s->mem_ids_out = av_mallocz_array(out_frames_hwctx->nb_surfaces, @@ -450,7 +453,7 @@ static int init_scale_session(AVFilterContext *ctx, int in_width, int in_height, if (ret < 0) return ret; -ret = init_out_session(ctx); +ret = init_out_session(ctx, in_width, in_height); if (ret < 0) return ret; -- 2.26.2 ___ 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".