From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 47E324089E for ; Fri, 24 Dec 2021 03:10:36 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id E536D68B22A; Fri, 24 Dec 2021 05:09:30 +0200 (EET) Received: from mail-qv1-f48.google.com (mail-qv1-f48.google.com [209.85.219.48]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id BB8B068B1FD for ; Fri, 24 Dec 2021 05:09:19 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id r6so6755723qvr.13 for ; Thu, 23 Dec 2021 19:09:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=LI5goSmLf5fz8oM4J16rOAXFvGx0VcEiB0HEfL9hAxA=; b=V5sQZ3dfcjB/Yh+kLxQBRaNPhAoeEp3NVfxoU12bB0vsDTvXcQeK/D6cGT35NFcEei bBglJ0cmYWiC0tMfz5mpmHUdvk0qHRmKi7ASPHj4Y+sTqKh6naAI15u5u1cz+knDFJkc 2hOHWGnwf4hQ0xwGCivGqdSXWkB2tcRYXOg+PQ/lfoaHo42xp5h4HTUwhi702vlW9BMx Nfx67KFHw9aUiRRUOSXv9NQPzVyD4Q6sB6qb2jvOAytvIVWp1Uvqgx8Kdd8D3HGJoetl +H/Wf1ZFASeYqqlIPCq5eYULqTiX5YnfCWkeX/XfmMaOvVzoa5zIIfIMe2GQLJOdt4fh /Wiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=LI5goSmLf5fz8oM4J16rOAXFvGx0VcEiB0HEfL9hAxA=; b=csMfj/ZiogBNNXXxfK4GpJqEIdwdCZpuMkFAVLVYYMQHixlQ1iccmnk38wWh5r8DbO TVtZABUmJsx8rDNllL3woqEFIEFdXyXO7onTT39eF2oXWEqF7Nz8f8eDcZXG9R9WXM7F 2vAKukIF8HJEpQMxxNM5vUhM+10a/oRbXTYYldN0zZ+lgg9P+G0YmJ97JTYE2eSJqA8S Sf0F1tb8DdI6dlvEv1iLrV1bVefnISgdoPv6a7cGHMhYxiOCGPbcSYA7QqAETwMDjGr3 v2ahK1xrsAprADJvqWWSw2PWYDJ4IuIniizrGWbM0g/HMnpmfnY3AeauMLPm3r6dPevC MXeQ== X-Gm-Message-State: AOAM531kGYP/8CxXbOI8ZGpKcjL1h0NudOSL5UflCTWRwl1X4Sk+Sfob iqzH9KezY7KWI8BAweP91YXUhs6+KgAEPxM= X-Google-Smtp-Source: ABdhPJxL6asvcRGp6gQjXIUMVjrD8h2laIxLHtGu3ZVESgSp8Cn0zesE9VNDt6xpUAhH8ZdZJjNgRg== X-Received: by 2002:a05:6214:2483:: with SMTP id gi3mr725895qvb.60.1640315358221; Thu, 23 Dec 2021 19:09:18 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:cd8d:58a:de7b:88f1]) by smtp.gmail.com with ESMTPSA id e15sm5162479qtq.83.2021.12.23.19.09.17 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:17 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:53 -0600 Message-Id: <20211224030904.1196-6-rcombs@rcombs.me> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211224030904.1196-1-rcombs@rcombs.me> References: <20211224030904.1196-1-rcombs@rcombs.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 05/16] swscale: introduce isSwappedChroma 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 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: --- libswscale/swscale_internal.h | 19 +++++++++++++++++++ libswscale/tests/pixdesc_query.c | 1 + tests/ref/fate/sws-pixdesc-query | 5 +++++ 3 files changed, 25 insertions(+) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index b4acaceebd..3a78d95ba6 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -911,6 +911,25 @@ static av_always_inline int isDataInHighBits(enum AVPixelFormat pix_fmt) return 1; } +/* + * Identity formats where the chroma planes are swapped (CrCb order). + */ +static av_always_inline int isSwappedChroma(enum AVPixelFormat pix_fmt) +{ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + av_assert0(desc); + if (!isYUV(pix_fmt)) + return 0; + if ((desc->flags & AV_PIX_FMT_FLAG_ALPHA) && desc->nb_components < 4) + return 0; + if (desc->nb_components < 3) + return 0; + if (!isPlanarYUV(pix_fmt) || isSemiPlanarYUV(pix_fmt)) + return desc->comp[1].offset > desc->comp[2].offset; + else + return desc->comp[1].plane > desc->comp[2].plane; +} + extern const uint64_t ff_dither4[2]; extern const uint64_t ff_dither8[2]; diff --git a/libswscale/tests/pixdesc_query.c b/libswscale/tests/pixdesc_query.c index dce2e50577..eb793877a0 100644 --- a/libswscale/tests/pixdesc_query.c +++ b/libswscale/tests/pixdesc_query.c @@ -46,6 +46,7 @@ static const struct { {"PlanarRGB", isPlanarRGB}, {"usePal", usePal}, {"DataInHighBits", isDataInHighBits}, + {"SwappedChroma", isSwappedChroma}, }; static int cmp_str(const void *a, const void *b) diff --git a/tests/ref/fate/sws-pixdesc-query b/tests/ref/fate/sws-pixdesc-query index a17284784f..76104bc5a6 100644 --- a/tests/ref/fate/sws-pixdesc-query +++ b/tests/ref/fate/sws-pixdesc-query @@ -964,3 +964,8 @@ DataInHighBits: y210be y210le +SwappedChroma: + nv21 + nv42 + yvyu422 + -- 2.33.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".