libs: decoder: av1: Clean the film_grain_info field.
authorHe Junyan <junyan.he@intel.com>
Tue, 29 Jun 2021 07:09:13 +0000 (15:09 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Thu, 1 Jul 2021 11:14:15 +0000 (11:14 +0000)
We need to clean all film_grain_info fields when the film grain
feature is not enabled. It may have random data because the picture
parameter buffer is not cleaned.

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

gst-libs/gst/vaapi/gstvaapidecoder_av1.c

index a4faf5d..eff62e6 100644 (file)
@@ -372,9 +372,10 @@ av1_fill_film_grain_info (VADecPictureParameterBufferAV1 * pic_param,
 {
   guint i;
 
-  if (!frame_header->film_grain_params.apply_grain)
+  if (!frame_header->film_grain_params.apply_grain) {
+    memset (&pic_param->film_grain_info, 0, sizeof (VAFilmGrainStructAV1));
     return;
-
+  }
 #define COPY_FILM_GRAIN_FIELD(FP) \
     pic_param->SUB_FIELD.FP = (frame_header)->film_grain_params.FP
 #define SUB_FIELD film_grain_info.film_grain_info_fields.bits