Commit fcd42b7d authored by Sreerenj Balachandran's avatar Sreerenj Balachandran Committed by Sebastian Dröge

codecparsers: h265: Fix the selection of Active Ref Pic Set

If short_term_ref_pic_set_sps_flag is FALSE, the ShortTermRefPicSet
structure is supposed to derive from slice header. Which means,
CurrRpsIdx is equal to num_short_term_ref_pic_sets. But the number
of refpicsets communicated via sps header is only num_short_term_ref_pic_sets - 1.
And we are using slice_header structure to reference the last entry, which is
ShortTermRefPicSet[num_short_term_ref_pic_sets].

https://bugzilla.gnome.org/show_bug.cgi?id=754834
parent 81435c88
......@@ -1985,7 +1985,6 @@ gst_h265_parser_parse_slice_hdr (GstH265Parser * parser,
GstH265PPS *pps;
GstH265SPS *sps;
guint i;
guint CurrRpsIdx = 0;
GstH265ShortTermRefPicSet *stRPS = NULL;
guint32 UsedByCurrPicLt[16];
guint32 PicSizeInCtbsY;
......@@ -2150,10 +2149,10 @@ gst_h265_parser_parse_slice_hdr (GstH265Parser * parser,
/* calculate NumPocTotalCurr */
if (slice->short_term_ref_pic_set_sps_flag)
CurrRpsIdx = slice->short_term_ref_pic_set_idx;
stRPS = &sps->short_term_ref_pic_set[slice->short_term_ref_pic_set_idx];
else
CurrRpsIdx = sps->num_short_term_ref_pic_sets;
stRPS = &sps->short_term_ref_pic_set[CurrRpsIdx];
stRPS = &slice->short_term_ref_pic_sets;
for (i = 0; i < stRPS->NumNegativePics; i++)
if (stRPS->UsedByCurrPicS0[i])
NumPocTotalCurr++;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment