Message ID | 0101018f98b9a2c9-01b87943-0e31-4780-a2a7-d2f58757741e-000000@us-west-2.amazonses.com |
---|---|
State | New |
Headers | show |
Series | [FFmpeg-devel] avcodec/libsvtav1: send the EOS signal without a one frame delay to allow for the library to operate in a low-delay mode | expand |
Context | Check | Description |
---|---|---|
yinshiyou/make_loongarch64 | success | Make finished |
yinshiyou/make_fate_loongarch64 | success | Make fate finished |
> On May 20, 2024, at 6:17 PM, Cosmin Stejerean via ffmpeg-devel <ffmpeg-devel@ffmpeg.org> wrote: > > From: Cosmin Stejerean <cosmin@cosmin.at> > > Co-authored-by: Amir Naghdinezhad <amir.naghdinezhad@intel.com> > Signed-off-by: Cosmin Stejerean <cosmin@cosmin.at> > --- > libavcodec/libsvtav1.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > Disregard this one, it was previously applied. It was left over in my patches folder by mistake and git send-email picked it up again. - Cosmin
diff --git a/libavcodec/libsvtav1.c b/libavcodec/libsvtav1.c index 3b41f5a39e..1eda63200c 100644 --- a/libavcodec/libsvtav1.c +++ b/libavcodec/libsvtav1.c @@ -539,6 +539,14 @@ static int eb_receive_packet(AVCodecContext *avctx, AVPacket *pkt) if (svt_ret == EB_NoErrorEmptyQueue) return AVERROR(EAGAIN); +#if SVT_AV1_CHECK_VERSION(2, 0, 0) + if (headerPtr->flags & EB_BUFFERFLAG_EOS) { + svt_enc->eos_flag = EOS_RECEIVED; + svt_av1_enc_release_out_buffer(&headerPtr); + return AVERROR_EOF; + } +#endif + ref = get_output_ref(avctx, svt_enc, headerPtr->n_filled_len); if (!ref) { av_log(avctx, AV_LOG_ERROR, "Failed to allocate output packet.\n"); @@ -573,8 +581,10 @@ static int eb_receive_packet(AVCodecContext *avctx, AVPacket *pkt) if (headerPtr->pic_type == EB_AV1_NON_REF_PICTURE) pkt->flags |= AV_PKT_FLAG_DISPOSABLE; +#if !(SVT_AV1_CHECK_VERSION(2, 0, 0)) if (headerPtr->flags & EB_BUFFERFLAG_EOS) svt_enc->eos_flag = EOS_RECEIVED; +#endif ff_side_data_set_encoder_stats(pkt, headerPtr->qp * FF_QP2LAMBDA, NULL, 0, pict_type);