decoder: hevc: Fix decoding of stream when it has temporal sublayers
authorSreerenj Balachandran <sreerenj.balachandran@intel.com>
Thu, 6 Aug 2015 01:01:24 +0000 (04:01 +0300)
committerSreerenj Balachandran <sreerenj.balachandran@intel.com>
Thu, 6 Aug 2015 01:01:24 +0000 (04:01 +0300)
We are calculating the dpb size based on max_dec_pic_buffering.
But if there are more than one temporal sublayers, we are supposed
to use the max_dec_pic_buffering[max_sub_layers_minus] for dpb
size calculation (Assuming HighestTid as max_sub_layers_minus).

Sample streams: TSCL_A_VIDYO_5.bin, TSCL_B_VIDYO_4.bin

https://bugzilla.gnome.org/show_bug.cgi?id=753226

Signed-off-by: Sreerenj Balachandran <sreerenj.balachandran@intel.com>
gst-libs/gst/vaapi/gstvaapidecoder_h265.c

index 4767fbc076df1a1da27e02778531f3ab1a383c13..50a0125956d6b80990ba8a2ebc9b9bafffaf1db4 100644 (file)
@@ -604,8 +604,11 @@ get_max_dec_frame_buffering (GstH265SPS * sps)
         sps->profile_tier_level.level_idc);
     max_dec_frame_buffering = 16;
   }
+
   /* Fixme: Add limit check based on Annex A */
-  return MAX (1, (sps->max_dec_pic_buffering_minus1[0] + 1));
+
+  /* Assuming HighestTid as sps_max_sub_layers_minus1 */
+  return MAX (1, (sps->max_dec_pic_buffering_minus1[sps->max_sub_layers_minus1] + 1));
 }
 
 static void