v4l2codecs: vp9: Fix reset_frame_context parameter
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Fri, 18 Feb 2022 21:23:09 +0000 (16:23 -0500)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 18 Feb 2022 23:55:59 +0000 (23:55 +0000)
It was assumed that the kernel parameters would match with the bitstream value
but instead the author when with another set of value. Surprisingly, this
makes no difference with the resulting fluster score.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1748>

subprojects/gst-plugins-bad/sys/v4l2codecs/gstv4l2codecvp9dec.c

index 1067a8d..924d27b 100644 (file)
@@ -308,7 +308,6 @@ gst_v4l2_codec_vp9_dec_fill_dec_params (GstV4l2CodecVp9Dec * self,
     .compressed_header_size = h->header_size_in_bytes,
     .uncompressed_header_size = h->frame_header_length_in_bytes,
     .profile = h->profile,
-    .reset_frame_context = h->reset_frame_context,
     .frame_context_idx = h->frame_context_idx,
     .bit_depth = self->bit_depth,
     .interpolation_filter = h->interpolation_filter,
@@ -350,12 +349,26 @@ gst_v4l2_codec_vp9_dec_fill_dec_params (GstV4l2CodecVp9Dec * self,
   };
   /* *INDENT-ON* */
 
+  switch (h->reset_frame_context) {
+    case 0:
+    case 1:
+      self->v4l2_vp9_frame.reset_frame_context = V4L2_VP9_RESET_FRAME_CTX_NONE;
+      break;
+    case 2:
+      self->v4l2_vp9_frame.reset_frame_context = V4L2_VP9_RESET_FRAME_CTX_SPEC;
+      break;
+    case 3:
+      self->v4l2_vp9_frame.reset_frame_context = V4L2_VP9_RESET_FRAME_CTX_ALL;
+      break;
+    default:
+      break;
+  }
+
   gst_v4l2_codecs_vp9_dec_fill_refs (self, h, reference_frames);
   gst_v4l2_codec_vp9_dec_fill_lf_params (self, &h->loop_filter_params);
   gst_v4l2_codec_vp9_dec_fill_seg_params (self, &h->segmentation_params);
 }
 
-
 static gboolean
 gst_v4l2_codec_vp9_dec_open (GstVideoDecoder * decoder)
 {