summaryrefslogtreecommitdiff
path: root/libavcodec/av1dec.c
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 /libavcodec/av1dec.c
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
Diffstat (limited to 'libavcodec/av1dec.c')
-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;