On Mon, 2021-03-22 at 14:43 +0800, wenbin.c...@intel.com wrote:
> From: "Chen,Wenbin" <wenbin.c...@intel.com>
> 
> qsvvpp align the width and height with 16, and that may lead to error.
> For example, when we use qsvvpp to resize frame to 1080p, qsvvpp will
> align frame to 1088 which is different from the height of
> encoder (1080) and this will be treated as resolution change. Now I 
> assign the out_link's w/h to output
> frame to overwrite the w/h got from hw_frame_ctx.
> 
> Signed-off-by: Wenbin Chen <wenbin.c...@intel.com>
> ---
>  libavfilter/qsvvpp.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c
> index f216b3f248..8658a70083 100644
> --- a/libavfilter/qsvvpp.c
> +++ b/libavfilter/qsvvpp.c
> @@ -476,6 +476,9 @@ static QSVFrame *query_frame(QSVVPPContext *s,
> AVFilterLink *outlink)
>              return NULL;
>          }
>  
> +        out_frame->frame->width  = outlink->w;
> +        out_frame->frame->height = outlink->h;

So the above code is needed for both system and video memory, could you factor
the common code out?

> +
>          out_frame->surface = (mfxFrameSurface1 *)out_frame->frame->data[3];
>      } else {
>          /* Get a frame with aligned dimensions.
_______________________________________________
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".

Reply via email to