mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-26 06:20:09 +01:00
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@amd.com> Reviewed-by: Emil Velikov <emil.velikov@collabora.com>
This commit is contained in:
parent
c50b68e6a8
commit
ffb863fd2c
1 changed files with 4 additions and 3 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue