From patchwork Thu May 23 07:08:56 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhao Zhili X-Patchwork-Id: 49163 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a59:542:0:b0:460:55fa:d5ed with SMTP id 63csp844091vqf; Thu, 23 May 2024 00:09:22 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVUYXTlnLe84fBpBa0JIhcJuXyd293Q/aQndB4r4917jt4obMPFfVDpmgd7rRyDwGvCeO+v43w0m+eIwJFtj66axQ+fKTL9Q0BB6g== X-Google-Smtp-Source: AGHT+IE+IFX4tO9qHELM4Xg6xkQhABIEIdzDQTZyMuRnk7dopQoxkK6Cst7tO4/n60uH0cnkCqgn X-Received: by 2002:ac2:514d:0:b0:51d:a87e:27e6 with SMTP id 2adb3069b0e04-526bfcf733fmr2488330e87.67.1716448162598; Thu, 23 May 2024 00:09:22 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716448162; cv=none; d=google.com; s=arc-20160816; b=kqqYJJivyd/7PRXWfxHXpxJrEpJjCD2UxIrfwrAf/7slgl06wRFk4VwnTIMJ/2nThu 8Cj4L9U6z83GpggKmHcGcP4+waN6ht8NmPMzYqEXslRu6F3L9A3AxlW8mQQyoaq3AWFY TfZpEIM6cfiGRpWimqKXhlDTiy2MMbs6JQJCo84etdugRvNQC9xjcntH7l7boOTdWSyU N45dXaspDQ6Cj+T1xUzHmw1uNgHjJ79QWGLXn+xe16i7I3xehHjsEAEVCJ7Swch7vVSm NJlapNGfxq9kh4ghIrYtGvgPHp1NYz9rPr9CtBFX3oljvkwRWq3SMW1sfMT34PKRLBsR 69kg== 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=l47nq6sn2Bk0JbWWSdFEU2g619j2IVh3SzvabQAz5P8=; fh=HnHYuZ9XgUo86ZRXTLWWmQxhslYEI9B9taZ5X1DLFfc=; b=EryF3nckqs1+WoUE7xK1sEvAYZyy6MHmrzaHqHJZQ+oJKDirQu0f6w54bEWnF36TQG Xk2ODDPK54UbhHCpw49DanEkGTqYQ7W39WVISbjDnu/IKIu5v/Mh9KOvBVwYb3GMJ+j8 iPP2YJ9wDCsRPk/Zp55fwi2Lbqn4dpBD4of1kNM3iBbb9GgopX/ofP+nHTuq/O5z2tuo IxNhHh/udF8lsOarRbRFktXlV4+X0NNDCEv4DAX7Shz1ygWQgmH1S9ItNqecxXCeMJCI di0ao1ilrroHZgXntgg5TukuqafzVcNkUhKDL8B+SdOS2+eHY+iAkiHLTNBz72f+ubeh BV9w==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@foxmail.com header.s=s201512 header.b=UnrZ0O6T; 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 4fb4d7f45d1cf-57847578a83si352179a12.381.2024.05.23.00.09.21; Thu, 23 May 2024 00:09: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=UnrZ0O6T; 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 D3FEF68D355; Thu, 23 May 2024 10:09:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from out203-205-221-233.mail.qq.com (out203-205-221-233.mail.qq.com [203.205.221.233]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 279F768C6D5 for ; Thu, 23 May 2024 10:09:09 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1716448140; bh=ZpSptXMFaDGdLQ+LXwfr8McxpY2O89uo8GF5nNsuOY0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=UnrZ0O6TAE6mAu61jtjbMLgBXyQ/STivTSaPCaeXTK73+id8Wah619Nx2CxEDAQEH OkXCnctfBQsPHrY59AN9LWW6LXPxqsal7TnAnWTeba4FHT/cW5ZeElQUjz5Wi2Y3Lm TGUH+xGydZ1CK+qcVkDoW+fSyA3XS9Kah2VR8goA= Received: from ZHILIZHAO-MB1.tencent.com ([119.147.10.190]) by newxmesmtplogicsvrszb9-0.qq.com (NewEsmtp) with SMTP id 23A264EF; Thu, 23 May 2024 15:08:58 +0800 X-QQ-mid: xmsmtpt1716448139tl7eyn7wx Message-ID: X-QQ-XMAILINFO: OJV4F5WcWfWa5ojQZ4MX+trWwYSPOHWfYr24fJWKdxw0253SrorlSsitHXFLyI 9eAvrH+v9elLBfe/V2+w2AiSBYdrSidXwayEFgO5GAHtwcFg9/ZZBf7C0OowSebyEOUzzmKdrdEV Y3XSDlqLHz85SNT3KpeRx+cPQhruRi7JV/Fhzk5a8vFk6ZhNBOYGOAS7zHkimhRAS1rfla6RTBQN 22sw3TRoLBTIyMwxq0gP4RnPAGTEAxat8WzfAiv1Hl4gXkBCmWmpZ95AerAc9tMgeS9UyjJPukkd 6D7i1EhTk2HFnP6G8PThridbsJyUy4OsvY8LrK8ZDlvFdZtfPlcjYDYrhYHc8N1gm7+mz0zYf+JA jPF+Im/y65mkIZi33HQYi3jBImlU76V7OHUQIQKlAbFPbPbQyvF7hF/e9OzBJrQp39ABlzzwGpty qy/sg2G2jCAl3aBZKtclEzIkPqx9ljaqvHNQn7OxLgLMdV4s0Voz3KycLC78kM3U/UDYT+2/AlCe sDgP1ZcKHFogYbyF9pqeyhl+9oND0cJzw9nIku0BWp0rUMjaZOMVsM6nK+BxgZbdUWutnL1oZ0Xp 9kSofc8zh8ebMqqpb8MJe+1mbOwcqP7qe2zd4gc6l1mvXhXJgHX33haNJdSIlaqVcd+ZYZoJBONU Cgu55NYXY4Bqh5GDTC59qZMEbssA58Uk9j9JYE7D+/oTdBWNo4SBeikP9ZFvceBR+yTLWnIjO9j9 buACBM9EH2kzCAZWwDjaCwKGG+7rdh+DWfYJ1sm9K9vZ3tSU5e3FitRxHaaNi4cgvszeDHYLapSN fwn2INwprjW84AFCMQkScIijMJ7WuzFNVmVcLrt0cIDJ7yW//Hc8R/5xlaxF0muVABACW4cAaIEk AqAoBrMQP3cHte6EDeRJsg61Q+MeGek8GfEbg9qbXgobn3U8KilsoBCPE8190WG/2UNIlWqmmALk YSyWgEbvHgFvMXmVY/iJeS38ZQ5lp67dS5SYalLluGc2mtD+4u8dgPrYrPLuERnuS3E0R39jNHbc i7RzXVvr99unG1KV7C X-QQ-XMRINFO: OWPUhxQsoeAVDbp3OJHYyFg= From: Zhao Zhili To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 May 2024 15:08:56 +0800 X-OQ-MSGID: <20240523070856.60655-3-quinkblack@foxmail.com> X-Mailer: git-send-email 2.42.0 In-Reply-To: <20240523070856.60655-1-quinkblack@foxmail.com> References: <20240523070856.60655-1-quinkblack@foxmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 3/3] avcodec/mediacodecenc: workaround the alignment requirement for H.265 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: alDRTUQnmg4u From: Zhao Zhili Signed-off-by: Zhao Zhili --- libavcodec/mediacodecenc.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/libavcodec/mediacodecenc.c b/libavcodec/mediacodecenc.c index bfff149039..a42270551b 100644 --- a/libavcodec/mediacodecenc.c +++ b/libavcodec/mediacodecenc.c @@ -154,8 +154,12 @@ static int mediacodec_init_bsf(AVCodecContext *avctx) ret = snprintf(str, sizeof(str), "h264_metadata=crop_right=%d:crop_bottom=%d", crop_right, crop_bottom); else if (avctx->codec_id == AV_CODEC_ID_HEVC) - ret = snprintf(str, sizeof(str), "hevc_metadata=crop_right=%d:crop_bottom=%d", - crop_right, crop_bottom); + /* Encoder can use CTU size larger than 16x16, so the real crop + * margin can be larger than crop_right/crop_bottom. Let bsf figure + * out the real crop margin. + */ + ret = snprintf(str, sizeof(str), "hevc_metadata=width=%d:height=%d", + avctx->width, avctx->height); if (ret >= sizeof(str)) return AVERROR_BUFFER_TOO_SMALL; } @@ -235,7 +239,8 @@ static av_cold int mediacodec_init(AVCodecContext *avctx) // Workaround the alignment requirement of mediacodec. We can't do it // silently for AV_PIX_FMT_MEDIACODEC. if (avctx->pix_fmt != AV_PIX_FMT_MEDIACODEC && - avctx->codec_id == AV_CODEC_ID_H264) { + (avctx->codec_id == AV_CODEC_ID_H264 || + avctx->codec_id == AV_CODEC_ID_HEVC)) { s->width = FFALIGN(avctx->width, 16); s->height = FFALIGN(avctx->height, 16); } else {