From patchwork Sun Aug 29 16:43:22 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: 29848 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6602:2a4a:0:0:0:0 with SMTP id k10csp3250327iov; Sun, 29 Aug 2021 09:43:40 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwGx8OVlaGx9Bm/i28C433TpdB+YnIPN8Wd2prfGn2DdktXi1bLQIBDnL9nqPIuSp03mI6E X-Received: by 2002:a05:6402:5107:: with SMTP id m7mr19964134edd.63.1630255419903; Sun, 29 Aug 2021 09:43:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1630255419; cv=none; d=google.com; s=arc-20160816; b=LXrlaSJD28a2xUD6WV2sd4M/mUYws8iq7FjCnF7NZzXiPARIOP4DeobK2eGg1fOOAE 1Gaa/xIvGktIlWU3W3VPsskA0pH7UsmLWecNk4Lo6XET64nGROOJG/RWreboruLaxTXj T9OAmv1N+cRS9V0DPATVguMGSCiJa+TJ6ANPW2CzcF5ui4J4Quc6Gdt/66aexqdFdv6y zHKcYVyCHGCn5dlwbxShk1fEaa1o/V1CSwoCwK5q7JFQ0Z7V8wGRoEIa2aKA55mNEwZw pzYfR/igqEqAxeERc1HoMbXjVqLdhtf55V0Jxlks60ar6vGx2kLekaPoY2si0lN7wpg0 zfpw== 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:message-id:date:to:from :dkim-signature:delivered-to; bh=aMgCXFYt0XEWh6ohNEMriW6SZtdHRWA/94c+jXgnOaU=; b=qK+pUxYhyx5YPuhMoZ4KBK8J0ctbiUdGjngsL7aseNh6fzB4dIzpiuTO8QLs41HCw5 jg77wBI+kvxEYfdZdrlkXEd3TMBZY5c87bCqW+EnDG9UCsiAiop2UCRPDQyp+/fm+8U3 +3Pj5GEgrPJyT20OH5pzOpb7xGXAm4zRSIMq7CRUMpZaa0r3OxWjQOQqc8QxJP7HA1qy lzlhHYQfu3IjMLgSOIIhNWfM30pnOHFyq9WvAEwFdn5D2j8HxcT4BQd26P3TdE2Sayfa DryfZ+1cHV7RXZxNtONZaHCM2eitVKLXp1+4Zw+JRnJMDMj/tlpOgusJnhFPlq1X9fZw tvsQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=Op0mh+6M; 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 ar22si10494594ejc.536.2021.08.29.09.43.39; Sun, 29 Aug 2021 09:43:39 -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=Op0mh+6M; 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 67E9A68A0BB; Sun, 29 Aug 2021 19:43:36 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-lf1-f45.google.com (mail-lf1-f45.google.com [209.85.167.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C8FC1680394 for ; Sun, 29 Aug 2021 19:43:29 +0300 (EEST) Received: by mail-lf1-f45.google.com with SMTP id c8so13539101lfi.3 for ; Sun, 29 Aug 2021 09:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=gfsHsrH0J/k8Qyb7JQmfuH14siFNJ52EFWn/q4FURcw=; b=Op0mh+6MhmmxOXJr7Iwux9KYeBjGOKG96MUXpfzU7Esl/fpPiQoDvyONmut4HKa/qd gZcJdX1+N1lcYkJTIBOiErUhm3pDNXD/DNO4nS5+Lsn1Ub5lxjGhQ1GaA5K+TGFO2CYY Rdyvi2yBKfuAbrZ2Nip8/EpmGb08/VjERrlBoPdjg7ef2Hv2ptrkrVcTmKdGDORgZ6ol gK1KRF1PHfiY3jfsvJYr1hHGlVa2uuFm97KUcjjZx3q/FoSnZVmjC+HtOT+hwq/gzOJ4 OGTqaCXuLaekZaQ95NqaWc/W1qPcOpUMlvPrB9ICuLwNZiGm6/wcNwd1g+eWxRRtNCoC fRyw== 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:mime-version :content-transfer-encoding; bh=gfsHsrH0J/k8Qyb7JQmfuH14siFNJ52EFWn/q4FURcw=; b=WpUXfqH7pgmal2MWcFywDyrjRGlfv7B0bxLEZyELU0BgpzIqalSK+np7vSwtt30bTo 6dTQYEPzaofu+h4CUEpWkBpjlASJGgRVa8WjcuK1DX9yzfrmTMbdABc+5NCXkco/weqe 8i8ODwIVYWTMMC6lzAQQSyN22CIEqdxPbdqDJNPL4lO8lkUflmgsOJ1jZQ/k2DgtwBrp W+BTbEBzD7Irvy7MEBZ0OfhEw7Lj+DfXbFPfC/MZgIkGETvN1Xph6OGKqH8TEC12Mp7J jWwBU1woar81GI+TbKLUOQ46XoRzAyYeKDuXq1fWpZjUjWyWhw1D1X/rMp1L2srdgF9g t0bw== X-Gm-Message-State: AOAM532mWpYuz0fdx6mJaNQcVmSwOtAWqIIfsiXcJzqaiB3sAyXWQvfR QNm+tUFHPwMa8G+thRvmWR0CfjFQUjs= X-Received: by 2002:a19:5059:: with SMTP id z25mr14337658lfj.437.1630255409081; 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.28 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Aug 2021 09:43:28 -0700 (PDT) From: =?utf-8?q?Jan_Ekstr=C3=B6m?= To: ffmpeg-devel@ffmpeg.org Date: Sun, 29 Aug 2021 19:43:22 +0300 Message-Id: <20210829164323.62565-1-jeebjp@gmail.com> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 1/2] avcodec/libx265: only call av_pix_fmt_desc_get once in init 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: rg3bXDEiPnvR Now both current usages utilize an already found descriptor. --- libavcodec/libx265.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/libx265.c b/libavcodec/libx265.c index b5c94b64a3..71affbf61b 100644 --- a/libavcodec/libx265.c +++ b/libavcodec/libx265.c @@ -124,9 +124,10 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) { libx265Context *ctx = avctx->priv_data; AVCPBProperties *cpb_props = NULL; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(avctx->pix_fmt); int ret; - ctx->api = x265_api_get(av_pix_fmt_desc_get(avctx->pix_fmt)->comp[0].depth); + ctx->api = x265_api_get(desc->comp[0].depth); if (!ctx->api) ctx->api = x265_api_get(0); @@ -186,7 +187,7 @@ static av_cold int libx265_encode_init(AVCodecContext *avctx) avctx->color_range == AVCOL_RANGE_JPEG; else ctx->params->vui.bEnableVideoFullRangeFlag = - (av_pix_fmt_desc_get(avctx->pix_fmt)->flags & AV_PIX_FMT_FLAG_RGB) || + (desc->flags & AV_PIX_FMT_FLAG_RGB) || avctx->pix_fmt == AV_PIX_FMT_YUVJ420P || avctx->pix_fmt == AV_PIX_FMT_YUVJ422P || avctx->pix_fmt == AV_PIX_FMT_YUVJ444P; 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;