From patchwork Sun Aug 29 16:43:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?Jan_Ekstr=C3=B6m?= X-Patchwork-Id: 29850 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp3250431iov; Sun, 29 Aug 2021 09:43:49 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxaw4+4v/g1JYxz98ZAHDlufv/Vtjm/5hbz/ieaQ5xkVAy8EUunV1KBZnn0FA/yxoKF19OL X-Received: by 2002:a17:906:3708:: with SMTP id d8mr21313643ejc.310.1630255429125; Sun, 29 Aug 2021 09:43:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630255429; cv=none; d=google.com; s=arc-20160816; b=XP+p1fD/y+pKAbuNrc8E/6h6Ib5xExeWknmsidQ8w6T2Q0Wa/+gSN1uy17wVUtXykM sqDek/6NIIppJt1ThRUmYr0NsUAUGWQCkkX3TzAE/t1URmqiHwF4lTgqIXjhHp2Yql7z 7UOkLt3/i/X0/PYOPcqEG9pslTFyc33ghh8f7/vsgJNz9kXRLmgPKkm4PSkJsSPpByJa WIeWE3VUO79v62aeuRAzwMpqMr4E1X5ljEvZfk9VtHecRqRYr9fmHD6ge4oNQh/0SHkE /zMAG8V+s/IedAFbpW3w+c5jalu5MG122tAd0953zQznudCjzJxR7XrCvJx5lIyw8aKx w6TA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=w5MUxf9FwScekxYJj9oZDixUgk+kqqKa2it6ivThOYA=; b=C/x5+CD/P4WjXJfxMjNmMQm0t5FrgDLdStOqANCTbshN80apnmiuMmPvjr3LqvPYbo nH/Gt7zECaO0oOBXswT0Er52nzkFtbehD5pRI3R3EgckSnmCHMjm65dBBg1LuJ/fPkk0 R5pKR4XtKNUs4118UznGWXxrpxdl0Uzpfhr3RuE6kyrk422AJUIVo86DFxdshm5/W3dk tiXpy2nzxk+hgv+xuci7Hwy/2+LIIhtkV72vi+/3J8/w+jFsPRdX78xJ5T19Q76QG1TU +MdyXrM+Pslri+z8o73b/suPN6xqJ4YOVLP+h5QjVwleBCmmyjZL8hQAXWE6ptr7UgaM 9vkQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=b6TymKvE; 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=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id u61si9810208edc.375.2021.08.29.09.43.48; Sun, 29 Aug 2021 09:43:49 -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=@gmail.com header.s=20161025 header.b=b6TymKvE; 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=QUARANTINE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5205C68A1D4; Sun, 29 Aug 2021 19:43:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lj1-f176.google.com (mail-lj1-f176.google.com [209.85.208.176]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 536D2680394 for ; Sun, 29 Aug 2021 19:43:30 +0300 (EEST) Received: by mail-lj1-f176.google.com with SMTP id p15so21458179ljn.3 for ; Sun, 29 Aug 2021 09:43:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=DxYUvs0Hvsl5IbXqCtLIP+1kXK+eC7sws1+4SSsdWYA=; b=b6TymKvEVrk+L1QHtlOBZpz+NaTZkhKF/87oEw7zAUJyho6prpVcv6obuHHF8r011j jv/stciKKZ9Co0HjvBvx6j+juih2HKaZIgI4QWkqc7z8Y5n8riCM6jnAs3CIhV6k9fUL VLcupPqXbyAUYhZFt/N0dYNt2498W58y0YQh3s5AS3/6XmylMGIUn1a9r3YYaYV1GdkE 9b6oWRhq8cWntO7rxoy8KjHpHrSdXpQ+Rm7o5Wc55LWLqlIdfAV8UkiZAXYO0zoidiwj p8nmghi9uZzQwbI29jbQlKEslOfcv7HJSiigAzoIUiBTTvAifKK2Insdu9xEfZB83VYq WP0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=DxYUvs0Hvsl5IbXqCtLIP+1kXK+eC7sws1+4SSsdWYA=; b=uR/3AoTBa+EthgS8rtOvlOCXGRVUsxfRleVrfuGfJ8IlmglE8glhKItH4ZlA+M8ZTS /hmHYx8viXPhM9P0U0ZaFPWNYzxH2g2nKn/xwAxHojyooZBgtRAo+bddnb6lFssrdvjK UJAKbR9zrV3bdqhRjPJcurCwnKuUx70vrt1kr4PTOBEMvyQ+Si8neVijXSf99gncL/B9 4fBzN1y6zdoj8LWOsdsnFSP0MWew9IivVW2+xZddYbgsst74wumwzGxrIyXKTdYmaqTj 68z099S/Ae0DHtBJmERHsBw6CVIu46wwI8jeSkTXL9dZYMPmCsBqWrJ8IPEKt8DT1VUW uJAw== X-Gm-Message-State: AOAM531c23Sry/jp9hFnm2wwMd8O79VHS6SOpQyBz2CO4hm9wc8QIyOE 7d6kaGyPuuimMkl4GlCxSZx66qrWsIg= X-Received: by 2002:a2e:801a:: with SMTP id j26mr16703668ljg.385.1630255409673; Sun, 29 Aug 2021 09:43:29 -0700 (PDT) Received: from localhost.localdomain (91-159-194-103.elisa-laajakaista.fi. [91.159.194.103]) by smtp.gmail.com with ESMTPSA id b12sm1170863lfb.42.2021.08.29.09.43.29 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Aug 2021 09:43:29 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 29 Aug 2021 19:43:23 +0300 Message-Id: <20210829164323.62565-2-jeebjp@gmail.com> X-Mailer: git-send-email 2.31.1 In-Reply-To: <20210829164323.62565-1-jeebjp@gmail.com> References: <20210829164323.62565-1-jeebjp@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v2 2/2] avcodec/libx265: add support for setting chroma sample location 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: IlwnPVGuwAPw Unlike libx264, libx265 does not handle the chroma format check on its own side, so in order to not write out values which are supposed to be ignored according to the specification, we limit the writing out of chroma sample location to 4:2:0 only. --- libavcodec/libx265.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index 71affbf61b..839b6ce9de 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -211,6 +211,19 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) ctx->params->vui.matrixCoeffs = avctx->colorspace; } + // chroma sample location values are to be ignored in case of non-4:2:0 + // according to the specification, so we only write them out in case of + // 4:2:0 (log2_chroma_{w,h} == 1). + ctx->params->vui.bEnableChromaLocInfoPresentFlag = + avctx->chroma_sample_location != AVCHROMA_LOC_UNSPECIFIED && + desc->log2_chroma_w == 1 && desc->log2_chroma_h == 1; + + if (ctx->params->vui.bEnableChromaLocInfoPresentFlag) { + ctx->params->vui.chromaSampleLocTypeTopField = + ctx->params->vui.chromaSampleLocTypeBottomField = + avctx->chroma_sample_location - 1; + } + if (avctx->sample_aspect_ratio.num > 0 && avctx->sample_aspect_ratio.den > 0) { char sar[12]; int sar_num, sar_den;