On Wo, 2024-01-17 at 06:23 +0000, Xiang, Haihao wrote: > On Do, 2024-01-11 at 14:31 +0800, tong1.wu-at-intel....@ffmpeg.org wrote: > > From: Tong Wu <tong1...@intel.com> > > > > Fixes #10759. > > > > It can happen in H.264, MPEG2, VC1 that the current frame resource > > memory is already in ref_resource. For example, for a interlaced frame, > > the same curr memory is passed twice. For the second time it could possibly > > reference itself. When this happens the curr is already given an index and > > in ref_resources. When the reference frame index is required, we should > > check > > the existance in the ref_resources first before assigning a new index for > > it. > > > > Signed-off-by: Tong Wu <tong1...@intel.com> > > --- > > libavcodec/d3d12va_decode.c | 14 +++++++------- > > 1 file changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/libavcodec/d3d12va_decode.c b/libavcodec/d3d12va_decode.c > > index c5c599675e..a6f40236d1 100644 > > --- a/libavcodec/d3d12va_decode.c > > +++ b/libavcodec/d3d12va_decode.c > > @@ -62,14 +62,14 @@ unsigned ff_d3d12va_get_surface_index(const > > AVCodecContext > > *avctx, > > if (!res) > > goto fail; > > > > - if (!curr) { > > - for (i = 0; i < ctx->max_num_ref; i++) { > > - if (ctx->ref_resources[i] && res == ctx->ref_resources[i]) { > > - ctx->used_mask |= 1 << i; > > - return i; > > - } > > + for (i = 0; i < ctx->max_num_ref; i++) { > > + if (ctx->ref_resources[i] && res == ctx->ref_resources[i]) { > > + ctx->used_mask |= 1 << i; > > + return i; > > } > > - } else { > > + } > > + > > + if (curr) { > > for (i = 0; i < ctx->max_num_ref; i++) { > > if (!((ctx->used_mask >> i) & 0x1)) { > > ctx->ref_resources[i] = res; > > Patchset LGTM, > Will apply,
- Haihao _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".