[FFmpeg-devel] [PATCH 1/2] lavc/videotoolboxenc: Dump the encoder
Dump the encoder, it's will help debug some case Signed-off-by: Jun Zhao --- 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; +status = VTSessionCopyProperty(vtctx->session, + kVTCompressionPropertyKey_EncoderID, + kCFAllocatorDefault, + &encoderID); +if (status == noErr) { +char names[256] = { 0 }; + +CFStringGetCString(encoderID, + names, + 255, + kCFStringEncodingUTF8); +av_log(avctx, AV_LOG_INFO, "Init the encoder: %s\n", names); +} +if (encoderID != NULL) +CFRelease(encoderID); +} + 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@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".
Re: [FFmpeg-devel] [PATCH 1/2] lavc/videotoolboxenc: Dump the encoder
mån 2023-09-04 klockan 11:53 +0800 skrev Jun Zhao: > Dump the encoder, it's will help debug some case > > Signed-off-by: Jun Zhao > --- > libavcodec/videotoolboxenc.c | 20 > 1 file changed, 20 insertions(+) Looks OK /Tomas ___ 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".
Re: [FFmpeg-devel] [PATCH 1/2] lavc/videotoolboxenc: Dump the encoder
> On Sep 3, 2023, at 11:53 PM, Jun Zhao wrote: > > Dump the encoder, it's will help debug some case > > Signed-off-by: Jun Zhao > --- > 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; > +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); > +} > + > 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@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".
Re: [FFmpeg-devel] [PATCH 1/2] lavc/videotoolboxenc: Dump the encoder
> On Sep 5, 2023, at 18:43, Richard Kern wrote: > > > >> On Sep 3, 2023, at 11:53 PM, Jun Zhao wrote: >> >> Dump the encoder, it's will help debug some case >> >> Signed-off-by: Jun Zhao >> --- >> 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@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".