[FFmpeg-devel] [PATCH] lavc/libxavs2.c: mark key-frame packets
Steven Liu
lingjiujianke at gmail.com
Mon Jul 27 11:57:29 EEST 2020
hwren <hwrenx at 126.com> 于2020年7月27日周一 下午3:59写道:
>
>
>
> 在 2020-07-27 15:26:24,"Steven Liu" <lingjiujianke at gmail.com> 写道:
> ><hwrenx at 126.com> 于2020年7月27日周一 下午2:22写道:
> >>
> >> From: hwren <hwrenx at 126.com>
> >>
> >> Signed-off-by: hwren <hwrenx at 126.com>
> >> ---
> >> libavcodec/libxavs2.c | 6 ++++++
> >> 1 file changed, 6 insertions(+)
> >>
> >> diff --git a/libavcodec/libxavs2.c b/libavcodec/libxavs2.c
> >> index 76b57e731e..8519f6925a 100644
> >> --- a/libavcodec/libxavs2.c
> >> +++ b/libavcodec/libxavs2.c
> >> @@ -223,6 +223,12 @@ static int xavs2_encode_frame(AVCodecContext *avctx, AVPacket *pkt,
> >> pkt->pts = cae->packet.pts;
> >> pkt->dts = cae->packet.dts;
> >>
> >> + if (cae->packet.type == XAVS2_TYPE_IDR ||
> >> + cae->packet.type == XAVS2_TYPE_I ||
> >Don't support OpenGOP?
>
> There is no obvious difference between IDR/I frame in AVS2. Actually we will use TYPE_I in most cases.
> So I think, when a jump occurs, ffmpeg just needs to find the closest I frame. Then the decoder will
> determine the validity and discard the illegal frames. This method may trigger some error reports,
> but they should be harmless.
Looks ok then.
>
> >> + cae->packet.type == XAVS2_TYPE_KEYFRAME) {
> >> + pkt->flags |= AV_PKT_FLAG_KEY;
> >> + }
> >> +
> >> memcpy(pkt->data, cae->packet.stream, cae->packet.len);
> >> pkt->size = cae->packet.len;
> >>
> >> --
> >> 2.23.0.windows.1
> >>
Thanks for your clarify respond
Thanks
Steven
More information about the ffmpeg-devel
mailing list