Pix fmt with hwaccel flag may not be chosen in format probing, in this case avctx->hwaccel will not be inited.
Signed-off-by: Fei Wang <[email protected]> --- libavcodec/av1dec.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c index 0bb04a3e44..cdcc618013 100644 --- a/libavcodec/av1dec.c +++ b/libavcodec/av1dec.c @@ -251,6 +251,7 @@ static int get_pixel_format(AVCodecContext *avctx) { AV1DecContext *s = avctx->priv_data; const AV1RawSequenceHeader *seq = s->raw_seq; + const AVPixFmtDescriptor *desc; uint8_t bit_depth; int ret; enum AVPixelFormat pix_fmt = AV_PIX_FMT_NONE; @@ -327,10 +328,13 @@ static int get_pixel_format(AVCodecContext *avctx) * Since now the av1 decoder doesn't support native decode, if it will be * implemented in the future, need remove this check. */ - if (!avctx->hwaccel) { - av_log(avctx, AV_LOG_ERROR, "Your platform doesn't suppport" - " hardware accelerated AV1 decoding.\n"); - return AVERROR(ENOSYS); + desc = av_pix_fmt_desc_get(ret); + if (desc && (desc->flags & AV_PIX_FMT_FLAG_HWACCEL)) { + if (!avctx->hwaccel) { + av_log(avctx, AV_LOG_ERROR, "Your platform doesn't suppport" + " hardware accelerated AV1 decoding.\n"); + return AVERROR(ENOSYS); + } } avctx->pix_fmt = ret; -- 2.17.1 _______________________________________________ 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".
