aboutsummaryrefslogtreecommitdiffstats
path: root/libavcodec
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2022-04-07 15:27:57 -0300
committerJames Almer <jamrial@gmail.com>2022-04-07 15:33:19 -0300
commit0d487be837872df255ef174399b9140eeaa9152a (patch)
treecde55826eb74dd303f24f33306ebee5746624c2f /libavcodec
parent9687cae2b468e09e35df4cea92cc2e6a0e6c93b3 (diff)
downloadffmpeg-0d487be837872df255ef174399b9140eeaa9152a.tar.gz
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 <jamrial@gmail.com> (cherry picked from commit 3e186148ca9ac0c47cec253fdea62b48c9feadd2)
Diffstat (limited to 'libavcodec')
-rw-r--r--libavcodec/libdav1d.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/libavcodec/libdav1d.c b/libavcodec/libdav1d.c
index 872e60e000..765c1a4bc4 100644
--- a/libavcodec/libdav1d.c
+++ b/libavcodec/libdav1d.c
@@ -381,7 +381,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);