nal_reader_skip (&nr, 1);
READ_UE_MAX (&nr, slice->type, 63);
-
if (pps->output_flag_present_flag)
READ_UINT8 (&nr, slice->pic_output_flag, 1);
if (sps->separate_colour_plane_flag == 1)
if (sps->long_term_ref_pics_present_flag) {
guint32 limit;
+ guint pos = nal_reader_get_pos (&nr);
+ guint epb_pos = nal_reader_get_epb_count (&nr);
if (sps->num_long_term_ref_pics_sps > 0)
READ_UE_MAX (&nr, slice->num_long_term_sps,
if (slice->delta_poc_msb_present_flag[i])
READ_UE (&nr, slice->delta_poc_msb_cycle_lt[i]);
}
+
+ slice->long_term_ref_pic_set_size =
+ (nal_reader_get_pos (&nr) - pos) -
+ (8 * (nal_reader_get_epb_count (&nr) - epb_pos));
}
if (sps->temporal_mvp_enabled_flag)
READ_UINT8 (&nr, slice->temporal_mvp_enabled_flag, 1);
* in this slice_header\()
* @short_term_ref_pic_set_size: the calculated size of short_term_ref_pic_set\()
* in bits. (Since: 1.18)
+ * @long_term_ref_pic_set_size: the calculated size of the branch
+ * `if( long_term_ref_pics_present_flag )` `inside slice_segment_header()` syntax
+ * in bits. (Since: 1.22)
*/
struct _GstH265SliceHdr
{
/* Size of short_term_ref_pic_set() after emulation preventation bytes are
* removed, in bits */
guint short_term_ref_pic_set_size;
+
+ /**
+ * _GstH265SliceHdr.long_term_ref_pic_set_size:
+ *
+ * The calculated size of the branch `if( long_term_ref_pics_present_flag )`
+ * inside `slice_segment_header()` syntax in bits.
+ *
+ * Since: 1.22
+ */
+ guint long_term_ref_pic_set_size;
};
struct _GstH265PicTiming