Mesa (master): st/omx/dec/h265: fix the skip for before and after list

Leo Liu leoliu at kemper.freedesktop.org
Tue Oct 4 15:41:55 UTC 2016


Module: Mesa
Branch: master
Commit: ffb863fd2c8a5d32001575b09d96dbce4983a5ce
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=ffb863fd2c8a5d32001575b09d96dbce4983a5ce

Author: Leo Liu <leo.liu at amd.com>
Date:   Fri Sep 23 12:05:16 2016 -0400

st/omx/dec/h265: fix the skip for before and after list

For reference picture sets, there are cases that rps will not always
be used. Once detect the unused flag from encoded bitstream, we should
not add this rps to any list, otherwise pass the incorrect reference
and skip the correct rps.

Signed-off-by: Leo Liu <leo.liu at amd.com>
Reviewed-by: Emil Velikov <emil.velikov at collabora.com>

---

 src/gallium/state_trackers/omx/vid_dec_h265.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/gallium/state_trackers/omx/vid_dec_h265.c b/src/gallium/state_trackers/omx/vid_dec_h265.c
index acd225d..925a5a7 100644
--- a/src/gallium/state_trackers/omx/vid_dec_h265.c
+++ b/src/gallium/state_trackers/omx/vid_dec_h265.c
@@ -594,6 +594,8 @@ static void vid_dec_h265_EndFrame(vid_dec_PrivateType *priv)
    rps = priv->codec_data.h265.rps;
 
    if (rps) {
+      unsigned bf = 0, af = 0;
+
       priv->picture.h265.NumDeltaPocsOfRefRpsIdx = rps->num_delta_poc;
       for (i = 0; i < rps->num_pics; ++i) {
          priv->picture.h265.PicOrderCntVal[i] =
@@ -609,11 +611,10 @@ static void vid_dec_h265_EndFrame(vid_dec_PrivateType *priv)
          if (rps->used[i]) {
             if (i < rps->num_neg_pics) {
                priv->picture.h265.NumPocStCurrBefore++;
-               priv->picture.h265.RefPicSetStCurrBefore[i] = i;
+               priv->picture.h265.RefPicSetStCurrBefore[bf++] = i;
             } else {
-               int j = i - rps->num_neg_pics;
                priv->picture.h265.NumPocStCurrAfter++;
-               priv->picture.h265.RefPicSetStCurrAfter[j] = i;
+               priv->picture.h265.RefPicSetStCurrAfter[af++] = i;
             }
          }
       }




More information about the mesa-commit mailing list