From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 479D247023 for ; Sat, 25 Nov 2023 04:06:45 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 52AE168CF3A; Sat, 25 Nov 2023 06:06:24 +0200 (EET) Received: from out203-205-221-202.mail.qq.com (out203-205-221-202.mail.qq.com [203.205.221.202]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 62D0368CF1C for ; Sat, 25 Nov 2023 06:06:14 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1700885165; bh=e0O/nk+Ua1XrwaAoynv9SkpsZclTzfXf4s9c4b1fzIY=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=Wy2qBDzh4THnvXfNdD6aUhFL1IMKUTxVxREAt1WQS34L/BLamO+IHohAyjbbFkCOZ cHX6idyS82o5qP+awijeNnFHNfLzrHa6fKP4GQje+i7KA3hdSwNkdEhcqNTiNO9dv/ jhuSA5iXt2eHrZMyiKTKFB3oXmm3bXulxF4LWAyE= Received: from ZHILIZHAO-MB1.tencent.com ([183.238.15.194]) by newxmesmtplogicsvrszb9-1.qq.com (NewEsmtp) with SMTP id 1840288B; Sat, 25 Nov 2023 12:06:04 +0800 X-QQ-mid: xmsmtpt1700885165tnq27svrc Message-ID: X-QQ-XMAILINFO: NB2Y38G+/V2YwckhGIh7C/pWCQQXw1G6AV+LdHdNDwPaBg/P2UV/764+wbIbOa /5hU9zMkobAMpNVPmmOJhz2KaacRyRE4e6QUFP9fsoMllcidcGDA8HPV7ljiseIu+wqaZWoUmokx 5vNB+9TQKfr5MwGtupFgzRgfdQxBaoemekdTt8F3qwCdS58ICyOwCzItGB6I1q1xctKdxEBdbRsG Px9emB+DuSZtU3jUJK9OM7/mDiYKDh+PaHnJ4qk12XNlC30jX+UMEDP7VGElt0BFNeeS6ZCMzwSB hBkKFkasRbdZtxlUzk8R66H5T+3bY84o7Hawb4VuNOzwNA6tqLFhVp5Qo8mg8aGoQDpvq+WByAgj fdNbcGj+uGVH/gHdIg45b9Yp6n+tHcX57qsVQdu7vy6RCfbKpjpvNeQwjwaSaHdgOnGKA3HnYGbN HGGhEI+gx1eyFQ3CDxs1FC2IfkQ+/LTGhru8TzMxhqT65VMbhu4Igha0MmKTcP2K7r6zOe+cNIa7 Ot/vqUMWrO8mRF9weEkV/t46cmtFACYPUt8RfFXn1+HrO9fiIl4Eu1ilIlkl6O6lUlwssb7SEa0Z N2CrACgrrysp908JxZ5WwfkI5Tlz5dma+ex62mXuQmNChL2nEJCKFPl/qGrYVZ4PIp6pqTQffXvw Y4q+HVpEtoOiAORFPLze9EjGl90z/f0VmB+cBhcfR35QdQv40xoNYTy7rutDA96EBvb/h44sTql9 p8ttkMWlm5T4XJLDj1fDProJM6A/zGoU53xqQnk5xUb/D6ooYaXQPlnWZ2NOsfk/kw18pdL+Vcd5 lV03hpAXSFEj1rnKIicaWofIHwCc50wdXnSUUyWjyIYBaMT+VXkxE4tXMHhPGw1/V9x/FEj1G3KX b7yO47kO7lKkhnfNS6dhXyrVJCSIyEKbkp50di7GrtdjX5BzRfqh99ZjmcweAG+OTD8AhjiqPBJq E7KsVdu1HlKmZyStiH1h1OrjSRIkcx X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Sat, 25 Nov 2023 12:06:02 +0800 X-OQ-MSGID: <20231125040602.64250-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20231125040602.64250-1-quinkblack@foxmail.com> References: <20231125040602.64250-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/videotoolboxenc: refactor dump encoder name X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Zhao Zhili Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Zhao Zhili --- libavcodec/videotoolboxenc.c | 65 +++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 27 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index b8a07e4e44..fbd33fd3f9 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -280,6 +280,41 @@ typedef struct VTEncContext { int max_ref_frames; } VTEncContext; +static int vt_dump_encoder(AVCodecContext *avctx) +{ + VTEncContext *vtctx = avctx->priv_data; + CFStringRef encoder_id = NULL; + int status; + CFIndex length, max_size; + char *name; + + status = VTSessionCopyProperty(vtctx->session, + compat_keys.kVTCompressionPropertyKey_EncoderID, + kCFAllocatorDefault, + &encoder_id); + // OK if not supported + if (status != noErr) + return 0; + + length = CFStringGetLength(encoder_id); + max_size = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8); + name = av_malloc(max_size); + if (!name) { + CFRelease(encoder_id); + return AVERROR(ENOMEM); + } + + CFStringGetCString(encoder_id, + name, + max_size, + kCFStringEncodingUTF8); + av_log(avctx, AV_LOG_DEBUG, "Init the encoder: %s\n", name); + av_freep(&name); + CFRelease(encoder_id); + + return 0; +} + static int vtenc_populate_extradata(AVCodecContext *avctx, CMVideoCodecType codec_type, CFStringRef profile_level, @@ -1176,33 +1211,9 @@ static int vtenc_create_encoder(AVCodecContext *avctx, } #endif - // Dump the init encoder - { - CFStringRef encoderID = NULL; - status = VTSessionCopyProperty(vtctx->session, - compat_keys.kVTCompressionPropertyKey_EncoderID, - kCFAllocatorDefault, - &encoderID); - if (status == noErr) { - CFIndex length = CFStringGetLength(encoderID); - CFIndex max_size = CFStringGetMaximumSizeForEncoding(length, kCFStringEncodingUTF8); - char *name = av_malloc(max_size); - if (!name) { - CFRelease(encoderID); - return AVERROR(ENOMEM); - } - - CFStringGetCString(encoderID, - name, - max_size, - kCFStringEncodingUTF8); - av_log(avctx, AV_LOG_DEBUG, "Init the encoder: %s\n", name); - - av_freep(&name); - } - if (encoderID != NULL) - CFRelease(encoderID); - } + status = vt_dump_encoder(avctx); + if (status < 0) + return status; 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"); -- 2.42.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".