From 3e186148ca9ac0c47cec253fdea62b48c9feadd2 Mon Sep 17 00:00:00 2001 From: James Almer Date: Thu, 7 Apr 2022 15:27:57 -0300 Subject: [PATCH] avcodec/libdav1d: don't depend on the event flags API to init sequence params the first time A bug was found in dav1d <= 1.0.0 where the event flag New Sequence Header would not be signaled for some samples using delayed random access points. It has since been fixed, but nonetheless it's best to ensure the AVCodecContext is filled with parameters when parsing the first frame, regardless of what events were signaled. Fixes ticket #9694. Signed-off-by: James Almer --- libavcodec/libdav1d.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c index 64014123ce..0a46cf2264 100644 --- a/libavcodec/libdav1d.c +++ b/libavcodec/libdav1d.c @@ -382,7 +382,8 @@ static int libdav1d_receive_frame(AVCodecContext *c, AVFrame *frame) #if FF_DAV1D_VERSION_AT_LEAST(5,1) dav1d_get_event_flags(dav1d->c, &event_flags); - if (event_flags & DAV1D_EVENT_FLAG_NEW_SEQUENCE) + if (c->pix_fmt == AV_PIX_FMT_NONE || + event_flags & DAV1D_EVENT_FLAG_NEW_SEQUENCE) #endif libdav1d_init_params(c, p->seq_hdr); res = ff_decode_frame_props(c, frame);