[FFmpeg-devel] [PATCH] lavc/videotoolboxenc: set DataRateLimits for hevc

Rick Kern kernrj at gmail.com
Sun Apr 25 18:31:29 EEST 2021


On Sun, Apr 25, 2021 at 4:06 AM Zhao Zhili <quinkblack at foxmail.com> wrote:

> From the comment it's not available on old version. It works now
> by testing on macOS 11.2.1. There is no document about since when.
> So trying to set the configuration and ignore the error for hevc.
> ---
>  libavcodec/videotoolboxenc.c | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
> index 9b7ee6720c..cefd70fa88 100644
> --- a/libavcodec/videotoolboxenc.c
> +++ b/libavcodec/videotoolboxenc.c
> @@ -1113,8 +1113,8 @@ static int vtenc_create_encoder(AVCodecContext
>  *avctx,
>          return AVERROR_EXTERNAL;
>      }
>
> -    if (vtctx->codec_id == AV_CODEC_ID_H264 && max_rate > 0) {
> -        // kVTCompressionPropertyKey_DataRateLimits is not available for
> HEVC
> +    if ((vtctx->codec_id == AV_CODEC_ID_H264 || vtctx->codec_id ==
> AV_CODEC_ID_HEVC)
> +            && max_rate > 0) {
>          bytes_per_second_value = max_rate >> 3;
>          bytes_per_second = CFNumberCreate(kCFAllocatorDefault,
>                                            kCFNumberSInt64Type,
> @@ -1152,7 +1152,11 @@ static int vtenc_create_encoder(AVCodecContext
>  *avctx,
>
>          if (status) {
>              av_log(avctx, AV_LOG_ERROR, "Error setting max bitrate
> property: %d\n", status);
> -            return AVERROR_EXTERNAL;
> +            // kVTCompressionPropertyKey_DataRateLimits is available for
> HEVC
> +            // now but not on old release. There is no document about
> since
> +            // when. So ignore the error if it failed for hevc.
> +            if (vtctx->codec_id != AV_CODEC_ID_HEVC)
> +                return AVERROR_EXTERNAL;
>
The failure should be logged. Looks good otherwise.

         }
>      }
>
> --
> 2.31.1
>
>
> _______________________________________________
> 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