From patchwork Fri Jun 9 11:14:53 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 42024 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp1054787pzb; Fri, 9 Jun 2023 04:21:22 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ57tMhkw0zVoCNmdFGV3JWF+/WoQn86QvDUPZxH6xKBlNOlHSYmPMHpknH4ryxdsg6jb6BJ X-Received: by 2002:a17:907:6e23:b0:970:e80:e29a with SMTP id sd35-20020a1709076e2300b009700e80e29amr1322897ejc.68.1686309682773; Fri, 09 Jun 2023 04:21:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686309682; cv=none; d=google.com; s=arc-20160816; b=tNktIYXC90YNwV1w7akBOf+GGWeV3G9Q0emFr0XNsaSI8IyyeDR1rM6SiYAyikwFBw D09q61hTU2lxN5E3qwYJ09qVAlkICb3nP0YO53F9MQafK1OiL87Nz3tZvq9+REHk1VLE D3CUyAbT4mZkrGrQPC+h03TtCucvJlYKqmgpKOIpW3lrFYkWJbGdVvr7kk8yYb67O1k+ cM+Ejvhi8modcXMITJJV50qQz7u3WJe+2gp324nF3y9yO0D56IzQnMhjiuO78ixDdlj6 eKWtnv0mt9MlKoiZVvw5Ffp933+5EzT+qTqTVf/EMbiORGkbZrS21qFbjpftsglppyya giZg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:date:to:from:message-id :dkim-signature:delivered-to; bh=833BCDtdKTESkSvZSXrJDCe5Ok8Xyt0Lc6WVbijWFes=; b=lRkJn3jSQKbcpD9Fo2XCib3Z937DBjJo+m7pnONSV0I/N8P5/m3HN3ZqEzjCI4AZrI MjayJcz4Tfnk269N40XprKq83ScFO99RSBrS39uoAYIwWIhcLkDbHcGbOc0gGOKzUi7Q VooQm9Hg6R2rAAJA4faDp2lzImxOHRdCdlrVw1WlXoaVv1fLZo/N1w0xtZyBVpc/3EeQ zsmS7mrlO5xkRdQN/8NNLqqKPElL6gp24YNKrmDMwU5/LhOYOXFOLyTBAP9VLDOKbq4I M8ybLDdChpXTiU/MEGrQzIOJWwujnb9HVG8HpsPT7tksh0hh8gRD3lwGdYP7pPdvsIij iThg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=YJLUnvLh; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y6-20020a170906070600b00977cfcc13f1si1319210ejb.568.2023.06.09.04.21.22; Fri, 09 Jun 2023 04:21:22 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=YJLUnvLh; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 494D668C315; Fri, 9 Jun 2023 14:21:19 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-87.mail.qq.com (out162-62-57-87.mail.qq.com [162.62.57.87]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 0FE1668C0FB for ; Fri, 9 Jun 2023 14:21:11 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1686309669; bh=dlx1s38ZnpcfRJFZOMAyRAKymVWz8KAmFRHiJWnQ8f0=; h=From:To:Cc:Subject:Date; b=YJLUnvLhQvZxn/1x1VdURGbXeSHAHk/tMi+UJixMu61AfK6mKNqguaK1L/OsYvqF0 BOmZaAAG+TbTBRB74lpHHdZLWz5oxC8qFy8h2DR598LOeyOmwoHLRPOWHE9cPSbt1D YyETabEq+AzGpdTTycrUlPlpX3xbMx/BGqI74ZAE= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.55]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id 3C02EA18; Fri, 09 Jun 2023 19:15:00 +0800 X-QQ-mid: xmsmtpt1686309300tcbgdmdxf Message-ID: X-QQ-XMAILINFO: NrI1OKqG5KOqz8bZWjMMFQ3ONWcQrqWUL/CH2pHY1PVMxBeDlmGlQeJLFFsDy/ Iw+WrCaL5iorM7lAkPCXe3DdtJidByO2vmsGSF7p6Z22YTZRBXw0E/vxm9HsBxGb/FWhQx/rFNiw zpchO9jXbnEZ54N3cQ8qvIHX2ggSfUYQiKqnf19mT1H1G34zifN+w/YJ2CRdx8Sl/VIRxmFhnIEB 63zyvHX1V21Tm9UJwQ2lf/euxka+zCtPYu05Tlsi2a0HAV2G90Q81KJ8udx449VzlYU7fILyoRDL yqYDsFAUc/7AlmOIgmYKj00+2/vXIFVTuKea3OwgiYa4CXf6IxXPrPHRqpytzu0dvSL/g0brA+cC I2D0iULBRwe3/N0SCYjqiKxI/uPBmRiRysfeXoavuhQQK2cnnTqD45ZxA29XvWsxNMVuu8+OQs8R SwivQpIMFHdHsGwRVEYjpgqzdzVZyOXCKW2O/+9TIHKItfYIZqxz/7Ak80HFo+5YuS9zmnLtftB2 /EFV0cwHwDKssTM8eoELMZuOCR3bP8yR/9UR0fU/K1WV/K3wTNhp21oaChYmxR92gi7qyB0iNTOJ C7Lidcn9up56Tkbmmf6f+1ekIHt+TRtnjo3zmgFkc+901tkOU/CqPGNsPneSjXQvXYPJVp5Zaaws KnJyxkAizID5cluaiD9YDcq8OyThHitpfXmoy8SdNEv42/or+nWu8X6MHbZBbkxRedj/DzYzEPde 7sL59mebMStsXEzIplcez0cczVpkpPnQgcgRXc7wac1EBj3OtPVInpB060jOXklfkQaZzEr+pTrM IvXZV1pZKth9lgNyRvmXuSUQIm4dp/Bgu/xvW0F/Qq1CUldrtCVMbmLSnWkBMCoqO4rbqaOQal5t pyG25sAkYRVYvOSa7NmNZ5yUY8G4rSiZwv5p8+/c3F3w5wwKahA1Lb0r2wiGtSnWXW6unwqeHhFs c+fbUdug3c0bd8h/bA6JrM2Bq9t+r9leGZVP3etz60ujxg4pyGSQ== From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Jun 2023 19:14:53 +0800 X-OQ-MSGID: <20230609111455.17989-1-quinkblack@foxmail.com> X-Mailer: git-send-email 2.40.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/3] avcodec/videotoolboxenc: use int as the type of profile 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: GewjW7WDqby3 From: Zhao Zhili Other than save a few bytes, it also has the benefit to show the AV_OPT_TYPE_CONST value in help, e.g., -profile E..V....... Profile (from 0 to INT_MAX) (default 0) baseline 66 E..V....... Baseline Profile ... --- libavcodec/videotoolboxenc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 9719e0bf54..26485a3dea 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -252,7 +252,7 @@ typedef struct VTEncContext { int64_t first_pts; int64_t dts_delta; - int64_t profile; + int profile; int level; int entropy; int realtime; @@ -443,7 +443,7 @@ static int count_nalus(size_t length_code_size, } static CMVideoCodecType get_cm_codec_type(AVCodecContext *avctx, - int64_t profile, + int profile, double alpha_quality) { const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt == AV_PIX_FMT_VIDEOTOOLBOX ? avctx->sw_pix_fmt : avctx->pix_fmt); @@ -470,7 +470,7 @@ static CMVideoCodecType get_cm_codec_type(AVCodecContext *avctx, return MKBETAG('a','p','4','x'); // kCMVideoCodecType_AppleProRes4444XQ default: - av_log(avctx, AV_LOG_ERROR, "Unknown profile ID: %"PRId64", using auto\n", profile); + av_log(avctx, AV_LOG_ERROR, "Unknown profile ID: %d, using auto\n", profile); case FF_PROFILE_UNKNOWN: if (desc && ((desc->flags & AV_PIX_FMT_FLAG_ALPHA) || @@ -735,7 +735,7 @@ static bool get_vt_h264_profile_level(AVCodecContext *avctx, CFStringRef *profile_level_val) { VTEncContext *vtctx = avctx->priv_data; - int64_t profile = vtctx->profile; + int profile = vtctx->profile; if (profile == AUTO_PROFILE && vtctx->level) { //Need to pick a profile if level is not auto-selected. @@ -864,7 +864,7 @@ static bool get_vt_hevc_profile_level(AVCodecContext *avctx, CFStringRef *profile_level_val) { VTEncContext *vtctx = avctx->priv_data; - int64_t profile = vtctx->profile; + int profile = vtctx->profile; *profile_level_val = NULL; @@ -2891,7 +2891,7 @@ static const enum AVPixelFormat prores_pix_fmts[] = { #define OFFSET(x) offsetof(VTEncContext, x) static const AVOption h264_options[] = { - { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT64, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, + { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, { "baseline", "Baseline Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_BASELINE }, INT_MIN, INT_MAX, VE, "profile" }, { "constrained_baseline", "Constrained Baseline Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_CONSTRAINED_BASELINE }, INT_MIN, INT_MAX, VE, "profile" }, { "main", "Main Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_MAIN }, INT_MIN, INT_MAX, VE, "profile" }, @@ -2948,7 +2948,7 @@ const FFCodec ff_h264_videotoolbox_encoder = { }; static const AVOption hevc_options[] = { - { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT64, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, + { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, { "main", "Main Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_HEVC_MAIN }, INT_MIN, INT_MAX, VE, "profile" }, { "main10", "Main10 Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, VE, "profile" }, @@ -2985,7 +2985,7 @@ const FFCodec ff_hevc_videotoolbox_encoder = { }; static const AVOption prores_options[] = { - { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT64, { .i64 = FF_PROFILE_UNKNOWN }, FF_PROFILE_UNKNOWN, FF_PROFILE_PRORES_XQ, VE, "profile" }, + { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = FF_PROFILE_UNKNOWN }, FF_PROFILE_UNKNOWN, FF_PROFILE_PRORES_XQ, VE, "profile" }, { "auto", "Automatically determine based on input format", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_UNKNOWN }, INT_MIN, INT_MAX, VE, "profile" }, { "proxy", "ProRes 422 Proxy", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_PROXY }, INT_MIN, INT_MAX, VE, "profile" }, { "lt", "ProRes 422 LT", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_PRORES_LT }, INT_MIN, INT_MAX, VE, "profile" }, From patchwork Fri Jun 9 11:14:54 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 42025 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp1054891pzb; Fri, 9 Jun 2023 04:21:32 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5CbbV9t87PIpa0nD3pINaWXO0tYQNmOXgjCOtTi9lAmviX710hOkBhQk9JgdI4Ijhl1DTT X-Received: by 2002:a17:907:6d01:b0:96f:f451:1874 with SMTP id sa1-20020a1709076d0100b0096ff4511874mr1506280ejc.59.1686309692226; Fri, 09 Jun 2023 04:21:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686309692; cv=none; d=google.com; s=arc-20160816; b=WGHtNdmo8YL2b46m4QLjO1oRm7HS3m8bJ+kvmZOLVUl/CWiVSC0lMPc26gWrLDw+/x bHhbC15U52kYiBiKyGA853j9iHykGeWIKwA/Zc/iYHq70v6N8m1lZpoKJYlz979huvDp duDVsiyR0TsHgDGL+PNzYxK7q4xdHYzpLF+LeQ2jspEd+Z2UUZdn2jCvOATkvuT5E/Bx e0M+0wM0mJ0qIeHjYv87Q4zcxGZifOUZfXZcnTYaEjDnX/Vm7/qda/N9BQuLPrpRdCi4 APJiGw481Std7bF4WXqU0IY/SbbVe6AmCLKlZ7i32Uvg/r1G42phVBPjKVbX4ymyu2He Vbxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=9bc1tlbRSK9u1/x8ow33ujNEGsufvCplQMADIYb5ZfY=; b=INnQ7oYEMl6mK3IsLqedToOn7AmLecBpKVkD1mg+TFIRKQmACIyPFmgV23j43+p/2t KOL/siLSvdJSVsNVJfcXbQiIKeGfK+4YEzEKwPCBmx9ZNlNo9KePQn6LZ1G6eamp5g+/ jTkcAVV7fxR6MvFLURpJ4e64wadZoj/jiz6VU54HSShPdhbe8oiYfUKMa7iKjH1bm48j S1hYGidBn59OqG0H3i1tczPF9wOkCn+pi7AUaHLbvt+k7ZZWotWkSgkpkF+XdgJvqNGc +LiOZXPpHnOaJpawqb/1R1zS1sr7UHK4FHuw53O3B4SQCcQ7PDGS5biJ7bpWbwSgO4ix PlVA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=eeP7SR44; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v14-20020a170906858e00b00977e9220f9csi1131635ejx.747.2023.06.09.04.21.31; Fri, 09 Jun 2023 04:21:32 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=eeP7SR44; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5F23668C312; Fri, 9 Jun 2023 14:21:22 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-210.mail.qq.com (out203-205-221-210.mail.qq.com [203.205.221.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 891C668C318 for ; Fri, 9 Jun 2023 14:21:14 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1686309671; bh=BDgtHBT01Ns9g1jnBFAUXsJbAmEweyn56MwF+XhKwZ4=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=eeP7SR44xiwcevyG41UW8OfOsD6Y1ytwvihToQ2D1N8luikA1rskAkcXBOMluEzNc 9NbCuJg+T2+6K81tX3wrXfkp/Wyc/p36jtdrhjPOd+1Ckire8b5YBsqi4PJoZc9zeB nRnNqS8PB5X7uOIxWZuJ5mz0VIxx0XfZHpTy0UkM= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.55]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id 3C02EA18; Fri, 09 Jun 2023 19:15:00 +0800 X-QQ-mid: xmsmtpt1686309309tscejqlcr Message-ID: X-QQ-XMAILINFO: Mdc3TkmnJyI/ziFiBJGOro3kHMOZV0+/gIiLfqJr0qNM5vkCv9Vf95+Rggey0b Z9pjO8mQSSop+Zk9YQEwfnJMz8RkWYGx/LMwehcv2fsPjbzBg7QJ0PzyMP3vUsWcNMyh7SQeZgq9 N4xfN/3PtfR9YFlaamDKs0AnlEgINNZtxsONVuVPcPccyPhhlrSZPaxVSWhJEN4ukVKYu9/DEgLJ rOiYweAT2KbvpezvKjrDsMftWvY63mdInkaV6jzbr/mCfX7tcj6yRASpEY1wo7G8LLbKu7ZLHQNK M9DHTvF85n7aX0n/ELayTR/daOdCGVb24/Kwln+HSRvqwk6ybGPC3YpTt8lUhYKF4umEFc3mkIWJ CGZBkmYcSg5pelAzHzQhO21HsODBgyIlFa2zb5rjcggoKD+AZtz3jxglsMhczTXEMcGluqfYFla7 Geu0rdoH7TmHbA1KKFHOE5dPoP7Hd/iiXT+o742w/ke0NQ3NRLwCI+OAfcQFwPLhC+PMF9B11g4M F7rkAQDTKVKpsr44Wa8mzi7h4vvc3O6IDNB84szXf6o7tEV+pTz7G0b9jy+HONuNOS/dFJYX8s+p yG4uEbD/DW0FG9t0B+Jfiqoa2LkNvQrib1U8w88dwv6h69iFu4LQ6nQ1aJIcmvQfve759c2Y8ZLA SSaoOoXUXhTUlQgspW+ML24gSMIvzrWu0KS8emcJeeA6JbWjiEjWSh6ma5ims9+Ejk9AX0BqmvTF 5GF9gAGYRaJ10aY2TsgmI1VL1MgtQfLW9bx6VFHbpatOF4O59ILlRcPn9EcgZc4OuIPDvbXUJPe+ 2kz7B2DygnNBRU3R4QyA7i+SP8NBkI/5Tr0WemB/8xPVY2nX9CXVh1QIExgZp6Ik1pP7edyJLzF2 nTJy/TOi9QyA1MEUNQtpIo3CkiyrlbZjGfebRyZvLTiln+g93aiCGwkrPS3H/XmarGbfZlrmo0JX pjiHJP5Iy/4zH5/Pm/+FWrezfbJ62Fxc0KmweoAqQ= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Jun 2023 19:14:54 +0800 X-OQ-MSGID: <20230609111455.17989-2-quinkblack@foxmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230609111455.17989-1-quinkblack@foxmail.com> References: <20230609111455.17989-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/3] avcodec/videotoolboxenc: remove AUTO_PROFILE define 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: h7uCekys1AF8 From: Zhao Zhili Use FF_PROFILE_UNKNOWN as auto mode. --- libavcodec/videotoolboxenc.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 26485a3dea..9f65519700 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -206,7 +206,6 @@ static void loadVTEncSymbols(void){ GET_SYM(kVTCompressionPropertyKey_MinAllowedFrameQP, "MinAllowedFrameQP"); } -#define AUTO_PROFILE 0 #define H264_PROFILE_CONSTRAINED_HIGH (FF_PROFILE_H264_HIGH | FF_PROFILE_H264_CONSTRAINED) typedef enum VTH264Entropy{ @@ -737,7 +736,7 @@ static bool get_vt_h264_profile_level(AVCodecContext *avctx, VTEncContext *vtctx = avctx->priv_data; int profile = vtctx->profile; - if (profile == AUTO_PROFILE && vtctx->level) { + if (profile == FF_PROFILE_UNKNOWN && vtctx->level) { //Need to pick a profile if level is not auto-selected. profile = vtctx->has_b_frames ? FF_PROFILE_H264_MAIN : FF_PROFILE_H264_BASELINE; } @@ -745,7 +744,7 @@ static bool get_vt_h264_profile_level(AVCodecContext *avctx, *profile_level_val = NULL; switch (profile) { - case AUTO_PROFILE: + case FF_PROFILE_UNKNOWN: return true; case FF_PROFILE_H264_BASELINE: @@ -869,7 +868,7 @@ static bool get_vt_hevc_profile_level(AVCodecContext *avctx, *profile_level_val = NULL; switch (profile) { - case AUTO_PROFILE: + case FF_PROFILE_UNKNOWN: return true; case FF_PROFILE_HEVC_MAIN: *profile_level_val = @@ -2891,7 +2890,7 @@ static const enum AVPixelFormat prores_pix_fmts[] = { #define OFFSET(x) offsetof(VTEncContext, x) static const AVOption h264_options[] = { - { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, + { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = FF_PROFILE_UNKNOWN }, FF_PROFILE_UNKNOWN, INT_MAX, VE, "profile" }, { "baseline", "Baseline Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_BASELINE }, INT_MIN, INT_MAX, VE, "profile" }, { "constrained_baseline", "Constrained Baseline Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_CONSTRAINED_BASELINE }, INT_MIN, INT_MAX, VE, "profile" }, { "main", "Main Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_H264_MAIN }, INT_MIN, INT_MAX, VE, "profile" }, @@ -2948,7 +2947,7 @@ const FFCodec ff_h264_videotoolbox_encoder = { }; static const AVOption hevc_options[] = { - { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = AUTO_PROFILE }, 0, INT_MAX, VE, "profile" }, + { "profile", "Profile", OFFSET(profile), AV_OPT_TYPE_INT, { .i64 = FF_PROFILE_UNKNOWN }, FF_PROFILE_UNKNOWN, INT_MAX, VE, "profile" }, { "main", "Main Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_HEVC_MAIN }, INT_MIN, INT_MAX, VE, "profile" }, { "main10", "Main10 Profile", 0, AV_OPT_TYPE_CONST, { .i64 = FF_PROFILE_HEVC_MAIN_10 }, INT_MIN, INT_MAX, VE, "profile" }, From patchwork Fri Jun 9 11:14:55 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 42026 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp1054983pzb; Fri, 9 Jun 2023 04:21:42 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4MzDvdRaiptvwMgaPTakXGYt0yuzoBxftmsZARJ/QxPdagth47cu4nRSvk/9yLQhiQ60vA X-Received: by 2002:aa7:d14e:0:b0:516:642e:f92b with SMTP id r14-20020aa7d14e000000b00516642ef92bmr1142783edo.1.1686309701898; Fri, 09 Jun 2023 04:21:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686309701; cv=none; d=google.com; s=arc-20160816; b=fZYUTuli4QdgX0GmH8QcQW4FqOuEOC//6rsn/bBtVRkil9qLnwBzVgzMPAjDkfvTQF P1vTLAPCezsIkV2sB67ZBHTpZiIyu07LvwRQWiMeR/rYDmGbKcrJBERZDBaWjYyIAltV JxCoVztvo3UwqCWpXQnAlqsXT9+XXLo2JTZE/ZWGFJuVTogeiAFCJnIESImWNJRGS2Nt nmVHII1tBV8wNnBqXRqoSnKAldx5Q9yaAiRUTHIne+dbfrluFfzGTeGN/5IZptwsiW0j 6TxGTSARGC1/2jfwZHVdibSbwiOrv+JfGDavW1IMJWIksyx+qmyxJ9/JBmR2KZoWk9dO j7gA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:references:in-reply-to:date :to:from:message-id:dkim-signature:delivered-to; bh=9nJ/QrvdATo7Sj4c0p/UnmYIdFsizPmlPHO23S9Bvo8=; b=hh1c8O1pEQcT52H8StR9CfpSnzkMp3bg+mXhA0gYQvxDlDeY0EFI6tOEmkpKtVXoBl 4U3CBN+NKiIY6rZ/9qACT+t+qXVXS9eLzyaKMBeskUpij5pcj8mrKg9iC4A1dmiMP9QL GEmvplHgv5EU+FdZp0b+b7mzX665O+sOyeQk6uBjyvhRVX8oWdoFpsUEd0EsRRcKKAhc TUh/h3Gz7p2WdBrgczj6HdD2vdFww0mXBeKW/Upc8M9SSeY22giXuX8DRT2Sc5WhlWIZ +6/LCdcQHQ+9/VN7G7CqPad3xGdEVe3Bxs9pfc3OnqQmMTovO+vqAFbhoSc/lnQLMerI W0rw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=UJWkBKmN; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id o7-20020aa7dd47000000b005149bc2c0b1si1972629edw.67.2023.06.09.04.21.40; Fri, 09 Jun 2023 04:21:41 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=UJWkBKmN; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=foxmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 668F268C33E; Fri, 9 Jun 2023 14:21:23 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out162-62-57-210.mail.qq.com (out162-62-57-210.mail.qq.com [162.62.57.210]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2ABDF68C31F for ; Fri, 9 Jun 2023 14:21:14 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1686309672; bh=qqFgPNd8u/imEmsSgiyQ04gGfTwuFpkSwDNOJbY99Os=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=UJWkBKmN0agbkfvD5wnSf5/ezNAGiLikDEWFdrbM+HH98XzgFxoJlvXrqikTo8ekP 6aQj8fzyQGc3xZz0Io+5LrGiwypmv8SV2VC7ZADk/m53oLKkO57Q1LOd3Cfz6ch4xl xlxUCTNWAtCHgzL2NiOvQMvOfJHmKipIkzFlRXm0= Received: from ZHILIZHAO-MB2.tencent.com ([113.108.77.55]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id 3C02EA18; Fri, 09 Jun 2023 19:15:00 +0800 X-QQ-mid: xmsmtpt1686309310t1pwvwci9 Message-ID: X-QQ-XMAILINFO: MiE+axgVDEQLcqUpJcREuaGroACzphBQqGpczEscCuKxrYQFALNdBUYgNwfCaJ 6l6D93mBkJbC5rhpnEeYu6eWiAldaK50fket6pav6FCcCuR5KR+dB1lwyE1WhEszG/xj6tk0GD+Y WKDxcBEc3vT0f34qaAS959ZG7v/FjF+Vv5QAHOXY3dw4EJHhY/8A6AXpy9+99IrhU+DbrLyaJjrq GgLk55zugqzP1A722uxAUNEcxLc61zSZJe3uBeiObei3458swlZ+XA4YXHLF56SAhucytkZSL/ET OvW+Kes1pc4ZlROOYStJ7SE6fM1j/vswY5eUn6ieTKjmAHShkfZsaN4wJj80DOQHOJN0ElRPwsKW tcLvksu6QN5QFcFdhXQoiofMdoJrcs32vTVRcm/5wnryIWO4VYv7RhECWep2dxqRlWYtdhH+KuZ0 cYoX5YE5GrFqvTy3wAy0oz5eqSTYEX5zPVQ1cIj3S8wKo0BCpzUwsztgkPvmppjRTMy/yXahllsr zblHx6MiNMi62LDmZwgjIsixyEP3L/fFIlXyPzJYG7CYyQCOOTmI9HTyNbn13G1eZyyrJKnRvQ/V 0mt3A0rF9aQrIGMhV+TTfBw09xl8w+/65rep+TI+VQl2hDHOTQueuz8vuLVvJ3CF/aaKNDZGUgHJ w6N7MbaanOs14RoJeZdwFofX4o4A1GciJaKa/1cG3JsBm7IUBRHg2Czg31g0Xn++C39SrXmtv9Dh Peh1Y4lpq0Y8ANbekXVqc2qIbeos8WjL7vTmxGtYDbJTg1DIijKQZBozrn+aXpF0C2/sh2t+CTof IbFcxYVc4ctln2bRNH2PNRwd8r06Eb5lSdbAa06pUeD8GKCwpb85jznnlvuX98CrU7TpJl66Q5Ds AfcPbEiU0AJOmOC8S90hmf8TQ+7YeP16LvPF35IklQYN5NAjh9xhDC/DW9pTOKcVXvKsiEoexhDS cATIeenvy/xoNAuYWBgp8VCQVFTro/hMCHGBp+Wli+R/RNMXU3gCScg0veGSdbYz/vYG9NNxySWV evch3errt+aW1h1dDL From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Fri, 9 Jun 2023 19:14:55 +0800 X-OQ-MSGID: <20230609111455.17989-3-quinkblack@foxmail.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230609111455.17989-1-quinkblack@foxmail.com> References: <20230609111455.17989-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/videotoolboxenc: inherit profile from AVCodecContext 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mPzluxaKPSbJ From: Zhao Zhili This can happen when user set the avctx->profile field directly instead of specify profile via option. --- libavcodec/videotoolboxenc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index 9f65519700..a313087876 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -1746,6 +1746,9 @@ static av_cold int vtenc_init(AVCodecContext *avctx) pthread_mutex_init(&vtctx->lock, NULL); pthread_cond_init(&vtctx->cv_sample_sent, NULL); + // It can happen when user set avctx->profile directly. + if (vtctx->profile == FF_PROFILE_UNKNOWN) + vtctx->profile = avctx->profile; vtctx->session = NULL; status = vtenc_configure_encoder(avctx); if (status) return status;