On Tue, May 28, 2019 at 8:57 AM Yan Wang <yan.w...@linux.intel.com> wrote:
>
> When the format change, the VAAPI context cannot be destroyed.
> Otherwise, the reference frame surface will lost.
>
> Signed-off-by: Yan Wang <yan.w...@linux.intel.com>
> ---
>  libavcodec/decode.c | 6 ++++++
>  1 file changed, 6 insertions(+)
>
> diff --git a/libavcodec/decode.c b/libavcodec/decode.c
> index 6c31166ec2..3eda1dc42c 100644
> --- a/libavcodec/decode.c
> +++ b/libavcodec/decode.c
> @@ -1397,7 +1397,9 @@ int ff_get_format(AVCodecContext *avctx, const enum 
> AVPixelFormat *fmt)
>
>      for (;;) {
>          // Remove the previous hwaccel, if there was one.
> +#if !CONFIG_VP9_VAAPI_HWACCEL
>          hwaccel_uninit(avctx);
> +#endif
>
>          user_choice = avctx->get_format(avctx, choices);
>          if (user_choice == AV_PIX_FMT_NONE) {
> @@ -1479,7 +1481,11 @@ int ff_get_format(AVCodecContext *avctx, const enum 
> AVPixelFormat *fmt)
>                     "missing configuration.\n", desc->name);
>              goto try_again;
>          }
> +#if CONFIG_VP9_VAAPI_HWACCEL
> +        if (hw_config->hwaccel && !avctx->hwaccel) {
> +#else
>          if (hw_config->hwaccel) {
> +#endif
>              av_log(avctx, AV_LOG_DEBUG, "Format %s requires hwaccel "
>                     "initialisation.\n", desc->name);
>              err = hwaccel_init(avctx, hw_config);
> --
> 2.17.2
>

This change feels just wrong. First of all, preprocessors are
absolutely the wrong way to go about this.
Secondly, if the frames need to change size, or surface format, then
this absolutely needs to be called, doesn't it?

- Hendrik
_______________________________________________
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