diff options
author | Leo Liu <leo.liu@amd.com> | 2015-02-23 13:50:06 -0500 |
---|---|---|
committer | Emil Velikov <emil.l.velikov@gmail.com> | 2015-03-04 01:51:36 +0000 |
commit | 2a9e9b5aeb378f218b147fc6303351ba1d9208f5 (patch) | |
tree | d6235ad136c85b3b5729c7a1e6b704250681d046 | |
parent | 120792fa04e67da1042583cb4dfbe901bad618d9 (diff) | |
download | mesa-2a9e9b5aeb378f218b147fc6303351ba1d9208f5.tar.gz |
st/omx/dec/h264: fix picture out-of-order with poc type 0 v2
poc counter should be reset with IDR frame,
otherwise there would be a re-order issue with
frames before and after IDR
v2: add commit message
Signed-off-by: Leo Liu <leo.liu@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Cc: "10.4 10.5" <mesa-stable@lists.freedesktop.org>
(cherry picked from commit 9c7b343bc0a6aa6065055cbc1c0a891ccc445984)
-rw-r--r-- | src/gallium/state_trackers/omx/vid_dec_h264.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/gallium/state_trackers/omx/vid_dec_h264.c b/src/gallium/state_trackers/omx/vid_dec_h264.c index 7b57785c28f..e01e8739740 100644 --- a/src/gallium/state_trackers/omx/vid_dec_h264.c +++ b/src/gallium/state_trackers/omx/vid_dec_h264.c @@ -706,6 +706,11 @@ static void slice_header(vid_dec_PrivateType *priv, struct vl_rbsp *rbsp, if (pic_order_cnt_lsb != priv->codec_data.h264.pic_order_cnt_lsb) vid_dec_h264_EndFrame(priv); + if (IdrPicFlag) { + priv->codec_data.h264.pic_order_cnt_msb = 0; + priv->codec_data.h264.pic_order_cnt_lsb = 0; + } + if ((pic_order_cnt_lsb < priv->codec_data.h264.pic_order_cnt_lsb) && (priv->codec_data.h264.pic_order_cnt_lsb - pic_order_cnt_lsb) >= (max_pic_order_cnt_lsb / 2)) pic_order_cnt_msb = priv->codec_data.h264.pic_order_cnt_msb + max_pic_order_cnt_lsb; |