[FFmpeg-devel] [PATCH 1/2] lavc/videotoolboxenc: Dump the encoder

"zhilizhao(赵志立)" quinkblack at foxmail.com
Tue Sep 5 13:47:29 EEST 2023



> On Sep 5, 2023, at 18:43, Richard Kern <kernrj at gmail.com> wrote:
> 
> 
> 
>> On Sep 3, 2023, at 11:53 PM, Jun Zhao <mypopydev at gmail.com> wrote:
>> 
>> Dump the encoder, it's will help debug some case
>> 
>> Signed-off-by: Jun Zhao <barryjzhao at tencent.com>
>> ---
>> libavcodec/videotoolboxenc.c | 20 ++++++++++++++++++++
>> 1 file changed, 20 insertions(+)
>> 
>> diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c
>> index bfc03787a0..5633640a30 100644
>> --- a/libavcodec/videotoolboxenc.c
>> +++ b/libavcodec/videotoolboxenc.c
>> @@ -1110,6 +1110,26 @@ static int vtenc_create_encoder(AVCodecContext   *avctx,
>>        return AVERROR_EXTERNAL;
>>    }
>> 
>> +    // Dump the init encoder
>> +    {
>> +        CFStringRef encoderID = NULL;

Nit: encoder_id.

>> +        status = VTSessionCopyProperty(vtctx->session,
>> +                                       kVTCompressionPropertyKey_EncoderID,
>> +                                       kCFAllocatorDefault,
>> +                                       &encoderID);
>> +        if (status == noErr) {
>> +            char names[256] = { 0 };
>> +
>> +            CFStringGetCString(encoderID,
>> +                               names,
>> +                               255,
> Use sizeof(names) - 1 instead of 255. The hard coded value increases the chance of a bug if the size of names is changed. 
> 
>> +                               kCFStringEncodingUTF8);
>> +            av_log(avctx, AV_LOG_INFO, "Init the encoder: %s\n", names);
> This should be logged at the debug level since it doesn’t help users when encoding is successful. 
> 
>> +        }
>> +        if (encoderID != NULL)
>> +            CFRelease(encoderID);
>> +    }

How about extract it to a function so the encoder id can be used in error message?

>> +
>>    if (avctx->flags & AV_CODEC_FLAG_QSCALE && !vtenc_qscale_enabled()) {
>>        av_log(avctx, AV_LOG_ERROR, "Error: -q:v qscale not available for encoder. Use -b:v bitrate instead.\n");
>>        return AVERROR_EXTERNAL;
>> -- 
>> 2.25.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".
> _______________________________________________
> 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