On Fri, May 19, 2023 at 1:56 AM 徐福隆 <839789...@qq.com> wrote:
> Thank you for your review, and point out the details. > Actually, I have also considered this issue. > I see that some keys are used directly, some are used by compatibility. > The compat_keys are used for symbols that might not exist. For constants available in the earliest version of VideoToolbox, compat_keys doesn't need to be used. Your patch looks good - I'll push it shortly. > I will use compat_key instead, and submit a new patch. > > > ------------------ 原始邮件 ------------------ > 发件人: > ""zhilizhao(赵志立)"" > > <quinkbl...@foxmail.com>; > 发送时间: 2023年5月19日(星期五) 中午11:34 > 收件人: "FFmpeg development discussions and patches"< > ffmpeg-devel@ffmpeg.org>; > 抄送: "徐福隆"<839789...@qq.com>; > 主题: Re: [FFmpeg-devel] [PATCH] avcodec/videotoolboxenc: add > low-latency encoding > > > > > > > On May 19, 2023, at 11:17, xufuji456 <839789...@qq.com> wrote: > > > > When using low-latency mode, it eliminates frame reordering > > and follows a one-in-one-out encoding mode > > > > Signed-off-by: xufuji456 <839789...@qq.com> > > --- > > libavcodec/videotoolboxenc.c | 11 +++++++++++ > > 1 file changed, 11 insertions(+) > > > > diff --git a/libavcodec/videotoolboxenc.c > b/libavcodec/videotoolboxenc.c > > index c6f22723d6..ae1ef32b2d 100644 > > --- a/libavcodec/videotoolboxenc.c > > +++ b/libavcodec/videotoolboxenc.c > > @@ -1441,6 +1441,17 @@ static int > vtenc_create_encoder(AVCodecContext *avctx, > > } > > } > > > > + // low-latency mode: eliminate frame reordering, > follow a one-in-one-out encoding mode > > + if ((avctx->flags & > AV_CODEC_FLAG_LOW_DELAY) && avctx->codec_id == AV_CODEC_ID_H264) > { > > + status = > VTSessionSetProperty(vtctx->session, > > > + > kVTVideoEncoderSpecification_EnableLowLatencyRateControl, > > > + > kCFBooleanTrue); > > Please use compat_keys in case of > kVTVideoEncoderSpecification_EnableLowLatencyRateControl > isn’t available. > > > + > > + if (status) { > > + > av_log(avctx, AV_LOG_ERROR, "Error setting low latency property: %d\n", > status); > > + } > > + } > > + > > status = > VTCompressionSessionPrepareToEncodeFrames(vtctx->session); > > if (status) { > > av_log(avctx, > AV_LOG_ERROR, "Error: cannot prepare encoder: %d\n", status); > > -- > > 2.32.0 (Apple Git-132) > > > > _______________________________________________ > > 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". > _______________________________________________ > 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". > _______________________________________________ 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".