aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2016-09-23 11:42:16 -0400
committerLeo Liu <[email protected]>2016-10-04 11:09:59 -0400
commitc50b68e6a882c95b58f46fba87c8f3531a2913d1 (patch)
tree78e352b942f33965488a201901f6d6f69b609304 /src
parent091aae0265caa82bc975e18946fd091e91b72602 (diff)
st/omx/dec/h265: set the default reference picture set for reference
It will fix the corruption for frame, that only has one stort term ref picture set, we set NULL rps for this case previously, causing taking incorrect reference. Instead we should take that only short term set as reference Signed-off-by: Leo Liu <[email protected]> Reviewed-by: Emil Velikov <[email protected]>
Diffstat (limited to 'src')
-rw-r--r--src/gallium/state_trackers/omx/vid_dec_h265.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/gallium/state_trackers/omx/vid_dec_h265.c b/src/gallium/state_trackers/omx/vid_dec_h265.c
index f3bf66f783c..acd225d9921 100644
--- a/src/gallium/state_trackers/omx/vid_dec_h265.c
+++ b/src/gallium/state_trackers/omx/vid_dec_h265.c
@@ -656,7 +656,7 @@ static void slice_header(vid_dec_PrivateType *priv, struct vl_rbsp *rbsp,
struct pipe_h265_sps *sps;
bool first_slice_segment_in_pic_flag;
bool dependent_slice_segment_flag = false;
- struct ref_pic_set *rps = NULL;
+ struct ref_pic_set *rps;
unsigned poc_lsb, poc_msb, slice_prev_poc;
unsigned max_poc_lsb, prev_poc_lsb, prev_poc_msb;
unsigned num_st_rps;
@@ -789,7 +789,9 @@ static void slice_header(vid_dec_PrivateType *priv, struct vl_rbsp *rbsp,
rps = (struct ref_pic_set *)
priv->codec_data.h265.ref_pic_set_list + idx;
- }
+ } else
+ rps = (struct ref_pic_set *)
+ priv->codec_data.h265.ref_pic_set_list;
if (is_bla_picture(nal_unit_type)) {
rps->num_neg_pics = 0;