On Tue, May 28, 2019 at 8:57 AM Yan Wang <[email protected]> wrote: > > When the format change, the VAAPI context cannot be destroyed. > Otherwise, the reference frame surface will lost. > > Signed-off-by: Yan Wang <[email protected]> > --- > 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 [email protected] https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email [email protected] with subject "unsubscribe".
