On 8/21/2020 2:29 AM, Fei Wang wrote: > +static int update_reference_list (AVCodecContext *avctx) > +{ > + AV1DecContext *s = avctx->priv_data; > + AV1RawFrameHeader *header= &s->raw_frame_header; > + int i; > + int ret = 0; > + > + for (i = 0; i < 8; i++) {
Use AV1_NUM_REF_FRAMES instead of 8. > + if (header->frame_type == AV1_FRAME_KEY || There's no need to check for this, and it's in fact wrong (AV1_FRAME_KEY where show_frame == 0 does not necessarily refresh all frames). refresh_frame_flags will have the correct value for the frame as filled by CBS. > + (header->refresh_frame_flags & (1 << i))) { > + if (s->ref[i].tf.f->buf[0]) > + av1_frame_unref(avctx, &s->ref[i]); > + if ((ret = av1_frame_ref(avctx, &s->ref[i], &s->cur_frame)) < 0) > { > + av_log(avctx, AV_LOG_DEBUG, "Ref frame error:%d.\n", ret); > + return ret; > + } > + } > + } > + return 0; > +} _______________________________________________ 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".