summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/gallium/drivers/radeon/radeon_vcn_dec.c12
-rw-r--r--src/gallium/frontends/omx/bellagio/vid_dec_h265.c2
2 files changed, 12 insertions, 2 deletions
diff --git a/src/gallium/drivers/radeon/radeon_vcn_dec.c b/src/gallium/drivers/radeon/radeon_vcn_dec.c
index f80758bc756..a119eef9628 100644
--- a/src/gallium/drivers/radeon/radeon_vcn_dec.c
+++ b/src/gallium/drivers/radeon/radeon_vcn_dec.c
@@ -460,6 +460,14 @@ static rvcn_dec_message_hevc_t get_h265_msg(struct radeon_decoder *dec,
}
}
+ if (dec->dpb_type == DPB_DYNAMIC_TIER_2) {
+ dec->ref_codec.bts = (pic->base.profile == PIPE_VIDEO_PROFILE_HEVC_MAIN_10) ?
+ CODEC_10_BITS : CODEC_8_BITS;
+ dec->ref_codec.index = result.curr_idx;
+ dec->ref_codec.ref_size = 15;
+ memset(dec->ref_codec.ref_list, 0x7f, sizeof(dec->ref_codec.ref_list));
+ memcpy(dec->ref_codec.ref_list, result.ref_pic_list, sizeof(result.ref_pic_list));
+ }
return result;
}
@@ -2563,7 +2571,9 @@ struct pipe_video_codec *radeon_create_decoder(struct pipe_context *context,
}
if (sctx->family >= CHIP_SIENNA_CICHLID &&
- (stream_type == RDECODE_CODEC_VP9 || stream_type == RDECODE_CODEC_AV1 ||
+ (stream_type == RDECODE_CODEC_VP9 ||
+ stream_type == RDECODE_CODEC_AV1 ||
+ ((stream_type == RDECODE_CODEC_H265) && templ->expect_chunked_decode) ||
((stream_type == RDECODE_CODEC_H264_PERF) && templ->expect_chunked_decode)))
dec->dpb_type = DPB_DYNAMIC_TIER_2;
else if (sctx->family <= CHIP_NAVI14 && stream_type == RDECODE_CODEC_VP9)
diff --git a/src/gallium/frontends/omx/bellagio/vid_dec_h265.c b/src/gallium/frontends/omx/bellagio/vid_dec_h265.c
index 12bb97d3d90..4b6117cc2f1 100644
--- a/src/gallium/frontends/omx/bellagio/vid_dec_h265.c
+++ b/src/gallium/frontends/omx/bellagio/vid_dec_h265.c
@@ -623,7 +623,7 @@ static void vid_dec_h265_BeginFrame(vid_dec_PrivateType *priv)
templat.profile = priv->profile;
templat.entrypoint = PIPE_VIDEO_ENTRYPOINT_BITSTREAM;
templat.chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420;
- templat.expect_chunked_decode = true;
+ templat.expect_chunked_decode = false;
templat.width = priv->codec_data.h265.pic_width_in_luma_samples;
templat.height = priv->codec_data.h265.pic_height_in_luma_samples;
templat.level = priv->codec_data.h265.level_idc;