[FFmpeg-devel] [PATCH] avcodec/videotoolboxenc: add low-latency encoding

徐福隆 839789740 at qq.com
Fri May 19 04:57:08 EEST 2023


Thank you for your review, James.
I will use AV_CODEC_FLAG_LOW_DELAY flag instead, and submit a new patch.


------------------ Original ------------------
From:                                                                                                                        "FFmpeg development discussions and patches"                                                                                    <jamrial at gmail.com>;
Date: Thu, May 18, 2023 07:36 PM
To: "ffmpeg-devel"<ffmpeg-devel at ffmpeg.org>;

Subject: Re: [FFmpeg-devel] [PATCH] avcodec/videotoolboxenc: add low-latency encoding



On 5/18/2023 7:15 AM, xufuji456 wrote:
> Signed-off-by: xufuji456 <839789740 at qq.com>
> ---
>   libavcodec/videotoolboxenc.c | 12 ++++++++++++
>   1 file changed, 12 insertions(+)
> 
> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
> index c6f22723d6..88334f1851 100644
> --- a/libavcodec/videotoolboxenc.c
> +++ b/libavcodec/videotoolboxenc.c
> @@ -251,6 +251,8 @@ typedef struct VTEncContext {
>   
>       /* can't be bool type since AVOption will access it as int */
>       int a53_cc;
> +
> +    int low_latency;
>   } VTEncContext;
>   
>   static int vtenc_populate_extradata(AVCodecContext   *avctx,
> @@ -1441,6 +1443,16 @@ static int vtenc_create_encoder(AVCodecContext   *avctx,
>           }
>       }
>   
> +    if (vtctx->low_latency) {

Nothing seems to set this?

Also, you should check the existing AV_CODEC_FLAG_LOW_DELAY flag instead.

> +        status = VTSessionSetProperty(vtctx->session,
> +                                      kVTVideoEncoderSpecification_EnableLowLatencyRateControl,
> +                                      kCFBooleanTrue);
> +
> +        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);
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel at ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-request at ffmpeg.org with subject "unsubscribe".


More information about the ffmpeg-devel mailing list