From patchwork Thu May 18 10:15:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?b?5b6Q56aP6ZqG?= <839789740@qq.com> X-Patchwork-Id: 41709 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:ba91:b0:105:feb:71f2 with SMTP id fb17csp367372pzb; Thu, 18 May 2023 03:15:57 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5tS9CsEbSf+nHaFEhC1cIWufhrvARCqu8MMplAyomT7RitweMcFpjYr3yg9uvxyKJzlWgY X-Received: by 2002:a17:907:9482:b0:968:4d51:800b with SMTP id dm2-20020a170907948200b009684d51800bmr33578944ejc.1.1684404957147; Thu, 18 May 2023 03:15:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684404957; cv=none; d=google.com; s=arc-20160816; b=lpEPbXsKjjozxtcly7kQtN70J58ER3vhrzXlXwpAWC9C4gCxVALmWC8jUtof0IzYWJ 9f0NNWjdacKRgSeEY9YXd4OUr5RpOHb6j9nJRZGts+498Glmco7vdxk7b/WAdMqadunx uZA05GI6r9dvyX2aWrQPmFduqMHV7KAEkRpwdotIV0pbbYJ7ZT143fjKf9L3IlTpGeM1 8/vASMqXyAbNdYf9DLmvOvy9OGOjHaAJvBz9kuxVUCMRACf1JGHXOyfjVI/nPHKCT2DR jkIifpTkZ9ejihF4jZYn0UanXds+DU7NHFCvXEdmliRz22D0w5DfbgGmeJtV4adjXDyl Ul4Q== 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=5IYgur0hDX1zlGcj+v4j92Eb4B7Dlb7D1Kc4OhOA2a0=; b=RD0o4HHbpqz0cUqmNLtl3J3C82hfhOL956PRw6C40DzUvtw3m2DP9HyItWfjf8u8Qy 22cuDGooaQuMyNMskp1AmCLi2A1x+g4XK1+kKScnPAZAloGABQVN/sFmZbUzmK4aiDUS fhjoPefu1dPc8+PQlpSv82JAmdT09HOKUlXtWjN0fYAFuUrh58j2Nci0phqU7QwAVXMG cABmp0AqBJ/zAr8olNlDH890lXNLlPfyFS+iNkmSijb9P9Qnz4+D7GTm+8L+wKiTExDU p/HuU1fUZ11IIi/Yk2O8thbVOyzrBorGW31thUFp4dIqQyAsrMUXH7pDzur0E7FoJW10 tiOg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@qq.com header.s=s201512 header.b=p85Cw3jY; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=qq.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id hx23-20020a170906847700b009664e7337b6si1173358ejc.516.2023.05.18.03.15.55; Thu, 18 May 2023 03:15:57 -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=@qq.com header.s=s201512 header.b=p85Cw3jY; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=qq.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 46F1968BB37; Thu, 18 May 2023 13:15:51 +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 A010A68BB37 for ; Thu, 18 May 2023 13:15:43 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1684404939; bh=YHH0QvmgIBVZLOj2DrxTDwtmumvc2LvvR1DkX2e92BQ=; h=From:To:Cc:Subject:Date; b=p85Cw3jYtMD88QPD/lRo6qYibcpRyJUKNtRip/ulSYNyCfgv7z1BfGox9aH/gPd4r BM78z4d609/QjDZk0etBJ5AzsXMEocl+bIjcimrkC68VRRbGYhtqnNop3Q5S60MxhR IjG/Cqmvf694SQyC7koMwNrQkCg8qm3NnEAa3K6c= Received: from localhost.localdomain ([113.66.217.3]) by newxmesmtplogicsvrszc2-0.qq.com (NewEsmtp) with SMTP id 3E632602; Thu, 18 May 2023 18:15:38 +0800 X-QQ-mid: xmsmtpt1684404938tqf44vver Message-ID: X-QQ-XMAILINFO: MR/iVh5QLeie0Tc5LIr3C88W+rtZrnwgFu1mQEf94fHblLJdhRuykSP0hm+8ar GSZOkubnmmLFyZ2ouzu+YrtNADhDrRoNC88Athn5btBxWB2LSErl3kpLCNCWQnOi+czM3Njjh8dh srSinxtugSrrFrRIF6i3lFQcaHtqwgFMv2vhVnL0xoA+p7mJ+bZgK8drKWfhbrESYRvrmZcBhyzg 5QV7cC2tgrJCzn7DcymygWLcOtlvA03tq1TrDs4JP8GjlNcHmj/R8Jz+qH93Laes49xgEXpmPUIk 1lBykftX4d2EVOrV8ITAReot973e9Dh1vOIEDnoJEEnCmREgUeWtDvlTxf/fqGYWdbyJYQDJ2uw0 nh1kshr2VH/K7j5S/61RoOoflSWgICE2Dq8kQnaDj7xb6hZf0/rvQHC5/sheryV50ETfIBGtFjhs //0JjKcA8Ge41ODEBkX3TgRf9VEKqXWwQHDcMq3bp9mM6e3TqGiumvPfHcHvkTDDeKe1Xc2YjDdW JTYgYRAp9QGGBeh4umRjcibJrDekxecb0Hxbqi26CHGlOoTDzc8DHtw3ik6pZxut4nGa9U1yEcPx d5AWfRzUmvLzoXArSn4eSHHnLxvn2nREwmgmi/kYVWupzNgXWnGIBFOVxEwShN9XCBa0ieRqYLKc Xhm5DanpqEvAh3JQ1VlQ75Z0lByJVylMJTti8ZEXoh5MkncKMZ8Ts9jL5VmSRZF8htSCQb4r6PgZ tGCR9achQghDZmPTEQAtX2RzLVzNG4TzRTMGBFX9LnKRUe/4IdTCatXJcwDIGVf9yMkfFsvx/Z4G huaMuBnC3AtVGigTxFxBLVU5xrnuxXlUzIDI9oV0P/5WUh6hvAyYUWfgsVvNURDcNgn3ZCdjtoeO jsBXqwEb43+G0sAfUbwbAkpB1+6kB1ZJ7ey1MRSyL4CpRlknekHUQgYnn/j3gJN9p8UkI/SwjysN IguYGay7Hl93vTq0ZNchblxqWiD0I1yNDUkTPLaKg/yOXebgleYA== From: xufuji456 <839789740@qq.com> To: ffmpeg-devel@ffmpeg.org Date: Thu, 18 May 2023 18:15:35 +0800 X-OQ-MSGID: <20230518101535.13785-1-839789740@qq.com> X-Mailer: git-send-email 2.32.0 (Apple Git-132) MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH] avcodec/videotoolboxenc: add low-latency encoding 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: xufuji456 <839789740@qq.com> Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: i3gQj/gG6b3R Signed-off-by: xufuji456 <839789740@qq.com> --- libavcodec/videotoolboxenc.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavcodec/videotoolboxenc.c b/libavcodec/videotoolboxenc.c index c6f22723d6..88334f1851 100644 --- a/libavcodec/videotoolboxenc.c +++ b/libavcodec/videotoolboxenc.c @@ -251,6 +251,8 @@ typedef struct VTEncContext { /* can't be bool type since AVOption will access it as int */ int a53_cc; + + int low_latency; } VTEncContext; static int vtenc_populate_extradata(AVCodecContext *avctx, @@ -1441,6 +1443,16 @@ static int vtenc_create_encoder(AVCodecContext *avctx, } } + if (vtctx->low_latency) { + status = VTSessionSetProperty(vtctx->session, + kVTVideoEncoderSpecification_EnableLowLatencyRateControl, + kCFBooleanTrue); + + if (status) { + av_log(avctx, AV_LOG_ERROR, "Error setting low latency property: %d\n", status); + } + } + status = VTCompressionSessionPrepareToEncodeFrames(vtctx->session); if (status) { av_log(avctx, AV_LOG_ERROR, "Error: cannot prepare encoder: %d\n", status);