summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDave Airlie <airlied@redhat.com>2023-02-27 11:57:54 +1000
committerLynne <dev@lynne.ee>2023-05-29 00:41:58 +0200
commite49b8b48cd4362392d28c7e0dcf04744aaf1ace7 (patch)
tree2590d48ac18dbca761d192b91c42d9685e978ad3
parent36c16a06b2e31a39c236d724c2fd5d457f02493a (diff)
av1: set skip mode frames properly
There are circumstances where the flag isn't set but the skip mode frames are. So don't use the inferred bit which has other inputs when deciding to pass the skip mode frames to the device. This fixes some decoding bugs on intel av1
-rw-r--r--libavcodec/av1dec.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/av1dec.c b/libavcodec/av1dec.c
index 7e423427b2..47fa919e62 100644
--- a/libavcodec/av1dec.c
+++ b/libavcodec/av1dec.c
@@ -270,7 +270,9 @@ static void skip_mode_params(AV1DecContext *s)
int second_forward_idx, second_forward_hint;
int ref_hint, dist, i;
- if (!header->skip_mode_present)
+ if (header->frame_type == AV1_FRAME_KEY ||
+ header->frame_type == AV1_FRAME_INTRA_ONLY ||
+ !header->reference_select || !seq->enable_order_hint)
return;
forward_idx = -1;