So that it will pass correct size to width(height)_in_samples in uvd message buffer.
Signed-off-by: Leo Liu <leo....@amd.com> --- src/gallium/state_trackers/omx/vid_dec.h | 2 ++ src/gallium/state_trackers/omx/vid_dec_h265.c | 13 ++++++------- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/gallium/state_trackers/omx/vid_dec.h b/src/gallium/state_trackers/omx/vid_dec.h index ebb35a3..35a5758 100644 --- a/src/gallium/state_trackers/omx/vid_dec.h +++ b/src/gallium/state_trackers/omx/vid_dec.h @@ -100,6 +100,8 @@ DERIVEDCLASS(vid_dec_PrivateType, omx_base_filter_PrivateType) struct { \ unsigned temporal_id; \ unsigned level_idc; \ + unsigned pic_width_in_luma_samples; \ + unsigned pic_height_in_luma_samples; \ bool IdrPicFlag; \ int slice_prev_poc; \ void *ref_pic_set_list; \ diff --git a/src/gallium/state_trackers/omx/vid_dec_h265.c b/src/gallium/state_trackers/omx/vid_dec_h265.c index 2396da3..fc8bf3d 100644 --- a/src/gallium/state_trackers/omx/vid_dec_h265.c +++ b/src/gallium/state_trackers/omx/vid_dec_h265.c @@ -458,9 +458,11 @@ static void seq_parameter_set(vid_dec_PrivateType *priv, struct vl_rbsp *rbsp) if (sps->chroma_format_idc == 3) sps->separate_colour_plane_flag = vl_rbsp_u(rbsp, 1); - sps->pic_width_in_luma_samples = vl_rbsp_ue(rbsp); + priv->codec_data.h265.pic_width_in_luma_samples = + sps->pic_width_in_luma_samples = vl_rbsp_ue(rbsp); - sps->pic_height_in_luma_samples = vl_rbsp_ue(rbsp); + priv->codec_data.h265.pic_height_in_luma_samples = + sps->pic_height_in_luma_samples = vl_rbsp_ue(rbsp); /* conformance_window_flag */ if (vl_rbsp_u(rbsp, 1)) { @@ -641,16 +643,13 @@ static void vid_dec_h265_BeginFrame(vid_dec_PrivateType *priv) if (!priv->codec) { struct pipe_video_codec templat = {}; - omx_base_video_PortType *port; - port = (omx_base_video_PortType *) - priv->ports[OMX_BASE_FILTER_INPUTPORT_INDEX]; templat.profile = priv->profile; templat.entrypoint = PIPE_VIDEO_ENTRYPOINT_BITSTREAM; templat.chroma_format = PIPE_VIDEO_CHROMA_FORMAT_420; templat.expect_chunked_decode = true; - templat.width = align(port->sPortParam.format.video.nFrameWidth, 4); - templat.height = align(port->sPortParam.format.video.nFrameHeight, 4); + 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; priv->codec = priv->pipe->create_video_codec(priv->pipe, &templat); } -- 2.7.4 _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev