From patchwork Fri Dec 24 03:08:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32875 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7804571iog; Thu, 23 Dec 2021 19:09:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJybya8bk0IyZkJfeYS/Z2Gg/JKzKeoZXO6JFUHb0b2ETgtrERO95SY99ZHrjT19zeseeo/e X-Received: by 2002:a17:906:f890:: with SMTP id lg16mr4105943ejb.757.1640315374694; Thu, 23 Dec 2021 19:09:34 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315374; cv=none; d=google.com; s=arc-20160816; b=RY8uwQyaC+e2i0ez/NDhLKUnkRhNOzH3jdZlhK+zvzXL25zN48dzkXF/7hEPp2zkpG dbzprrOual/jACOCBnyrE0SDz4kL9KGCXVfoKG4OmclT/3Nos5QX5a7vjwp2B5JAXpI0 TfunPBUVWcXrZPyyRhCEpO//INUQCj47PWlsjIEU4WR61e2tTrNPsbDoO4OJO+IuugSn dS9jQm8gEHWQDyqaRf1nNfRQ9QtXmMu6OWxSNj3bfWE6a7Z4ItgB8W1AreSWqcmf4WbY CIKmbNPb3S9u1GK3INaArsEmExJATAeUeFxXoc0OOZe77/Gl+9Fezmt9zm9xH4hpKoeg mcoA== 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=BTlnF5UvxOwprLjPMGvRJwwmeukKxZCr3pATrtKipDo=; b=unWGIwc3mCXVEi2OUf8jbu7eX6P/iUJgd3I1HtkfN6mgCQSdAn4ubxxXGNT8C9u9gK CGq3NlxpQf+jV5bPwac9gPGDRyw/pra5ekBhwTgTGq6cefkEQc+6g89pOf13RURjpPBC XOCYX1cWs7XlmziqVy9RhoX04EPhqr5Xo/WaHj746VGYiW8d5ww7CgSOrvQYFUYpCU2x opDuNzw6EKwB3/j3b69wIcuGuBDwqTgHsNhygvDHXrwbYiaet1A4lOXT1VRUo0Z1014u 4wn1UdaGIekosvvPRoSfuuEX6E9x6dsGNxhcyTwgqWUO/4fmQgBCWDbgj8547vWDcdWW 1XpQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=Rg1jNMHK; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id n2si3240354edi.106.2021.12.23.19.09.34; Thu, 23 Dec 2021 19:09:34 -0800 (PST) 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=@rcombs.me header.s=google header.b=Rg1jNMHK; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0C12C68B1FD; Fri, 24 Dec 2021 05:09:25 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9042268B1ED for ; Fri, 24 Dec 2021 05:09:16 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id o17so6652620qtk.1 for ; Thu, 23 Dec 2021 19:09:16 -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=CNtuY8Gy2eiG6U+QEXKTzYZM5N3DiT3LN1goBDv6fi0=; b=Rg1jNMHKocy8kXNswsJMoh4RQRX8r/xGSqjaSOJi0YflLuR12xF+aokK1ZDvRSlGcs GH9/8jV4j6Zuu426SL5efovuZe153mHFj+0s8BIdImxyB2go371HFwUWh1upclIujGxt j5peY8dztEAZ9ar5SXq+J0wvRdFuTMX1jQx0OPpOrsDWEGVDxXLB2P3tZ7/CyZMLPeXO k31SuLqWwvV+SPawsZik6stQTPU6YJRTy7OB2K1KS918E2m29nO3lUWwwTFfrr5xfJ7Q boqYzSAzbvx4YY6oqAxmqhJHy/p0behEW5cLNWMoGeDNTQzT04ZDrbm2YdSMddkMB6Xa ahyg== 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=CNtuY8Gy2eiG6U+QEXKTzYZM5N3DiT3LN1goBDv6fi0=; b=GcKBrvn4O+sI/gKnshSkDqHQN+BIInByLVTtSWGVmGYCI8cfr4q/DJ97/mcv/fYaQA L/spQxLmAhPQs2YkosrXjqdi58N1EV9J+o04T9IdNB9bdWNnF5L17M70zfCZYEKDtRUq 28b6sHH60PmNRoc82Gdgf5brd0KAQa5t3dLrI9Da+NOTCtq0EZwd7wW4EOSFtCMnPV6V 8yEB7BmBtpOUlaVcxguLcA8IF0/dZP6Z6Yyucz0z4nrzYg0UA9v6kl37LE+CgvJnWb7/ d/Q6aY4Mvw12E0gugQmV+FrIUGzjhBWW/J3+JPvktss2iH04GZpVUYHuFx3luzuqo9fh J7bA== X-Gm-Message-State: AOAM533Yw9QLDk+6P/WUibheWvjCk+ErcTfxQ8QBeTkR3fTyKPO3FLlf 8Bq7Af8Fk3ntL10ZBj8rb8V/6oj2NPh8rEs= X-Received: by 2002:a05:622a:1c6:: with SMTP id t6mr4218629qtw.211.1640315354618; Thu, 23 Dec 2021 19:09:14 -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.13 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:14 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:49 -0600 Message-Id: <20211224030904.1196-2-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 01/16] swscale/output: template-ize yuv2nv12cX 10-bit and 16-bit cases 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: 3txPANUB1Cc1 Fixes incorrect big-endian output introduced in 88d804b7ffa20caab2e8e2809da974c41f7fd8fc Avoids making the filter-time BE check more expensive --- libswscale/output.c | 48 ++++++++++++++++++++---- tests/ref/fate/filter-pixdesc-p210be | 2 +- tests/ref/fate/filter-pixdesc-p216be | 2 +- tests/ref/fate/filter-pixdesc-p410be | 2 +- tests/ref/fate/filter-pixdesc-p416be | 2 +- tests/ref/fate/filter-pixfmts-copy | 8 ++-- tests/ref/fate/filter-pixfmts-crop | 8 ++-- tests/ref/fate/filter-pixfmts-field | 8 ++-- tests/ref/fate/filter-pixfmts-fieldorder | 8 ++-- tests/ref/fate/filter-pixfmts-hflip | 8 ++-- tests/ref/fate/filter-pixfmts-il | 8 ++-- tests/ref/fate/filter-pixfmts-null | 8 ++-- tests/ref/fate/filter-pixfmts-scale | 8 ++-- tests/ref/fate/filter-pixfmts-transpose | 4 +- tests/ref/fate/filter-pixfmts-vflip | 8 ++-- 15 files changed, 83 insertions(+), 49 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index 4b4b186be9..e7cea49096 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -180,17 +180,18 @@ yuv2planeX_16_c_template(const int16_t *filter, int filterSize, } } -static void yuv2p016cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, +static av_always_inline void +yuv2nv12cX_16_c_template(int big_endian, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, - uint8_t *dest8, int chrDstW) + uint8_t *dest8, int chrDstW, int output_bits) { uint16_t *dest = (uint16_t*)dest8; const int32_t **uSrc = (const int32_t **)chrUSrc; const int32_t **vSrc = (const int32_t **)chrVSrc; int shift = 15; - int big_endian = dstFormat == AV_PIX_FMT_P016BE; int i, j; + av_assert0(output_bits == 16); for (i = 0; i < chrDstW; i++) { int u = 1 << (shift - 1); @@ -367,6 +368,7 @@ static void yuv2planeX_ ## bits ## BE_LE ## _c(const int16_t *filter, int filter filterSize, (const typeX_t **) src, \ (uint16_t *) dest, dstW, is_be, bits); \ } + yuv2NBPS( 9, BE, 1, 10, int16_t) yuv2NBPS( 9, LE, 0, 10, int16_t) yuv2NBPS(10, BE, 1, 10, int16_t) @@ -378,6 +380,23 @@ yuv2NBPS(14, LE, 0, 10, int16_t) yuv2NBPS(16, BE, 1, 16, int32_t) yuv2NBPS(16, LE, 0, 16, int32_t) + +static void yuv2nv12cX_16LE_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, + const int16_t *chrFilter, int chrFilterSize, + const int16_t **chrUSrc, const int16_t **chrVSrc, + uint8_t *dest8, int chrDstW) +{ + yuv2nv12cX_16_c_template(0, chrDither, chrFilter, chrFilterSize, chrUSrc, chrVSrc, dest8, chrDstW, 16); +} + +static void yuv2nv12cX_16BE_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, + const int16_t *chrFilter, int chrFilterSize, + const int16_t **chrUSrc, const int16_t **chrVSrc, + uint8_t *dest8, int chrDstW) +{ + yuv2nv12cX_16_c_template(1, chrDither, chrFilter, chrFilterSize, chrUSrc, chrVSrc, dest8, chrDstW, 16); +} + static void yuv2planeX_8_c(const int16_t *filter, int filterSize, const int16_t **src, uint8_t *dest, int dstW, const uint8_t *dither, int offset) @@ -477,14 +496,13 @@ static void yuv2p010lX_c(const int16_t *filter, int filterSize, } } -static void yuv2p010cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, +static void yuv2p010cX_c(int big_endian, const uint8_t *chrDither, const int16_t *chrFilter, int chrFilterSize, const int16_t **chrUSrc, const int16_t **chrVSrc, uint8_t *dest8, int chrDstW) { uint16_t *dest = (uint16_t*)dest8; int shift = 17; - int big_endian = dstFormat == AV_PIX_FMT_P010BE; int i, j; for (i = 0; i < chrDstW; i++) { @@ -529,6 +547,22 @@ static void yuv2p010lX_BE_c(const int16_t *filter, int filterSize, yuv2p010lX_c(filter, filterSize, src, (uint16_t*)dest, dstW, 1); } +static void yuv2p010cX_LE_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, + const int16_t *chrFilter, int chrFilterSize, + const int16_t **chrUSrc, const int16_t **chrVSrc, + uint8_t *dest8, int chrDstW) +{ + yuv2p010cX_c(0, chrDither, chrFilter, chrFilterSize, chrUSrc, chrVSrc, dest8, chrDstW); +} + +static void yuv2p010cX_BE_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, + const int16_t *chrFilter, int chrFilterSize, + const int16_t **chrUSrc, const int16_t **chrVSrc, + uint8_t *dest8, int chrDstW) +{ + yuv2p010cX_c(1, chrDither, chrFilter, chrFilterSize, chrUSrc, chrVSrc, dest8, chrDstW); +} + #undef output_pixel @@ -2568,14 +2602,14 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c, dstFormat == AV_PIX_FMT_P410LE || dstFormat == AV_PIX_FMT_P410BE) { *yuv2plane1 = isBE(dstFormat) ? yuv2p010l1_BE_c : yuv2p010l1_LE_c; *yuv2planeX = isBE(dstFormat) ? yuv2p010lX_BE_c : yuv2p010lX_LE_c; - *yuv2nv12cX = yuv2p010cX_c; + *yuv2nv12cX = isBE(dstFormat) ? yuv2p010cX_BE_c : yuv2p010cX_LE_c; } else if (is16BPS(dstFormat)) { *yuv2planeX = isBE(dstFormat) ? yuv2planeX_16BE_c : yuv2planeX_16LE_c; *yuv2plane1 = isBE(dstFormat) ? yuv2plane1_16BE_c : yuv2plane1_16LE_c; if (dstFormat == AV_PIX_FMT_P016LE || dstFormat == AV_PIX_FMT_P016BE || dstFormat == AV_PIX_FMT_P216LE || dstFormat == AV_PIX_FMT_P216BE || dstFormat == AV_PIX_FMT_P416LE || dstFormat == AV_PIX_FMT_P416BE) { - *yuv2nv12cX = yuv2p016cX_c; + *yuv2nv12cX = isBE(dstFormat) ? yuv2nv12cX_16BE_c : yuv2nv12cX_16LE_c; } } else if (isNBPS(dstFormat)) { if (desc->comp[0].depth == 9) { diff --git a/tests/ref/fate/filter-pixdesc-p210be b/tests/ref/fate/filter-pixdesc-p210be index b7d15ff93d..9ff89d14a0 100644 --- a/tests/ref/fate/filter-pixdesc-p210be +++ b/tests/ref/fate/filter-pixdesc-p210be @@ -1 +1 @@ -pixdesc-p210be 9f3465e388d91beeb5cb7fe0011c5a67 +pixdesc-p210be 016fd90989d14914bbbcc7dc2968bef0 diff --git a/tests/ref/fate/filter-pixdesc-p216be b/tests/ref/fate/filter-pixdesc-p216be index 657136996a..932c5b2708 100644 --- a/tests/ref/fate/filter-pixdesc-p216be +++ b/tests/ref/fate/filter-pixdesc-p216be @@ -1 +1 @@ -pixdesc-p216be db5cabe6e5f1814a6d20e8398aec4785 +pixdesc-p216be d95084fa0758169851f57455a9624a2e diff --git a/tests/ref/fate/filter-pixdesc-p410be b/tests/ref/fate/filter-pixdesc-p410be index 26ff981622..27de3ee0bb 100644 --- a/tests/ref/fate/filter-pixdesc-p410be +++ b/tests/ref/fate/filter-pixdesc-p410be @@ -1 +1 @@ -pixdesc-p410be 85671676fa52d0350c918f45417f3c64 +pixdesc-p410be 33d7e8e5d6a85cc22fcbf0c12c7bafd0 diff --git a/tests/ref/fate/filter-pixdesc-p416be b/tests/ref/fate/filter-pixdesc-p416be index 5a23be5d72..f67b553d42 100644 --- a/tests/ref/fate/filter-pixdesc-p416be +++ b/tests/ref/fate/filter-pixdesc-p416be @@ -1 +1 @@ -pixdesc-p416be a7d8a859ce47c3860e0fee31539a84b0 +pixdesc-p416be 6a4b1b2fc8435acfc82312109f13bc58 diff --git a/tests/ref/fate/filter-pixfmts-copy b/tests/ref/fate/filter-pixfmts-copy index b090739bd2..f06fa1574e 100644 --- a/tests/ref/fate/filter-pixfmts-copy +++ b/tests/ref/fate/filter-pixfmts-copy @@ -63,13 +63,13 @@ p010be 7f9842d6015026136bad60d03c035cc3 p010le c453421b9f726bdaf2bacf59a492c43b p016be 7f9842d6015026136bad60d03c035cc3 p016le c453421b9f726bdaf2bacf59a492c43b -p210be 6df2a72ee297e53f9ac7f96acf0ef5d5 +p210be 847e9c6e292b17349e69570829252b3e p210le c06e4b76cf504e908128081f92b60ce2 -p216be 01d10b0d17c9f575b512dff36623a85b +p216be f5009974fc1cd5d552705eeb52de35d9 p216le 2f634e1a3cd5c9c122e0f2ebadb3503d -p410be d9af5b8126ea7457edaf0c90ad0cb2b7 +p410be 7c2509d2df4bbb199ab653ebb6dce61e p410le 527761e1f4381007044679710a352ecc -p416be fc5c1c45567de4a6bc9dbc8eef30116d +p416be fd828e966d45ae908f5d2d4b3349b816 p416le 983064bfd506be1e26cd57bafc14ae50 pal8 ff5929f5b42075793b2c34cb441bede5 rgb0 0de71e5a1f97f81fb51397a0435bfa72 diff --git a/tests/ref/fate/filter-pixfmts-crop b/tests/ref/fate/filter-pixfmts-crop index 93353ad16a..8b26ab9c53 100644 --- a/tests/ref/fate/filter-pixfmts-crop +++ b/tests/ref/fate/filter-pixfmts-crop @@ -61,13 +61,13 @@ p010be 8b2de2eb6b099bbf355bfc55a0694ddc p010le 373b50c766dfd0a8e79c9a73246d803a p016be 8b2de2eb6b099bbf355bfc55a0694ddc p016le 373b50c766dfd0a8e79c9a73246d803a -p210be b75f0e53a245e49af955fe210fc31bb8 +p210be 2947f43774352ef61f9e83777548c7c5 p210le 74fcd5a32eee687eebe002c884103963 -p216be 89cb3a4bd44ba624c1395e7ea6998dde +p216be 41351128eaf636041c8987698730391a p216le e56f5e5b0d4460d56f27a5df8a4a1462 -p410be 37e56737c2421aa59a33c57423d58616 +p410be e17c78ff059363177548412e6ab4e65f p410le 75f910c7282d8065d97f502ba974c481 -p416be 13b2dc247bdb0ab7e5532f75048f5a2c +p416be 52f08b8a56a09d6e954c2eab6cf24d99 p416le ecb78b327ea5cfe1fff82945c1fca310 pal8 1f2cdc8e718f95c875dbc1034a688bfb rgb0 736646b70dd9a0be22b8da8041e35035 diff --git a/tests/ref/fate/filter-pixfmts-field b/tests/ref/fate/filter-pixfmts-field index bcd1a0a45b..c4838d1446 100644 --- a/tests/ref/fate/filter-pixfmts-field +++ b/tests/ref/fate/filter-pixfmts-field @@ -63,13 +63,13 @@ p010be a0311a09bba7383553267d2b3b9c075e p010le ee09a18aefa3ebe97715b3a7312cb8ff p016be a0311a09bba7383553267d2b3b9c075e p016le ee09a18aefa3ebe97715b3a7312cb8ff -p210be 341db7c98afd2767d48cdd72e224df2f +p210be 58d46f566ab28e3bcfb715c7aa53cf58 p210le 8d68f7655a3d76f2f8436bd25beb3973 -p216be 0dde930860e940dced179884c359f720 +p216be dd1f3e0bb5c49775a598ab29802fc268 p216le b573c0473a1368813d077487cc9bce0e -p410be 9e9a812b74854226271c5f7dc18c37b7 +p410be 658fd0d92eb327cbd562abafc8694db7 p410le c981188c7fd9f32988a9f4732303f82b -p416be 203203e6788a80b52d2ca6ba629beb9c +p416be 66616bf2320464b5e9b6372d48b6b9a9 p416le 1039b97bbe42ef0af1bc46d2c0fc819e pal8 0658c18dcd8d052d59dfbe23f5b368d9 rgb0 ca3fa6e865b91b3511c7f2bf62830059 diff --git a/tests/ref/fate/filter-pixfmts-fieldorder b/tests/ref/fate/filter-pixfmts-fieldorder index 761ef422b5..32c06bae4c 100644 --- a/tests/ref/fate/filter-pixfmts-fieldorder +++ b/tests/ref/fate/filter-pixfmts-fieldorder @@ -55,13 +55,13 @@ grayf32be 1aa7960131f880c54fe3c77f13448674 grayf32le 4029ac9d197f255794c1b9e416520fc7 nv24 4fdbef26042c77f012df114e666efdb2 nv42 59608290fece913e6b7d61edf581a529 -p210be 82958903f553e9d2d91549bd44559a5a +p210be ca2ce2c25db43dcd14729b2a72a7c604 p210le 755363012d8801b96ead2e8b1b4d2ab8 -p216be 7159f11beb9138932f8d60b95efe96dc +p216be 17741c0cdb65914ad13c5114121a175f p216le c0c888ab7bde56638732344076b3b2ba -p410be 411f89fadbee1ca43d2918eba583bea5 +p410be b6d65b820198ca6ff0103d9794727792 p410le 2771dd3ae54a439921f51c29e79b6799 -p416be de6b84bd524e8fcfc251634cae416069 +p416be a0f8b5acad8fafc45fc7b2275fac1d84 p416le 2e73af44eb933580da59981176848dcc rgb0 2e3d8c91c7a83d451593dfd06607ff39 rgb24 b82577f8215d3dc2681be60f1da247af diff --git a/tests/ref/fate/filter-pixfmts-hflip b/tests/ref/fate/filter-pixfmts-hflip index 1fc26b9fb5..4d3efe3cdc 100644 --- a/tests/ref/fate/filter-pixfmts-hflip +++ b/tests/ref/fate/filter-pixfmts-hflip @@ -61,13 +61,13 @@ p010be 744b13e44d39e1ff7588983fa03e0101 p010le a50b160346ab94f55a425065b57006f0 p016be 744b13e44d39e1ff7588983fa03e0101 p016le a50b160346ab94f55a425065b57006f0 -p210be 174cdf99f18658724e269bf38d2b653b +p210be 6f5a76d6467b86d55fe5589d3af8a7ea p210le b6982912b2376371edea4fccf99fe40c -p216be c58f03c6668ab0fbc3ee1a2da051e28c +p216be c1b58f61cd6df9cf01c3086786fb8a69 p216le 1f5213bebf4c99634f57290f5ad99c0d -p410be aa40aa32be7aa353252bac70b5edc175 +p410be 2e06214ea84595aa1294239b0f1e900f p410le 1143c811c383e4461b1192dca0c74246 -p416be 8863e9156ee7edcb6b9e6ac01a2e338c +p416be da6807d924b63a54b804d32e427524bf p416le a42b88cabc4395aa0bf1bcbbc876f48f pal8 5b7c77d99817b4f52339742a47de7797 rgb0 0092452f37d73da20193265ace0b7d57 diff --git a/tests/ref/fate/filter-pixfmts-il b/tests/ref/fate/filter-pixfmts-il index 7e7f057afa..4623f2420c 100644 --- a/tests/ref/fate/filter-pixfmts-il +++ b/tests/ref/fate/filter-pixfmts-il @@ -63,13 +63,13 @@ p010be 3df51286ef66b53e3e283dbbab582263 p010le eadcd8241e97e35b2b47d5eb2eaea6cd p016be 3df51286ef66b53e3e283dbbab582263 p016le eadcd8241e97e35b2b47d5eb2eaea6cd -p210be 4992fe87c600dfb177b1e2e6aa0f922c +p210be 29ec4e8912d456cd15203a96487c42e8 p210le c695064fb9f2cc4e35957d4d649cc281 -p216be 98b73479f0ea9843768c162c449c3ac5 +p216be ad85bdc59755608602608a9438bb82ea p216le 77757390da383a90981e461d128d8789 -p410be a7183a01888b47a4d9f3672073c7ea7d +p410be 2128861337e660232e6fb664cc4de3e6 p410le 6cf3a3e199b327f4f013e0346410d7a8 -p416be 4dc4aebf18e09e8f8b49db90ae5ec127 +p416be 47dec75cefeb6220be7731bc25b7be9c p416le 4990b51ff889d9ee23e68997f81c09f1 rgb0 cfaf68671e43248267d8cd50cae8c13f rgb24 88894f608cf33ba310f21996748d77a7 diff --git a/tests/ref/fate/filter-pixfmts-null b/tests/ref/fate/filter-pixfmts-null index b090739bd2..f06fa1574e 100644 --- a/tests/ref/fate/filter-pixfmts-null +++ b/tests/ref/fate/filter-pixfmts-null @@ -63,13 +63,13 @@ p010be 7f9842d6015026136bad60d03c035cc3 p010le c453421b9f726bdaf2bacf59a492c43b p016be 7f9842d6015026136bad60d03c035cc3 p016le c453421b9f726bdaf2bacf59a492c43b -p210be 6df2a72ee297e53f9ac7f96acf0ef5d5 +p210be 847e9c6e292b17349e69570829252b3e p210le c06e4b76cf504e908128081f92b60ce2 -p216be 01d10b0d17c9f575b512dff36623a85b +p216be f5009974fc1cd5d552705eeb52de35d9 p216le 2f634e1a3cd5c9c122e0f2ebadb3503d -p410be d9af5b8126ea7457edaf0c90ad0cb2b7 +p410be 7c2509d2df4bbb199ab653ebb6dce61e p410le 527761e1f4381007044679710a352ecc -p416be fc5c1c45567de4a6bc9dbc8eef30116d +p416be fd828e966d45ae908f5d2d4b3349b816 p416le 983064bfd506be1e26cd57bafc14ae50 pal8 ff5929f5b42075793b2c34cb441bede5 rgb0 0de71e5a1f97f81fb51397a0435bfa72 diff --git a/tests/ref/fate/filter-pixfmts-scale b/tests/ref/fate/filter-pixfmts-scale index a5a4ac4cba..43074b84a7 100644 --- a/tests/ref/fate/filter-pixfmts-scale +++ b/tests/ref/fate/filter-pixfmts-scale @@ -63,13 +63,13 @@ p010be 1d6726d94bf1385996a9a9840dd0e878 p010le 4b316f2b9e18972299beb73511278fa8 p016be 31e204018cbb53f8988c4e1174ea8ce9 p016le d5afe557f492a09317e525d7cb782f5b -p210be 42be1e97427247317444afa836969667 +p210be 2cc6dfcf5e006c8ed5238988a06fd45e p210le 04efb8f14a9d98417af40954a06aa187 -p216be caa0268d0f6779343a4432b6bc832c5b +p216be 2f649a226812c8e5a553c4e22d301684 p216le c8f65811f717a12706a598561c6df46d -p410be f580b8dcf5a826c94258eeba837fd874 +p410be 354cd1324ad382df1a3d573833323cce p410le 90fdd95ec4482c127d98307550a885c6 -p416be a1242f80d32705a757f4d3553542ae1f +p416be aa54294859a8e6cb2c9cf64d343fdb60 p416le d91a0858ea8d2cf1ed29f179c9ad9666 pal8 29e10892009b2cfe431815ec3052ed3b rgb0 fbd27e98154efb7535826afed41e9bb0 diff --git a/tests/ref/fate/filter-pixfmts-transpose b/tests/ref/fate/filter-pixfmts-transpose index dc3a0628ee..922666cf95 100644 --- a/tests/ref/fate/filter-pixfmts-transpose +++ b/tests/ref/fate/filter-pixfmts-transpose @@ -61,9 +61,9 @@ p010be ad0de2cc9bff81688b182a870fcf7000 p010le e7ff5143595021246733ce6bd0a769e8 p016be ad0de2cc9bff81688b182a870fcf7000 p016le e7ff5143595021246733ce6bd0a769e8 -p410be 171453dc34dd3c77659914e2202c5aa6 +p410be 8b3e0ccb31b6a20ff00a29253fb2dec3 p410le 4e5f78dfccda9a6387e81354a56a033a -p416be ff09601f127101a8ce8997b9ae0fd6bf +p416be 350a90bda53349435d89ec13533726b7 p416le 7bb46e2aec65669a27502ec452941237 rgb0 31ea5da7fe779c6ea0a33f1d28aad918 rgb24 47654cabaaad79170b90afd5a02161dd diff --git a/tests/ref/fate/filter-pixfmts-vflip b/tests/ref/fate/filter-pixfmts-vflip index 7736e372ad..3a53bb5837 100644 --- a/tests/ref/fate/filter-pixfmts-vflip +++ b/tests/ref/fate/filter-pixfmts-vflip @@ -63,13 +63,13 @@ p010be 06e9354b6e0e38ba41736352cedc0bd5 p010le fd18d322bffbf5816902c13102872e22 p016be 06e9354b6e0e38ba41736352cedc0bd5 p016le fd18d322bffbf5816902c13102872e22 -p210be 328b09bb0c70571617901322b4194023 +p210be ca886ab2b3ea5c153f1954b3709f7249 p210le d71c2d4e483030ffd87fa6a68c83fce0 -p216be e4ab026532db1dfee38cedef384e605b +p216be 7f268f755ed02592b3a49fd5f7bd48bb p216le 2c0a660762527706799c4705ca50a9c5 -p410be 637fb064c2ce173de5cf431aa9267914 +p410be 4c603e4464ed3f34cc432b4d1f912082 p410le 849308a1cdf41e055019cf311d1b2201 -p416be 8e9cf1b695c0a33b6094dd6c7b3722d9 +p416be 7e7657ab40cf953351a14ea76e296519 p416le 0991d7fff4e2caf36be219ecdd9619d4 pal8 450b0155d0f2d5628bf95a442db5f817 rgb0 56a7ea69541bcd27bef6a5615784722b From patchwork Fri Dec 24 03:08:50 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32876 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7804667iog; Thu, 23 Dec 2021 19:09:46 -0800 (PST) X-Google-Smtp-Source: ABdhPJwzy9EMwohYWiiF1bdij2yGCenp/fsXWRjMwNTEiCtXa+I0puxNfTYp6pB7agXVCXltY/IT X-Received: by 2002:a17:906:d54d:: with SMTP id cr13mr4167667ejc.711.1640315385989; Thu, 23 Dec 2021 19:09:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315385; cv=none; d=google.com; s=arc-20160816; b=dYA9dXMmDxJN3CnZrfT9BvQEyzh8TsRDIvg0k5gfC8ZozoyMabM+p/7laywPARn4d9 DBY1oFY7chInjr6y8bMW/qkJxIqvF49OFIGo7ebd1BqA/h+8Rf7H0akTO5T4RnpLLBS6 yFW4z0/3FkKTQ/7fwGHQTJO+TCUlKa3Rwd0pIPBuGDTDk51vkKMAhp14SnDxYaaEDcub PH4qgr2FEX1nQR1T9blwNm6kjJZc0aTqdB7+FEm4Mbygrmuuw63NbESsIzAoTAdFV2iK aGNgNob0POukl4A3NEP+l/x8d8GWd1vXMoBy2QtegObxDjYkavp4C+jsPXYCfnLU241/ ho7w== 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=d5B+wRxcEk0OMpInjYRyRXavqVWQ8zHk6jXCC09CFM4=; b=g8EimxsIhYC7kYHiv/B1gmeQ0549SGjlyZCoZ99GBIpzSxqUl1y83t458qiewfkEZa YbA9MekJXnS6RtysGB7E5bxikmx6r8ibTB5HL1KMG+UNQLIr90KNyXQ6SDWgjeOSrbaE 8DSw5UMpzDI8Ebbu1/h72IkX5C55N+Jcm/nwnB0po6vNbKUjN9EPMbDrGckDZsdRhqbB shxjjPpptF1ri8Qpq6OIReyTmy6AqAg68epNTMccyC1LGx4hpoEpUNL6Gd3CPewUdTLo Fsj3wy1nRBsgOjFQ5gAknxzxzvccOzEwZGCacIyUEomdFj2OkeSbJTMiZDhlnwRn2W94 UTcg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=r9HYmF2x; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id bl4si2857098ejb.975.2021.12.23.19.09.45; Thu, 23 Dec 2021 19:09:45 -0800 (PST) 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=@rcombs.me header.s=google header.b=r9HYmF2x; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 199E568B208; Fri, 24 Dec 2021 05:09:26 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4293168B1F2 for ; Fri, 24 Dec 2021 05:09:17 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id w27so1152572qkj.7 for ; Thu, 23 Dec 2021 19:09:17 -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=SdMT+n9o/Y0mnW+oryaZpVzoriTyP7Jizvi04nxA6P0=; b=r9HYmF2xpLyhYgv+4DrJT/cIoGPHYGvefD/rz81gBZngWNOJ+qJCARwGfCrQ759UoX fRYqmsPuw2w9wGWSloQ3Xr90vHNqfXsHCRKKxdtuPQ2zhkRnt7MjHTnzc7zqI0XdSDtD h48ACLk+Av/ujr3+OQCduS3g5GQRD/ePZWlChOO85AC3pcdo8jHtZYNHpFCw7DFQ4Upf tvb8HXnCYAvabKd/RhcuFj/ip+ZeeJPbMBT2KB0QQPsi8mNHoaba3oWTJ+viWpocjRg2 lPpCdGelhjAOSd4+5DINFza9lajU+cgsGVAsk0xs0wj1wynSSP8G/4kD74McN+41C4L0 DkIA== 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=SdMT+n9o/Y0mnW+oryaZpVzoriTyP7Jizvi04nxA6P0=; b=jYqN/1XFWypOP9GcdkP0mgYcpgXvgF3KntwkVDGRkyN4KOe++mFBLtkLqt/X6MkzBx u+fANY13dL/4VhivcoAD8AxX9J72AP1zVMMC1eVlVpeSvCVUXVVA1WDrv81OdwPl4lDP HqnqY6X/l16BemQkr8bAxgn4mVHPNrRZnsQz5PV099Bh7BVZKfV/tGLP4iMWzay803vH 9ADQJUo3JOUP2x14kfDKWkf6SDPPa2R4yLxpK43pl9dd1DWob0Cxz+cFYhUdkTRIOuTe iEmmTc/BwQnu2gv1kUQr6jdpn1+6GLpi1OoJ8TnAYMn6EFsN4gYUd5rBrcztD3kkA+rZ wn/g== X-Gm-Message-State: AOAM530A58qgCDEg9bEPq/g6KiYXKYxi86mCDiLuwlsLsD906PVK+PJW YW90k2ec4r63Vw3NGnmXT5ZPtciYZPlVMUk= X-Received: by 2002:a05:620a:1721:: with SMTP id az33mr214916qkb.93.1640315355587; Thu, 23 Dec 2021 19:09:15 -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.14 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:15 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:50 -0600 Message-Id: <20211224030904.1196-3-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 02/16] swscale: introduce isDataInHighBits 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: WLd1ld3sR4Qc --- libswscale/swscale_internal.h | 19 +++++++++++++++++++ libswscale/tests/pixdesc_query.c | 1 + tests/ref/fate/sws-pixdesc-query | 12 ++++++++++++ 3 files changed, 32 insertions(+) diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h index 64aa0b9804..b4acaceebd 100644 --- a/libswscale/swscale_internal.h +++ b/libswscale/swscale_internal.h @@ -892,6 +892,25 @@ static av_always_inline int usePal(enum AVPixelFormat pix_fmt) } } +/* + * Identity formats where the data is in the high bits, and the low bits are shifted away. + */ +static av_always_inline int isDataInHighBits(enum AVPixelFormat pix_fmt) +{ + int i; + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + av_assert0(desc); + if (desc->flags & (AV_PIX_FMT_FLAG_BITSTREAM | AV_PIX_FMT_FLAG_HWACCEL)) + return 0; + for (i = 0; i < desc->nb_components; i++) { + if (!desc->comp[i].shift) + return 0; + if ((desc->comp[i].shift + desc->comp[i].depth) & 0x7) + return 0; + } + return 1; +} + 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 f6dd8bae68..dce2e50577 100644 --- a/libswscale/tests/pixdesc_query.c +++ b/libswscale/tests/pixdesc_query.c @@ -45,6 +45,7 @@ static const struct { {"PackedRGB", isPackedRGB}, {"PlanarRGB", isPlanarRGB}, {"usePal", usePal}, + {"DataInHighBits", isDataInHighBits}, }; 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 553c039061..a17284784f 100644 --- a/tests/ref/fate/sws-pixdesc-query +++ b/tests/ref/fate/sws-pixdesc-query @@ -952,3 +952,15 @@ usePal: rgb4_byte rgb8 +DataInHighBits: + p010be + p010le + p210be + p210le + p410be + p410le + xyz12be + xyz12le + y210be + y210le + From patchwork Fri Dec 24 03:08:51 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32877 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7804745iog; Thu, 23 Dec 2021 19:09:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJygFQn/oVBreGZbLC0Gnpux0DP7yOxJWvVkCdR6A2qSwkfv8O5aXStKJdYCxDnr/w/PzBow X-Received: by 2002:a05:6402:1012:: with SMTP id c18mr4318364edu.67.1640315396238; Thu, 23 Dec 2021 19:09:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315396; cv=none; d=google.com; s=arc-20160816; b=UAH82Rr47A9o9HMSy8JvtDV6akPq5kPMNfozEeH0nEbXp/lY/zNHDBDlpOH/ph1W4x t/boBhkYPMxhkaw1B/XOYg//BXBHSTFHKMPSiyCi+74vKvKKE2qyi6zBBQqVk71tz/n0 fZeHU9oGJ73FDsrvh7X/KiyYL3iilkMkvMmyAf27qTg9QXWuiQj6n3us7DImhDI+w4v+ BvY2wYm98Pz+54kR3lQfT0aT+vTz0zv2qvz/1HGHmff4gudmHWINLJugqnlCRljnx9IU moqI2ANi2WuXmWyAI6Ywe0gU00HLBa3mCTCN17BpkX+v8HMu6XANAqA3r6cpgR6Anozt 69jw== 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=AJlU6Lm8Zn5N9EQk9FwjjcMXX4gEBJawkOrMpLI8/RE=; b=EN151h1C6Kq6WaOUEM3zjF7YX8P888DkIPUPik1081Dall60AV8xu/48pWeA6BZYSN PsJ4L4ZFE3va8+d9kmxORWo+8E7zctQYNKcZ1b5k2K0XrVXxXvhSPzAN//RAil7TGFz3 wFoTlrb8PcljK4rl7OFCsYCYLp3f/pyn4+jiU94qMn2eP8necr7tj+mIyf+Jn7EKB9N7 nifVAo93tt6DZVyPDqFk9jYupZQIiiHYMXrxcXG45YXXE45WhzVSZwM9Qj5KDTYAARCN xKMdCGrfsslSOxQzzJ0ce2u6aRJYE0K+muvmK+HN+yIkPZtvbzi5/B0LD5xcku22eOkH HGFg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=ESUN2+hr; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id oz15si2911991ejc.910.2021.12.23.19.09.55; Thu, 23 Dec 2021 19:09:56 -0800 (PST) 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=@rcombs.me header.s=google header.b=ESUN2+hr; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1D0FD68018F; Fri, 24 Dec 2021 05:09:27 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f178.google.com (mail-qk1-f178.google.com [209.85.222.178]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 02F3768B1E5 for ; Fri, 24 Dec 2021 05:09:18 +0200 (EET) Received: by mail-qk1-f178.google.com with SMTP id m2so5639308qkd.8 for ; Thu, 23 Dec 2021 19:09:17 -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=xjfpK9o20TWbZ91d8gKibgDIh68UsAScQ/og9gv0iTI=; b=ESUN2+hr6TwRIU4cm8+/IaU9u8A+UkHDUqR6zmtRfzqT8+poGeqQj8fIfZSP7vLqy8 4ur0vHaE5ME7efdbXUh8Syjz/C6o4Y21z4QkfJsuhrsTLh43XPRCnZqSOauZe5VQbvfq E2wDGggtMjLW2upzfg4PUlsmcy/sVhq+IFyhELuVs/ORcuq6XRqY7xSj1Chv2nDSSzyx f9J4OtcJS3ywZqwV0lRyF8N9Tve9fGY5QFZ8CL0vJ3tmVitK9PbXGu47fCzfs4rKFFEr JEowRIZzD6hJ/1t9Ke45i4hZkkJy522MOKicBkJsGrXx8kZolT29/EjTmcgxqqHRXQ/2 5zmQ== 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=xjfpK9o20TWbZ91d8gKibgDIh68UsAScQ/og9gv0iTI=; b=FySzqho4yKG6yHNmExHyZ+9a4KDOlf5W5POrUkEVwmY+YMvtEPcIlGvNpHm5aGGgF3 d5GEEXOskpzmdCN5db/0/bebf7Rm1OMkEIcX0QRWUGLGi+Ksfb5fvYKm/hJQStsYZjBY +O+wC6s/v29PRVwFRliZllLcJ/TqshFOPVoeodt0d3sFkGQfc9h0mXeOmvVwFu4ZIuhL 96tY3muzPIi94kZS6NhByZAf1kigSDLcEiC72+kcts0CGDDrZNXcFm3j+mydgNMQREpT fA5dkHaCYBiBwEtfIePfW4rQ6nzdrS50/5C166vSNyDfUJTFHZyfCIigee0NtHMKbcgK ZPFw== X-Gm-Message-State: AOAM531wIiSvuFmDQ13P50y9/EtCYWn5BeIcmYDs6I6AMBufdi3XkbxF ZyzTfkjDcB3MMuAVSA5ubghm5/bsPLmA3MA= X-Received: by 2002:a05:620a:809:: with SMTP id s9mr3476770qks.156.1640315356483; Thu, 23 Dec 2021 19:09:16 -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.15 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:16 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:51 -0600 Message-Id: <20211224030904.1196-4-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 03/16] swscale/output: use isSemiPlanarYUV for 16-bit case 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: djoNsIHeZOyH --- libswscale/output.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index e7cea49096..e43eb7835e 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -2606,9 +2606,7 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c, } else if (is16BPS(dstFormat)) { *yuv2planeX = isBE(dstFormat) ? yuv2planeX_16BE_c : yuv2planeX_16LE_c; *yuv2plane1 = isBE(dstFormat) ? yuv2plane1_16BE_c : yuv2plane1_16LE_c; - if (dstFormat == AV_PIX_FMT_P016LE || dstFormat == AV_PIX_FMT_P016BE || - dstFormat == AV_PIX_FMT_P216LE || dstFormat == AV_PIX_FMT_P216BE || - dstFormat == AV_PIX_FMT_P416LE || dstFormat == AV_PIX_FMT_P416BE) { + if (isSemiPlanarYUV(dstFormat)) { *yuv2nv12cX = isBE(dstFormat) ? yuv2nv12cX_16BE_c : yuv2nv12cX_16LE_c; } } else if (isNBPS(dstFormat)) { From patchwork Fri Dec 24 03:08:52 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32879 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7804927iog; Thu, 23 Dec 2021 19:10:17 -0800 (PST) X-Google-Smtp-Source: ABdhPJzZ5MfoJulqoJ5TxGUhXzVutWNmE6ch/P5mJ7d/n8uuo7YVyR2B1hsdSm49Yn/ccxJcgooT X-Received: by 2002:a05:6402:d05:: with SMTP id eb5mr4334439edb.345.1640315417482; Thu, 23 Dec 2021 19:10:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315417; cv=none; d=google.com; s=arc-20160816; b=ovSSuhqDEFwaaHFpvtZQZUoeIawAaSA+3pgMCnlWhS7zhneNgDhp2kvwMzsjRl7FQc 3ujG6f10ZEK0IOSLEgIjY4Js1xtH4L9kEaWaOhmUNngPxoOlrnTgHcZ1uRq0ABlNYUQ2 vHivuyc5XSJuk/CgLcLdV+POKN8SdvoibL4ZgSfQhZU9WjwfNe7G4DDrr+tr2PaHaqem 5WRIDD51JJUSaRjUp53mEWd6tUMk+nHBev2mSMCcWVX5hzVIETRyFlJ5xulLKXbd5rIX ySOpTp8KJ2nUi797QP8HzFF9dYLqzN6lj58OOO1r3z0Pdgf/kP+ne5u/MOC2JwBl8Uun ivbg== 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=iaOz7MXEcHYHyqmFUDL6Hh9WIysuE45ExLhm3qllJ5M=; b=RDwD4lK/1ZaPSu1xAOrFuEnKHXezT69cu17bW6y8bgMccBvQBTq9b561KfB0VRHaGE IiJfvnG4at5setXX8N2Uk4g19bNxdzFQj1rk6/Tt8sqLfYf9JcYkOlBoS7SLkhp5AH4V nsiCQys2QEkCiNFWdptZb8Xr519PkGYbZlMCtOvX+/8Gib46ZEOFyDyfXu3eZSnOv19r lPqP1dauu/fw2kOlejcMOKOM9QT27+pNojZdqpX5sInGCjX9lC+2Po2++qoD6wD6raPA O5G3BYgz5KstgrqBQY4q4YTdABg5Fy366e/aleXZOyNQXNGLhJPjahPJKojWLazSxtb/ 9bXg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=d9oGnCFB; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id l25si3006024eda.5.2021.12.23.19.10.17; Thu, 23 Dec 2021 19:10:17 -0800 (PST) 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=@rcombs.me header.s=google header.b=d9oGnCFB; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1D8B568B1E5; Fri, 24 Dec 2021 05:09:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E1FA168B1CE for ; Fri, 24 Dec 2021 05:09:18 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id l17so6607500qtk.7 for ; Thu, 23 Dec 2021 19:09:18 -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=y0NY4yMaFlJj3ZLOYBYpLsfzrYVYg8aX5X1FWktAGHc=; b=d9oGnCFBX3+zasYOT/I0u+K28yQjmSv5OvDRhT9g9WokZWBfMfevGKDiW7mhQI1w3c 2j5DMGCw6MCqdEWgDiOcrMnFSL9PcO+oH9T8jyP/0lMw7MnocICwTR3T/KIfmj7/QsMj bWLZrmHds5ZuxT8U3CpQ4uIwLqKl5YlLMCDG75jg4fmDeo1JdtDiJN46U8UC4pRnTX57 e7kqlyfUhX3rJaB6p4w16sQRYuEzkoPEsTQQCw2YCqM44T5MuL1y1UNGsO5IatN719SE tHZ0nGxhMNTjYlBZ+3BjMOIp+4tXg0uCgOrGF9Z67SVky83URaT3nBNnOnHk2RL4OR+D Bqqg== 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=y0NY4yMaFlJj3ZLOYBYpLsfzrYVYg8aX5X1FWktAGHc=; b=k7lKzkfzFNJufBrrmnG5iGwxOIRY8BdYB6wbG12P8fB/Clw8fDnMHBrGp+u1keKQap VGbeB9AMMF1ksnvvtIHBEJjDs2jd9s7+VcUBFNSIc6TWvaNSmybqR7Wd5+Ys6NXL78V5 71p2FVWEXtQG6twwXIucl8D18LN2IPNH+2djjSmPewyTzBRJ7npuAADaLFL+txaROc+f uLvzzR/iMX21BB97vLUTQCIWQ3JBzAfFe3N+dr+Kn8oEPMsat5E571efKRTKVe0Ix/CI Df0gVaQhSjEP1i4LLDcJpiPfC1YFo/W8agurATyOCL5G69N1OfyevnqB14z+MjWoLt7V CJWw== X-Gm-Message-State: AOAM531Y+UuYQPV2apXqIlZrQJxhLj6Qc2jAyfmGMRgIvyNaT9u5x8Fn zpaVDpOKBRGIWirGWhnkycsdXf8B1AnANGU= X-Received: by 2002:ac8:41d3:: with SMTP id o19mr4238956qtm.292.1640315357421; Thu, 23 Dec 2021 19:09:17 -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.16 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:52 -0600 Message-Id: <20211224030904.1196-5-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 04/16] swscale/output: use isDataInHighBits for 10-bit case 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: rRfy+U+THFbZ This code will need fleshing-out (probably templating) if we ever add e.g. a P012 format. --- libswscale/output.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index e43eb7835e..7cedb145aa 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -2597,9 +2597,8 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c, enum AVPixelFormat dstFormat = c->dstFormat; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(dstFormat); - if (dstFormat == AV_PIX_FMT_P010LE || dstFormat == AV_PIX_FMT_P010BE || - dstFormat == AV_PIX_FMT_P210LE || dstFormat == AV_PIX_FMT_P210BE || - dstFormat == AV_PIX_FMT_P410LE || dstFormat == AV_PIX_FMT_P410BE) { + if (isSemiPlanarYUV(dstFormat) && isDataInHighBits(dstFormat)) { + av_assert0(desc->comp[0].depth == 10); *yuv2plane1 = isBE(dstFormat) ? yuv2p010l1_BE_c : yuv2p010l1_LE_c; *yuv2planeX = isBE(dstFormat) ? yuv2p010lX_BE_c : yuv2p010lX_LE_c; *yuv2nv12cX = isBE(dstFormat) ? yuv2p010cX_BE_c : yuv2p010cX_LE_c; From patchwork Fri Dec 24 03:08:53 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32881 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805105iog; Thu, 23 Dec 2021 19:10:38 -0800 (PST) X-Google-Smtp-Source: ABdhPJzdY6qEx3tsb1oq7YNckFLP+ovjZMc4JzKjrGfxEeVb7nRSJkZ8gqZW15ZZc5ESu1clDjrn X-Received: by 2002:a05:6402:28b4:: with SMTP id eg52mr4253645edb.101.1640315438533; Thu, 23 Dec 2021 19:10:38 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315438; cv=none; d=google.com; s=arc-20160816; b=yNHU/Qhpi2WPjhfS6/1r+uDXjCtvCLDUd4EzjFnaFz0Lq55gwqMzkuFckYjPL5ME4l FzXC2JYYLWUlWy9ac00K5uaedPmnA48OJK2vfhkFEaqTRS3Toe2Sc1vtCUFg3SpWp+DH yI1mZ3yVqvckkGN1Rn5IcTg0avYnuuCMam4rAceALnpHEJCJSGjjclq+1m6Pg4psTQZ4 k6K0wem8MJ4wg0hIKcg2iujMTBtxMf4uRlJXnZAGkP/MGfjSpWLX/UxsOXoBRzSXL7xh SUlHnOgDZkn6jWgkbDdxYefdT9/uO7SvyveFCwpBUY+zyDSjV4TfOmduat6thDXYIzyE k++A== 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=sPY8RYmInGJDC5VS4UILd5w3U6ksE885uMw77kQFkIY=; b=XxoEbnpiA4B0H/fw2kJ5t3astbtU2RI6nGTJ46A5/e739PqELr3MTX2uRwie31ELpF CQ08E0LG3P+8Bh2PWfofibDAlHXQH4RHeqPKxixnid6kueZjjzoiiJtYedZiyyGTbsEK mAWUNtGVrEiV1dMQQTAIUKeZlyIwqjcfIHnM3jsRK4bhZQQGfnYCQks2RuD8m5VTHiCJ Fz93aC80eoUEgCRlzkGeIAxHTbEgC7Do5bQ454KuAWud0aKFRt+RR3oPlC5ytCkFIsXE ev7Rdi3f1TgZfj9/vgKB+a19UD220WoTq2PDqIIpOJRbtJN8nz3VXWbT+Qsf/SYBiTkc GTZw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=V5sQZ3df; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cs13si2906016ejc.815.2021.12.23.19.10.38; Thu, 23 Dec 2021 19:10:38 -0800 (PST) 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=@rcombs.me header.s=google header.b=V5sQZ3df; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 1A80468B22B; Fri, 24 Dec 2021 05:09:31 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org 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-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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: dfolPQcH9qiP --- 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 + From patchwork Fri Dec 24 03:08:54 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32883 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805255iog; Thu, 23 Dec 2021 19:10:56 -0800 (PST) X-Google-Smtp-Source: ABdhPJxj5BkSqmEV2dq1iAR/VaSLMhA3RvUcBhA7tCk9RXvr1I5bQBbQfwvIgkvEQbxvf9cH+yEn X-Received: by 2002:a50:cbcb:: with SMTP id l11mr4238360edi.195.1640315456319; Thu, 23 Dec 2021 19:10:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315456; cv=none; d=google.com; s=arc-20160816; b=O/xunX1vwIin0o8/JBipo1dhotadOaHHXX0Ne2bN5rq6bjxojlx+kEwsNmIWZr7Och oh8et1HFseSd24gJ4j5oPZ+RPdCkMS1zUVWX6kfgwA9UBo1nEZnFksv1xDgQ1pD3t01t puxpi7xVwGHJJ1OkAYd/YIILGu7zxPqzsx/8sPjnIyVJ2FGz16SRoxdjJqZoocu419wq 6slTFRrbxYnwVOvBIKYMmEDURWpsJRhfTRsF2rbeV0PcPZO/LCw2kUstHtEdoaZ0tnqi eZU2DMIJoD4ZR3w/8SHAPBF7BdSwbap16OzfKv/sSAWWpTQJaGJR+mKgUc72SG7PDF9+ YoyA== 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=V1rEMkjx2UoL7g4TNAOqpC0XY7ZTYoxh1fJ/AwNAXss=; b=r81kBX2yAHQh4BBksFUP2z6/J8sqz3vHX9rcxZ9mP8PKBf5R/R6riQ0z57vXWv83Oi 0b04EbrcUSFVcI25DFIXhiFYy/d/Vd2zMaJE1JA+5SmYS1BS1FSU41ENAcyMQSjJI9BI OXIsBW7l6C/tV69OVG0qjegYyK9IrdQyqUFpg3wQRmfCpdtGq0kYQelx4LGZkIPGrgsN 2TYAnTdfHagLar2Vlq4/rGWmu4LtC6i150gi2Z+anoY3OJeLRJ30luq4yphX7YD/ZWkt iCYNxzOHvyJMnPRSkcscM6uZivklp6Jog6ulmj9dduyxm1rGua4kPEVcNRdpxhjT7DnA kkOQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=XVHjm+Yt; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h20si2849226ejj.282.2021.12.23.19.10.56; Thu, 23 Dec 2021 19:10:56 -0800 (PST) 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=@rcombs.me header.s=google header.b=XVHjm+Yt; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EA57D68B236; Fri, 24 Dec 2021 05:09:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f45.google.com (mail-qv1-f45.google.com [209.85.219.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 1F3AB68B209 for ; Fri, 24 Dec 2021 05:09:21 +0200 (EET) Received: by mail-qv1-f45.google.com with SMTP id a9so6766115qvd.12 for ; Thu, 23 Dec 2021 19:09:21 -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=MLcLECVQmYTmwZQdPkU7KqXiFepuOzokAjiVy4SaR4Q=; b=XVHjm+Yt6/yBOzdxnR/OSNNZB0E2oR92lko+t+69fsDUmkt5Pp3GpAGeTQQYmUk2XL L5VLL7aBum3f4V75fm7ZTmzNc1EA/zeRvBnKIlKapYBxltBFL9pmB3I+v6XV/F2Gc3oo 6dtAzDRVzEETfJosTsfr9MUwIxp/kZU/RNDpYAp3707D285p2ZkvhcAI3nr2KWpU8KP0 7+SFQC5rf8TfHIRVm+ENvYFRjRIlSAC6q+ZF2mv1sbc3Hd9ZVuxDAplCJOmyK66vmmMV yvHxnHZ8E4vrW5QwoRFrS2SJNs89wEJ4EQAddmlgUrmnugfA2fW7HHWXpDffoZRLgv0T zDMQ== 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=MLcLECVQmYTmwZQdPkU7KqXiFepuOzokAjiVy4SaR4Q=; b=2TFL2UkLGPhUlwhZFHrHlu7b+gUVBLubdb8pqGD7/7zfc+qaFmgkynB3kPcSmDv+Ni +oltlogrBimTxWnKm4xHx2UT5y9tWLkZQwVAyLunKIxfjI9JpIqExO8PY7DW+rlVNrGj FnTyTQd4Ll1W89yDC1fguoUtk8Q3XKl7X5sBjLchOjCaLLMjk2JnpllmOEpsx269ttAO dkpOKOvGhO53QRh2RbQ1V3U8EibF8ToqQLPWG41vs4MTNQOgiGKtJL4KAeJE4RXnIy6+ VaTM6BXKEqFl4NI/Zlg1MjPLc6781STxGvl2l7ksB9+s+uPUBRb7x3VrAxlHtjJjwRjZ LLCA== X-Gm-Message-State: AOAM531KnZjjwMMeY23vOTZBFiri3cl6xpXpWaFPhh8Ez8T/VrqBRBMX K/ISy8BrG3FuS0aOQ3IEE6Q2b4E+KUL1g2M= X-Received: by 2002:a05:6214:410c:: with SMTP id kc12mr4327307qvb.53.1640315359338; Thu, 23 Dec 2021 19:09:19 -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.18 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:19 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:54 -0600 Message-Id: <20211224030904.1196-7-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 06/16] swscale/output: use isSemiPlanarYUV for NV12/21/24/42 case 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: DIG9w/ujEFaQ --- libswscale/output.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index 7cedb145aa..90f5efa16e 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -2632,8 +2632,7 @@ av_cold void ff_sws_init_output_funcs(SwsContext *c, } else { *yuv2plane1 = yuv2plane1_8_c; *yuv2planeX = yuv2planeX_8_c; - if (dstFormat == AV_PIX_FMT_NV12 || dstFormat == AV_PIX_FMT_NV21 || - dstFormat == AV_PIX_FMT_NV24 || dstFormat == AV_PIX_FMT_NV42) + if (isSemiPlanarYUV(dstFormat)) *yuv2nv12cX = yuv2nv12cX_c; } From patchwork Fri Dec 24 03:08:55 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32884 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805335iog; Thu, 23 Dec 2021 19:11:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJwVNUNjQSyuLaLZGilc37RvHFGw3g/ZWxA1h8KupVjf0EaVFc4eBt0u6QXTdV+SlktUBqZd X-Received: by 2002:a17:906:3ed0:: with SMTP id d16mr3820031ejj.636.1640315465697; Thu, 23 Dec 2021 19:11:05 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315465; cv=none; d=google.com; s=arc-20160816; b=vgxn2J1UL0vGVOafz9GaacsCwlIYziWNZV33sCxcFSEPFCxtyFLnrk6ifvAORdEEKC Db/KdLWjquacQpii1MCbdq6N6kI7fLyCi5q5gTlFeh2R8nPO7TvK4aq2p/a4Jsq1/lFQ uA3UNIpBC8Hbhx85S2Ema4u1C7pwyOUkSdrsZqVyopI+q0ZvCJnujkAyf8PYkYcpUINm 48GkI62RksGvoxyH/emiapCImx1i3v/C5+7PEeidnfFy0sNXWvi8G2eV/IORxcyHshgO l2d08UKQQUPoQFCixwjNHJRUBOIRla1mTgrKubbgYEQqyPeoVyjjMy8bLePwRMtcnTzS 5LwA== 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=zOy6Liz6Yhcb8oyz3V5A2Z1FN6Gx0gh4Ergk76uIya4=; b=0yX8C+mAUeggf38FjhhT0ruuP3vaOTbs4RNJ7ROmGeeslLDlw+HT9XLtQj1zKKOVyC OjHyZiueW1Rrm4MOaM0PKiExR5EkzCvgXbgv1JCUDkTa3QAbmIn1XCxhNtbQMfzA4/FC xaVRvYeNAMLGSXWqlUW8GKx0+/UN7iZ4vV46rDsK13iVnu43599dPSPshjaKLTVMcsAx iLzMoJlg9AkfgV04XlaV33W/sIvRuwr2H9uXIjE0hMabh4nUvuL7/x1iTUFNlQyg0p+k B4damBN/XrkC0SEmpOPi7VtGiarUdSEEerIdhIsu8DenBPijrVtnLHLAE8fQ1DbvkAPO gnSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=E3mySPQp; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id p6si2761677ejy.187.2021.12.23.19.11.05; Thu, 23 Dec 2021 19:11:05 -0800 (PST) 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=@rcombs.me header.s=google header.b=E3mySPQp; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CEFB668B209; Fri, 24 Dec 2021 05:09:33 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9C8C068B20B for ; Fri, 24 Dec 2021 05:09:21 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id kk22so6847554qvb.0 for ; Thu, 23 Dec 2021 19:09:21 -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=rh3Xr5S/Sr0MW7aJ4sMm5lz04rR5W1MVSZhYCra6eSk=; b=E3mySPQpLbX6w84DjWLXwXr1gK/KcgDyi0MRPbhrAa2dwOA+gnjgDfEEuP5cMWgTSm voVhmb1dVO5cKsqZA3yxTU/VAuvVJzoYqFQyrciUADdOg+3DqMNYmoiclitAL5SeAtnD 76TJryx2D6PwMY/ve4zOKb5PlBwladYzvyH/GilNdwFtGzl3Iya9Xp2KlS818AKpKs8N NDoFCMuXFT00C57hf+dLHYbI896CKykn1VZUZXEnhK9GoBV9TZppbqUS1o3faUK4lo71 9RqGUjSc7wQr4QgbHYw9R2Z7mpIyD19AZRm3vi/M+uR46eHOwW8bpmOs5fjiCyd7yPBG itCw== 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=rh3Xr5S/Sr0MW7aJ4sMm5lz04rR5W1MVSZhYCra6eSk=; b=0MFgUF87dUc3hux9kWOhRhNSat1P2bBL9QR63lCF2p+qTr3u4JNrXVhFR3G3yI3o48 CFr+CD3XTxY3JMFyau/53xpg65bfFWGlEPakoBDR5nmHE0eWtoCDC+Gj9rBw6vK58UEn bNJpX3wi0nx4mi5Ton/1VTI2fQjasCWTQBs1WPavkfSohxi24UgPqA13oUnUNK7CZJPb BetEusYXj2/JGlWd0v1cZk24lu/BZUNP/j2n+/QgzI9+sHsDdjKbDbOhSGqQrGYyq5uq rKvl1Y50iyr53XZkkIrO3P0r5+hXZW+GDDCpcsPXS8dfkjI73uVdoloTfzP5vgjj4oZM F19Q== X-Gm-Message-State: AOAM533fGbIGP1MXTjTojSNLLGtxoWV3KGVffLQzj0ysg21yATyH9KxO UMoxAPtrjOKl4JtMRZoTyo5wHeBiHZxpr60= X-Received: by 2002:a05:6214:1c0d:: with SMTP id u13mr4375605qvc.46.1640315360071; Thu, 23 Dec 2021 19:09:20 -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.19 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:19 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:55 -0600 Message-Id: <20211224030904.1196-8-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 07/16] swscale/output: use 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: OIMa5eX1UFJH --- libswscale/output.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libswscale/output.c b/libswscale/output.c index 90f5efa16e..773f3ce059 100644 --- a/libswscale/output.c +++ b/libswscale/output.c @@ -429,8 +429,7 @@ static void yuv2nv12cX_c(enum AVPixelFormat dstFormat, const uint8_t *chrDither, { int i; - if (dstFormat == AV_PIX_FMT_NV12 || - dstFormat == AV_PIX_FMT_NV24) + if (!isSwappedChroma(dstFormat)) for (i=0; i X-Patchwork-Id: 32887 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805643iog; Thu, 23 Dec 2021 19:11:35 -0800 (PST) X-Google-Smtp-Source: ABdhPJwe6eEkSIeeWSOBpdZETDu9DM+W6360Js87+IkpZaItDz15Tg8BTYHov9vXkCk7IrxLubmp X-Received: by 2002:a17:907:7e9e:: with SMTP id qb30mr3830219ejc.348.1640315495214; Thu, 23 Dec 2021 19:11:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315495; cv=none; d=google.com; s=arc-20160816; b=fYLJvRPQ1W676iTLQrnI3ssMqdfXQEWiCttb6wA4/yORwv0+uGUXMI/KGQZaYyU6py Xw66nUd/cjXQs51rvfOxbL92AFHb1DIJKIs40EyS/WiAqHKCAVhlx13buIcgmK4uczPa unwYoA3MftaPmz62sm1iSmyZbloJ5BQT0bmGGbL+8OP7HycVUhMBKB6q8noF8STwkFei osk52mjeAFJ4LSSfOqQjjbCkS94/QpTy86UVII2vxZRQZUwHQaQiqLOvScy14iVt62CZ yiUyu7GJ4d5e2E9uTmQ0iSLx0hBACiDB7mOzrqt4WiAgLz98FNaU88mhlhQlDGIPJrN5 7irg== 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=Pal+cd04MK5BpwznW3j1xhvrUEtPzxXEoEBIJ7WUO/Y=; b=g3u3z9xCtd/hE/Q1ZzagSCer0BTnAt19B4LP5Ko9tjD+2G/myxEZGZHc7kEMdZNGyO 2hoiuB2rg5s537ipZ42aAxpIx0eKJrD7wHg8p3dE+Z9exBWchQ5roGxarmSL9bVdx8qL ZDdMMix9kTsLwOvZUq7ZJBaXCfaoWVs03nWbq8WQK4/U1SUFEs8XH+55Jbj6SQEm8QtN 0UGoiterD233Hxdg5kMvnBZLiCTTuE3pym+N1U6setAtuZog2YCHAgM81BOHTkx2FPiC zvecXyGCvdx5S1ly/a0Lt82hO531Ck00eOnPc5BvaW9DZP9sLz68EcsbFazI1FyZA0Tj nzbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=XdNlzwVI; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f16si2982793edj.1.2021.12.23.19.11.34; Thu, 23 Dec 2021 19:11:35 -0800 (PST) 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=@rcombs.me header.s=google header.b=XdNlzwVI; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id C129E68B248; Fri, 24 Dec 2021 05:09:36 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A0A0768B0C1 for ; Fri, 24 Dec 2021 05:09:22 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id ke6so6821817qvb.1 for ; Thu, 23 Dec 2021 19:09:22 -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=2bbcZ2dIFfM2A3xP2S3idg0YVgZ6zSwa0XWx7jJQ5y0=; b=XdNlzwVIFP2LXC8qpjj+3FWZqPXmjANDos1FEyfSxp3k0ZzKU7iTkEd+WJZ5P7q9fS 03O2CD9QOnlMvRBK9oLck4sFXa6x02JOhObeYHG+6QQNZYh6siZAC2htKiSx9AJ5BEk7 MbwmJDYJXwrM8U50A1oWZjB/LPCrkDEE3/Wat2ZcbRWcK9NaOX8CIh6r/JQM5IJmCtSY O4pHmqo3ASMaAm0MgatC+nvmlhX15xojfaVhcB032X5iPOOT/zqGpgvW1iIWFApj2/iZ 1P42KC0koLHa0qnPBL8QaM8YJb5/hwPHu1SgbgX4D1IUTuvcYQDLPvo+mxyaSfVHU8QQ 07eQ== 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=2bbcZ2dIFfM2A3xP2S3idg0YVgZ6zSwa0XWx7jJQ5y0=; b=kanQWWSoBO5fsreYsQzHS0eNMGQOHPLOBEnABfSUSuRfm2DnsR8Hsj0IFMd+V5jHjA pXxi8gGCaE/Dj78qVE0F7txgGpalexaixguqSiG8qJsUM/NaXmjSyqseiJjqHkXj1mSQ U83tHR4l0KEhx50se7OfUJiN08lOO9rqHI34gbhvw5Sjc8/GIS2TKZuEhDq6uYaILN10 iprQlyvvy1tKGsQtuUPyGaKuxLYUzHlfcOFVjx3MgTWxOMeEWfu+1Nknef5R759wYLp2 gYd4/ri6bzJymxy6SuinoDqcXZaOOqOwRuAx+pmV+MFReGvULTRb4ZrJIWnmZ74bF7f4 qewg== X-Gm-Message-State: AOAM531MIWcIrrV6Tu57xEoZz1objVpGsq5oV7uLwK1aT/nzzY0BadrZ WFc3zAXHuYjzjr1FbPOg9SJCchb0SSkStSE= X-Received: by 2002:a05:6214:400e:: with SMTP id kd14mr4253669qvb.68.1640315361108; Thu, 23 Dec 2021 19:09:21 -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.20 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:20 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:56 -0600 Message-Id: <20211224030904.1196-9-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 08/16] lavfi/drawutils: move BE check out of loop 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: tTbegDOzvRUq --- libavfilter/drawutils.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 88218b913f..79570e71da 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -89,6 +89,8 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) if (!desc || !desc->name) return AVERROR(EINVAL); + if (desc->flags & AV_PIX_FMT_FLAG_BE) + return AVERROR(ENOSYS); if (desc->flags & ~(AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA)) return AVERROR(ENOSYS); if (format == AV_PIX_FMT_P010LE || format == AV_PIX_FMT_P010BE || format == AV_PIX_FMT_P016LE || format == AV_PIX_FMT_P016BE) @@ -101,8 +103,6 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) /* for now, only 8-16 bits formats */ if (c->depth < 8 || c->depth > 16) return AVERROR(ENOSYS); - if (desc->flags & AV_PIX_FMT_FLAG_BE) - return AVERROR(ENOSYS); if (c->plane >= MAX_PLANES) return AVERROR(ENOSYS); /* strange interleaving */ From patchwork Fri Dec 24 03:08:57 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32878 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7804839iog; Thu, 23 Dec 2021 19:10:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJxi0frqm7kbBC9wYakxEJBYdx7ly7gy3umOtUrQ/DJKGPzXweZjrPRmZjYhBEquAKzbIp9d X-Received: by 2002:a17:906:c450:: with SMTP id ck16mr3811742ejb.579.1640315407233; Thu, 23 Dec 2021 19:10:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315407; cv=none; d=google.com; s=arc-20160816; b=mRWnBJxji8ixS1rRUvhmDtvhUZionJ8bPCu+mgRnij/Mr8xWBtlNyFUoozZ4Msha7x rvQqIWrAph51YchPpSQKNdEnvfOTru0qUl4o40djMaMgOEIzyniXdHigK0DiiUrkYDbI HGndgpR1swkzb7Tb9nmXlGEagii+WdLcWlMQbOA/pGHoiIKzQ4yEjU/zayAFPQdC+rgz cJl0KuBAiAf6IjcrF/hQ/c6lcXK/ZwHn/qJTU0LApCPlx91qUdxqjTb+mqQR2e9A8R1E mdyeePDy6GiKLk6uVFTMWBFC13QpOqBjrL60BqRQlMAObqHrxzeXy9vpkWSaXd0StKNB 4Dvg== 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=AznbmNZYPep8MRdeb7j4BxNRK8EWw0hY1JpLW7Mdrfk=; b=W7sQ0xYeI726RrD/39Hp66seJqrYxLnE4P+rjwp3ll14M1RmRahh+h3X03BgF9GloX LV1sGAiWrQuG8IMoSalBjgrfoYtEiC1hr0y4ilFKD8i3Ctak/49H/pTT1sfDS8aAckbc LxPyleNFDOSzsIJGtX9rN29LNJtTlfiRjTx2MRTFXMZUr2A1P3QDv2eTG8Pg3FN9KpO+ KgRiS55hphz1f1quevmn3wSj8wCf+U9qGpFqEQJ02PSJJvAKnlEhbY9zcdz2RWtr24Pc REodwB/fQGlEvm4vEf+ES50auIzq6UqYJei82k1uDMisOi/basV8wiKtVVvCQUatRo5w M74g== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b="EVg/dX6I"; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y20si895742edd.86.2021.12.23.19.10.06; Thu, 23 Dec 2021 19:10:07 -0800 (PST) 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=@rcombs.me header.s=google header.b="EVg/dX6I"; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0EF6E68B211; Fri, 24 Dec 2021 05:09:28 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f54.google.com (mail-qv1-f54.google.com [209.85.219.54]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 83BBA68B1CE for ; Fri, 24 Dec 2021 05:09:23 +0200 (EET) Received: by mail-qv1-f54.google.com with SMTP id kd9so6758242qvb.11 for ; Thu, 23 Dec 2021 19:09:23 -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=51FRwYGz6pa5dZQFwy89pgCp7AMWHjg6N2VAnqSiVTY=; b=EVg/dX6I/h6Sauadjcz8pGtB4VY6T5fO6cYNti5QMPstUA1uaqHh0zB3l/L19JPslc kayB+m2y2ECzf7d4U1DeDBGks3YwXU3zVdJ5e7vW9juomOiDVZpfci92uKSmij2ip2Ti Rwc3oJOV9VvzIpNQXd44lSdu4pwEZDAZbb/tFym5qodGEuJL8clzE0JlO3O0vCd9eLP3 /0rnUEPgwcawwNUcsjCIrmSx0O4F2dJG4ZqNJFrU+AFWkNpvBughVCTXu8iTZfc+Z9Vx IbgbHzTWMVNUSiV24h4dR7t474bwVKggSPYqruS2XX/gr0uC1PQjLkz57Qa6t5wE4y47 8FaA== 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=51FRwYGz6pa5dZQFwy89pgCp7AMWHjg6N2VAnqSiVTY=; b=hL2EXZew59dZR7vl6qVEBAhAAQWARWZJsBmRKc7ESw+B4BcoF4f/BGKdFw150dOrAT cmZGH5gWuFwor36jdGRfPOa7GkfUBvTUhXEPUoYtdqIMdDa2ur+LPGCBXGV00935Cnhq 3uoDM7WrZYSPQnCUSXQCwaG1vXU5V7egy7hFLY6wvpGN6iH3mnMaOdCmli4n9vRNT0On pfu8bYwn0uB9HOYJnaW//m6OkzLLkh/P+AtKjt72RBT6SH691zc31GkoxFtP4fG1IM1R I0n9237IH4SsdocUAO11sqqrjYyl1/t7rrFuhbvRyUk8Jgd1dqr5uPB+Ev8KGcSqVbdc Gh5Q== X-Gm-Message-State: AOAM532euEuwdotSbyvgpyTb0+wqhzqo+MaAbVTDR68ERjTT+8P2khvk eR9qs9YaJIu8fzAlSBqUV3yXRzA1zI8OD9M= X-Received: by 2002:ad4:5765:: with SMTP id r5mr2993321qvx.70.1640315361926; Thu, 23 Dec 2021 19:09:21 -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.21 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:21 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:57 -0600 Message-Id: <20211224030904.1196-10-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 09/16] lavfi/drawutils: remove redundant BE format checks 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: fMth6RhwFq9i We already explicitly don't support big-endian in general --- libavfilter/drawutils.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 79570e71da..6b46f5803d 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -93,7 +93,7 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) return AVERROR(ENOSYS); if (desc->flags & ~(AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA)) return AVERROR(ENOSYS); - if (format == AV_PIX_FMT_P010LE || format == AV_PIX_FMT_P010BE || format == AV_PIX_FMT_P016LE || format == AV_PIX_FMT_P016BE) + if (format == AV_PIX_FMT_P010LE || format == AV_PIX_FMT_P016LE) return AVERROR(ENOSYS); if (format == AV_PIX_FMT_YUVJ420P || format == AV_PIX_FMT_YUVJ422P || format == AV_PIX_FMT_YUVJ444P || format == AV_PIX_FMT_YUVJ411P || format == AV_PIX_FMT_YUVJ440P) From patchwork Fri Dec 24 03:08:58 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32880 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805041iog; Thu, 23 Dec 2021 19:10:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJy4zn9kIZj5xbjNYjMw85lTa4FliUWXaki8QdP9t+FfsFt9NrhNyHZA7j99k3i1Mm14q6sC X-Received: by 2002:a17:907:3e12:: with SMTP id hp18mr3778048ejc.576.1640315428720; Thu, 23 Dec 2021 19:10:28 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315428; cv=none; d=google.com; s=arc-20160816; b=vUupbMXQFDAe9crexG8QTSKutx7VXoQhHHTWlGfJfmCFldiyx0YgQTgdZQvxYf1/Xz qhk8KrnD+vKzCyR/nuKXLUWsDdrdI+vSybge7lDNmpuFwMq3xlmXvoKOtxnaKul5W9qR 7BxZ23DWNnWHaEw9PI8KHXikNx86UrBVdoBKMatLaitcUNHe1Lnn0sVnZuZ1PxTTAR4V QILrH+S66r8zdAzPM3QViimWLtBjwksnddU0bza+dkvxvhkiusQjnfPZIj/GnAK3lJkJ LpZ7KAFzXBN4yH59+dg2p6Pia3OUxxQfwJizcfOL1I7rmkmUOzqOtkVZU+udeXQdyUz3 J5/w== 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=X3l4pWVb4wpFtSA1tIB6Mwl003xmO99WazGACLCxVzU=; b=X+VVGXMe/Wwuwoagu+4sQsvpFgZag0jx3w4HwjCXDLdyYmb1IQ+fCbhObM0FvqIFsh CKBpngqw6EQGQwKqXQSKPQnzkqR5dOM7ZuMpaTzYPk/yjY+V1Fhuv3a1KX+xStzlEMEk ODkmb8L3vPdmogWdoqsYGmvSRdobkmVhE1vel3bJeXRIS6FPkJFaSLVdZL7/VvJqtxCJ Ec4NrM89KQSBkEEQWZZPZNw5FGMycINFHg1brVgZHRAcWN/ug8kWnKZDYcOsqitpw/4n MaCcrIqn5z0jTKDrOMInMB+V8QxGZl4wNqcda8cG8a7Hfbdi6DeZ/2Oo680HHkcnZ+kk FH8Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=V02W5gJ9; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id az17si2529483ejc.178.2021.12.23.19.10.28; Thu, 23 Dec 2021 19:10:28 -0800 (PST) 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=@rcombs.me header.s=google header.b=V02W5gJ9; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id EAF4768B226; Fri, 24 Dec 2021 05:09:29 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org 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 7434068B1F5 for ; Fri, 24 Dec 2021 05:09:24 +0200 (EET) Received: by mail-qv1-f48.google.com with SMTP id h5so6785334qvh.8 for ; Thu, 23 Dec 2021 19:09:24 -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=BN/bIQdPxSvqQ7CNOy1FNgwCQ78BvGdQcHekFL+2iWM=; b=V02W5gJ9nUnc+VH3vhkSR3e0osC6TbuBOvk0x/zeWuBIkEg/SMueXP0NEPYHoWXN82 rZkUskTV9tvXdCdjwWgDfrxDJtMcC/tep/Wdr7imapy5ujINCqBJbtqA9I+Eu2JHASfF LW4xnGEhwST7YKGYuoOVo8/RoVtMPrJSnLqNBfjvgFhqM8rOFrAyzTe2pONQGLsBuVkg X1fYt7GpMV89hq81bSdtGLVB+EdqZd/pv6lllT8mjizMA1gu5ZUq0GqGNxG44ObIolMx 1+fz28eZQjVxQWm9wwgQHdOaeBiByqV21DvBB53Ta9sbU9o3VM8w9Oc4H8FqN7EoLczk zFbg== 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=BN/bIQdPxSvqQ7CNOy1FNgwCQ78BvGdQcHekFL+2iWM=; b=ZXhqU+rwQmUDp8MxgcRhieWGMYV08GyaUrWIDaqAaUO000KR445AcS/my4WlW2CH5G HKRLHznHKi2//wKy8aHuwLuLh+ltrGOwZLEpcDglMcgNoG3Q7HeMa5q2IM/2Y3Ei8dKV fuqwcpaqvEOgwF1PXdnrIu1VAsVZsNEy99Me/fcGcF7ErQwC/GB6k495uJy9MifcKZUx gAAyYmq6ipyBA7pUWIeo+2SFx0capYfZFx2mgP21+FjMgCr5jeqOk8UIHfQg5bA9Bmms H28OMwHSTixTMuhUEGDvZ5teoxdXYudRp1j2RiJdOOt3577nkDO7detuji+4HBg00QyG w51Q== X-Gm-Message-State: AOAM532FIqnUw/oyUw5I7rMQcW9Kf7++3bKoWvJyHyHQn3usn8faVNmN Xf/a++LNHWAOSB1JrtNUegwKq4jDNgADafE= X-Received: by 2002:a05:6214:5096:: with SMTP id kk22mr4241681qvb.39.1640315362943; Thu, 23 Dec 2021 19:09:22 -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.22 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:22 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:58 -0600 Message-Id: <20211224030904.1196-11-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 10/16] lavfi/drawutils: reject shift-packed formats 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: lwbfJfJDxW2H Disables x2bgr10/x2rgb10 (which did not behave correctly before). --- libavfilter/drawutils.c | 3 +++ tests/ref/fate/filter-pixfmts-pad | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 6b46f5803d..0965afb03e 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -105,6 +105,9 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) return AVERROR(ENOSYS); if (c->plane >= MAX_PLANES) return AVERROR(ENOSYS); + /* data must either be in the high or low bits, never middle */ + if (c->shift && ((c->shift + c->depth) & 0x7)) + return AVERROR(ENOSYS); /* strange interleaving */ if (pixelstep[c->plane] != 0 && pixelstep[c->plane] != c->step) diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad index 1362d198b4..74981cd6c1 100644 --- a/tests/ref/fate/filter-pixfmts-pad +++ b/tests/ref/fate/filter-pixfmts-pad @@ -32,8 +32,6 @@ p416le 6db094f8d7d27d7299bf9496ad66e2e0 rgb0 78d500c8361ab6423a4826a00268c908 rgb24 17f9e2e0c609009acaf2175c42d4a2a5 rgba b157c90191463d34fb3ce77b36c96386 -x2bgr10le d4aff89f5e15ccbb1812f319874ed444 -x2rgb10le a0c5925bd56b6f85f918c4e9fb93e90e xyz12le 85abf80b77a9236a76ba0b00fcbdea2d ya16le 940fafa240b9916de5f73cb20a552f24 ya8 5fc0f471207ddf7aa01b07027d56b672 From patchwork Fri Dec 24 03:08:59 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32882 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805206iog; Thu, 23 Dec 2021 19:10:47 -0800 (PST) X-Google-Smtp-Source: ABdhPJzyIYTVbs13PbLes9Dd/IgowlaEtpf+lGpbYt4+0CdPE06FOS8dWUEdCiWteFJvWK2LMXBP X-Received: by 2002:a17:907:86aa:: with SMTP id qa42mr3979902ejc.142.1640315447517; Thu, 23 Dec 2021 19:10:47 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315447; cv=none; d=google.com; s=arc-20160816; b=hIxWtGHLkNhrE7OOQBppkG1zdt5KGtcIxTJrSxNDsCswV/b9yFO2UTCZ6fQ3pobdXc y0hApLdHFKs0kudS1kx6TVZgxC5de6VD+8CPod5rwLbKiPlQWdNwbChVgvOaAPoDQ1mt xqZ0UZe2CPaJzR1Yf4H45gM2eP9MN5tekCfZkUfaI9f9K547vnuENhX0lf54usuPXAB2 2FDPBZOj7UeOfIFs7oDt8EyTrk/SMCH/LuTc9t6RPV+YGUWrnmzFBVLuUQBTPoCseN+0 kuSdt6SCknJo7gE03j8orw0a+66FDKmVZivthdyEdAQndX9z0iVBG+lYoys8wHcjDRpk gZVg== 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=WXGheIvd/NdQfjBCZlBYRtT/mpWewos+Yyh22aDyDsE=; b=KD2+ehKoQb+GiA+jdAvDoW+WKD8D1M4PzVumki8PG473z3Xi/PQ6zt8zeLXvi+OS/j NvCXabQMDpLw6rTjzb/0UCWkSJ/pyeTdj1swSGnPIclkE6A0NV6mAf7tb5j0+4gFdRMq d50Aj3/eDTc2W0oNBrcoZiD9Z5Y7HDpQB6PpbUC0ugvIZpm4aKlk9LKJfRLI6wKGPcDW ipZJwL/VvtDQWDtPdzKclJmo2B25s2JBV6Wgi66w+XXEb5ljpr+qT2HZSeFlWBBI/nGS cunqeeDDIiSqJlChIAJFNHCVJiU6gbil4hD1Tb4toGQgCeQ5xtOUN+iIOZ7vvuS3D1NS GFFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=J2Ix78n2; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id cr1si3269310ejc.534.2021.12.23.19.10.47; Thu, 23 Dec 2021 19:10:47 -0800 (PST) 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=@rcombs.me header.s=google header.b=J2Ix78n2; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 01EA168B22F; Fri, 24 Dec 2021 05:09:32 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f46.google.com (mail-qv1-f46.google.com [209.85.219.46]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C3BED68B1FA for ; Fri, 24 Dec 2021 05:09:25 +0200 (EET) Received: by mail-qv1-f46.google.com with SMTP id kc16so6807631qvb.3 for ; Thu, 23 Dec 2021 19:09:25 -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=TsA1yHdbiURyPXJAkpxs7dCHo/yQXZYKYHQjmvfB0s4=; b=J2Ix78n2Fi50bN5ld53MhHOrMrRzqK4niWAfCEXYJKZgojh/cK+UGWNvOIjg3IHnHh jxvoXq2A9HK2j0+MTPm/xPJgzfXuhQsPt4bq5cHu21L8nK8u0HTbE0j7QdFIieqn8rAs oeMpWtBLCgQZPh70it55NHgTpltsCh0NXoLrcuprg9wuxB8X25dzTQmzSXxHa5I3TSvI R/Prnl/97ZrFDCoUj7PYl2qJNxqdO+fu7b1TzBFvwR7M8wBo75D7M7h9cN8x6AaHF2HQ seNm5jvVeNPSwoikZ6EcmjFuQ0bcM6PJi7mKXs82iXAehrwFvpH/G0rNrazUEzUsjXV4 zktA== 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=TsA1yHdbiURyPXJAkpxs7dCHo/yQXZYKYHQjmvfB0s4=; b=gwJuOoVs0vDxWYo9S8f8wmQ4ef0i07zrN7Jb4FiG+igDybkz9MunKStiCM0ABeP2/2 Rv20mpaXfkA70LekbhX85qFr0Yx7CJEPOH9RMN6V0U7rtMcp0M97APwFE/qXNORxO0CZ pw114jvyocjNryXhAqOgVYpkKmhTQShFVjeTw3mGjX9HZUmGB/wCqOrbLbNTVflsaxQf 44jCcuYijxyl3YKw/ccjfMq3jN9KKW4QLyiS+v3BcEAnTAQ+9gR7akDH2RLTbWwdb7nh WMFFCaVLPRG2vQJO0l6ARR8DutpH58L/unMlKIIF+Z1LqbqaqG2MPkt6pdnv73uCMt7A 2QJA== X-Gm-Message-State: AOAM532mkL2CjVCO+99DV+gXoOwaoxnowAR3iSDUZqUhv1qYkjJ1ouBq 7gVZ0B1wwz2acUojb5Q8bzpeI5qGrcIs708= X-Received: by 2002:ad4:5cef:: with SMTP id iv15mr4159009qvb.82.1640315364018; Thu, 23 Dec 2021 19:09:24 -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.23 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:23 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:08:59 -0600 Message-Id: <20211224030904.1196-12-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 11/16] lavfi/drawutils: reimplement ff_fill_rgba_map without hardcoding the list 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: uyg8R0V1mPX5 Same outputs, but computed instead of statically known, so new formats will be supported more easily. Asserts in place to ensure we update this if we add anything incompatible with its logic. --- libavfilter/drawutils.c | 81 ++++++++++++++++++++--------------------- 1 file changed, 39 insertions(+), 42 deletions(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 0965afb03e..e4d6ddcf4c 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -21,6 +21,7 @@ #include +#include "libavutil/avassert.h" #include "libavutil/avutil.h" #include "libavutil/colorspace.h" #include "libavutil/intreadwrite.h" @@ -32,50 +33,46 @@ enum { RED = 0, GREEN, BLUE, ALPHA }; int ff_fill_rgba_map(uint8_t *rgba_map, enum AVPixelFormat pix_fmt) { - switch (pix_fmt) { - case AV_PIX_FMT_0RGB: - case AV_PIX_FMT_ARGB: rgba_map[ALPHA] = 0; rgba_map[RED ] = 1; rgba_map[GREEN] = 2; rgba_map[BLUE ] = 3; break; - case AV_PIX_FMT_0BGR: - case AV_PIX_FMT_ABGR: rgba_map[ALPHA] = 0; rgba_map[BLUE ] = 1; rgba_map[GREEN] = 2; rgba_map[RED ] = 3; break; - case AV_PIX_FMT_RGB48LE: - case AV_PIX_FMT_RGB48BE: - case AV_PIX_FMT_RGBA64BE: - case AV_PIX_FMT_RGBA64LE: - case AV_PIX_FMT_RGB0: - case AV_PIX_FMT_RGBA: - case AV_PIX_FMT_RGB24: rgba_map[RED ] = 0; rgba_map[GREEN] = 1; rgba_map[BLUE ] = 2; rgba_map[ALPHA] = 3; break; - case AV_PIX_FMT_BGR48LE: - case AV_PIX_FMT_BGR48BE: - case AV_PIX_FMT_BGRA64BE: - case AV_PIX_FMT_BGRA64LE: - case AV_PIX_FMT_BGRA: - case AV_PIX_FMT_BGR0: - case AV_PIX_FMT_BGR24: rgba_map[BLUE ] = 0; rgba_map[GREEN] = 1; rgba_map[RED ] = 2; rgba_map[ALPHA] = 3; break; - case AV_PIX_FMT_GBRP9LE: - case AV_PIX_FMT_GBRP9BE: - case AV_PIX_FMT_GBRP10LE: - case AV_PIX_FMT_GBRP10BE: - case AV_PIX_FMT_GBRP12LE: - case AV_PIX_FMT_GBRP12BE: - case AV_PIX_FMT_GBRP14LE: - case AV_PIX_FMT_GBRP14BE: - case AV_PIX_FMT_GBRP16LE: - case AV_PIX_FMT_GBRP16BE: - case AV_PIX_FMT_GBRAP: - case AV_PIX_FMT_GBRAP10LE: - case AV_PIX_FMT_GBRAP10BE: - case AV_PIX_FMT_GBRAP12LE: - case AV_PIX_FMT_GBRAP12BE: - case AV_PIX_FMT_GBRAP16LE: - case AV_PIX_FMT_GBRAP16BE: - case AV_PIX_FMT_GBRPF32LE: - case AV_PIX_FMT_GBRPF32BE: - case AV_PIX_FMT_GBRAPF32LE: - case AV_PIX_FMT_GBRAPF32BE: - case AV_PIX_FMT_GBRP: rgba_map[GREEN] = 0; rgba_map[BLUE ] = 1; rgba_map[RED ] = 2; rgba_map[ALPHA] = 3; break; - default: /* unsupported */ + const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(pix_fmt); + if (!(desc->flags & AV_PIX_FMT_FLAG_RGB)) return AVERROR(EINVAL); + if (desc->flags & AV_PIX_FMT_FLAG_BITSTREAM) + return AVERROR(EINVAL); + av_assert0(desc->nb_components == 3 + !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA)); + if (desc->flags & AV_PIX_FMT_FLAG_PLANAR) { + rgba_map[RED] = desc->comp[0].plane; + rgba_map[GREEN] = desc->comp[1].plane; + rgba_map[BLUE] = desc->comp[2].plane; + rgba_map[ALPHA] = (desc->flags & AV_PIX_FMT_FLAG_ALPHA) ? desc->comp[3].plane : 3; + } else { + int had0 = 0; + unsigned depthb = 0; + unsigned i; + for (i = 0; i < desc->nb_components; i++) { + /* all components must have same depth in bytes */ + unsigned db = (desc->comp[i].depth + 7) / 8; + unsigned pos = desc->comp[i].offset / db; + if (depthb && (depthb != db)) + return AVERROR(ENOSYS); + + if (desc->comp[i].offset % db) + return AVERROR(ENOSYS); + + had0 |= pos == 0; + rgba_map[i] = pos; + } + + if (desc->nb_components == 3) + rgba_map[ALPHA] = had0 ? 3 : 0; } + + av_assert0(rgba_map[RED] != rgba_map[GREEN]); + av_assert0(rgba_map[GREEN] != rgba_map[BLUE]); + av_assert0(rgba_map[BLUE] != rgba_map[RED]); + av_assert0(rgba_map[RED] != rgba_map[ALPHA]); + av_assert0(rgba_map[GREEN] != rgba_map[ALPHA]); + av_assert0(rgba_map[BLUE] != rgba_map[ALPHA]); + return 0; } From patchwork Fri Dec 24 03:09:00 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32885 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805424iog; Thu, 23 Dec 2021 19:11:15 -0800 (PST) X-Google-Smtp-Source: ABdhPJz6C0oKydFWoX0Gpgifk/x1BR61PVC9cg1sR1R5Oqswulq3anObwkRSknEAm/hukgtPRqBH X-Received: by 2002:a50:950c:: with SMTP id u12mr4367293eda.361.1640315475111; Thu, 23 Dec 2021 19:11:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315475; cv=none; d=google.com; s=arc-20160816; b=xDwjGB4XG4GugtzXanV3WUGHBBoXgEQHct1iAxei0RM4rFCMYnbaD+Mzj9UcEuYP8/ z9zIvrbFUCaV1bWFnMfTZXWbw5c6sbh7eqN3/eojjS6+uIP5QZsM4UZeY+sSBtsICGdC jepQLA781uuwbEjTjppvC8xUtWhIJJXDhRmC3mJfmD5TLF+IsxyPar4eUU+MbOoq2t6A g3QzJnx6aOqu4FzE/T7RCJxxyTocue8b/RH+/L/SP2Z9barpNmWbu7AAAOKW7whIjKRm 0btFt5CQz/TopJvHgwTH7kRqYPCl3YW2sXx7It1YXtya88iv6GP9tRopGvvRpI+eY63K ae6Q== 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=IcoMS74Qb6SzjGQkhUWO+bY9d34l4ZR29umJEO5GkNU=; b=ln6TRox2soYj/xJ13Lq2Kuwi+Vl//2LJe157iEkmIgPG7QdI89IMedgPbFEuIbj4a7 WqOB0M6WWW4n/BDGvPcd7tdsDHcaFyVLnvG+8xoZNNQq7393cxWzyAS+lqPj4mZNNyX5 3BZHdxR66JeBpkOjchSEw4vdSW7Eioac9ZuV2fdrnj+QpjJKnfYfzm1nnWPMfvny7uxl 0vb432kBHfx/5kSAe/hR7CQWR8qqqanNEKBpjhgc1hRonG4peIqrWpjtagiyqbki9XO7 S1Xb1sQM6OqagLLbHVxbt/E+ZeUKmSp4V7zts6L1JLDxT+DwCkdXsS5FhkdbyzGK3FAk 8yCQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=ffs+hLp4; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id f2si201846edy.201.2021.12.23.19.11.14; Thu, 23 Dec 2021 19:11:15 -0800 (PST) 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=@rcombs.me header.s=google header.b=ffs+hLp4; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AD5CC68B20D; Fri, 24 Dec 2021 05:09:34 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9D8DE68B20C for ; Fri, 24 Dec 2021 05:09:26 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id w27so1152800qkj.7 for ; Thu, 23 Dec 2021 19:09:26 -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=ExF/TYmU65aQq4B3Q0Euibe3b7iM/duy+t0sGlltyVM=; b=ffs+hLp4OdOTznnjjQW/mG+s5EWVSeDrvnvM1FdS21P2L6y1UQynuazi+23BzfVIEk z+fjqjEet8VebjXI+IP7yHfSrh27gmHCNoAJxkuCSgunRjjP1wVnCsKjV3YzRTQWU4yx yYMsuXfks+OP4iMV17mF0ZZRENSyFbQndsI2r7DlKPVj6W6MpZyjnQttEhvGGikrsOpP S+LBTgYr57JtTknsxKDHiABTMRtJeuRYxcxk2K6HFRMJrpv8jPSpgMi5kk/fA16zedAD gg/D7bGrKyHUYrFu9ZcERswxg4L18Ih+SSUd7I7qXyHCaLhJ4RZszjDloOTRFqTBnZVn oGeA== 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=ExF/TYmU65aQq4B3Q0Euibe3b7iM/duy+t0sGlltyVM=; b=C5XS3I/1kHIrdStwjCqdhsDPb9GC4Um0sx+IwrvRXvJB8/pSSqAmRej84ElBtmUoPr mMVhvEKE7qtomcmcrtY7zo2sNpLmuapZvVJgK3miWIdAcGCHimcsfUjWt7nJOyqNbXYz TLOdAnkvrm+lgOxN0vM+tZvrDhPcwAtnAYEYDNz9+VGVhAl424kutpChazsUq9qxJlCK cannpcuktDE3sNcQqH6owtIaUFq1SYEOGsP8R2aFBtvam1E1+y22YNCI6/EXj4hYBnn9 q2IVcunbw656TRnrghLIffhtaDXbKRUTBGytqiSpa+Kk/92tQgy0J0oYYd1jC5ABy7Dl CEhw== X-Gm-Message-State: AOAM533RAHT71uwmkDVam+B0rz7hfuUypEVGc/vnyVw5qckTw/mWPTS+ 1vkYUKhZ8vEfQnB6g3J6zBodftTBdC7e5ls= X-Received: by 2002:a05:620a:454d:: with SMTP id u13mr3505411qkp.221.1640315365128; Thu, 23 Dec 2021 19:09:25 -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.24 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:24 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:09:00 -0600 Message-Id: <20211224030904.1196-13-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 12/16] lavfi/drawutils: ensure we don't allow mixed-byte-depth formats 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: Si5Bf8fSWY4c These could be hazardous because of FFDrawColor's union --- libavfilter/drawutils.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index e4d6ddcf4c..99c124822d 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -83,6 +83,7 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) unsigned i, nb_planes = 0; int pixelstep[MAX_PLANES] = { 0 }; int full_range = 0; + int depthb = 0; if (!desc || !desc->name) return AVERROR(EINVAL); @@ -96,6 +97,7 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) format == AV_PIX_FMT_YUVJ411P || format == AV_PIX_FMT_YUVJ440P) full_range = 1; for (i = 0; i < desc->nb_components; i++) { + int db; c = &desc->comp[i]; /* for now, only 8-16 bits formats */ if (c->depth < 8 || c->depth > 16) @@ -105,6 +107,11 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) /* data must either be in the high or low bits, never middle */ if (c->shift && ((c->shift + c->depth) & 0x7)) return AVERROR(ENOSYS); + /* mixed >8 and <=8 depth */ + db = (c->depth + 7) / 8; + if (depthb && (depthb != db)) + return AVERROR(ENOSYS); + depthb = db; /* strange interleaving */ if (pixelstep[c->plane] != 0 && pixelstep[c->plane] != c->step) From patchwork Fri Dec 24 03:09:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32886 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805533iog; Thu, 23 Dec 2021 19:11:25 -0800 (PST) X-Google-Smtp-Source: ABdhPJyeUclVVOGr/20N+zwWIlJWZZ6AZneaAskfx4Ad6fmziDDOG0tqfhSoiRTFbLdaywSLk7Qd X-Received: by 2002:a17:907:6e25:: with SMTP id sd37mr3985961ejc.529.1640315485219; Thu, 23 Dec 2021 19:11:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315485; cv=none; d=google.com; s=arc-20160816; b=q+FGj/NyHHZFTfJzWp0Iv9vdgQEj/LoWdz1i9qJ1dkDnYowIuRdQGqHoHLikoEv7Ql kdlrOprpUc/mMVF+OYZcyqeYTOG1XlXupDTybCXmoahk3Cdv1wHGqnpG7d8eCaSijXYd 5PHPNJN/9AvVHtiEXNs1t/Poeub4WQ+vdtbZ/DHLbnJlkvEhq77NTvTw98zH6llg6N9U Qf0P0X9RwvP+zTs20u2Fw6Oulspo0uiBYc0OE7/nRuA4l9oU07FfohmEmB41fjAqJ1Cq wu5CQMglIdbaVgyviofut3z/Wn/4z/G3srmVK59dicCkrxi7ZaeCTUNFgvDyx21Wtnfi SPdA== 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=dSWmBSIjwYLfJBD9urxlLnPJbjbAvE9clTKQhMTD6xY=; b=txlSwEBfpyBOHnh6XMtrhLLNzTbVwk6dcD6HK9pSuEfD3b31RTHVnHsVmha8bxlH5x 6tO6Q9e8uzP2izeygrS4puq9fvCT9XtdzRvRLbr9ul1GWfyk3aHyumTlQYDYlDv1pdgx 6xKp22xCbB33jWGJu6HJAgrxZ8XgmEJcf8qB86sTGNyvQRa2RhSYsXFkxD4NRxhvhvwq DMcDzxGTDgiV5hB+fLaV4vGV14uW2TXWPFMHna5yXDf7kH5RvQKTmUi41kAAS1XT9/gh 6xAPSDJSA++KFDNNSjXXdliOLFPaXnhVFq09a8FiUp21q4vZEUZpTsqnOQGDSjTYyDe9 L/Ug== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=gHB1C7j7; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id bd13si2839536edb.397.2021.12.23.19.11.24; Thu, 23 Dec 2021 19:11:25 -0800 (PST) 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=@rcombs.me header.s=google header.b=gHB1C7j7; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A7BFB68B243; Fri, 24 Dec 2021 05:09:35 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f174.google.com (mail-qt1-f174.google.com [209.85.160.174]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 7939568A656 for ; Fri, 24 Dec 2021 05:09:27 +0200 (EET) Received: by mail-qt1-f174.google.com with SMTP id z9so6619152qtj.9 for ; Thu, 23 Dec 2021 19:09:27 -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=XPYYopJZsarXhfC8ftQ3REXxvC1jf9E4ycIhV/cmeks=; b=gHB1C7j7Q7HahA18kAII9yrL9LMhIidVuXY5HA+jn4sUdZiOnzesGLQYAAGhqzgTBa cD6sFzwics+XQlx2wuE6JbKLhQjFdPM6jrfcvkbN0i2OLbq/FvRy5jfcDVV61ZYIc+0L 68YAb0pclH30yFaQP1LYr6t5vwl3xrooNiNagfF+CzNxSs/yGFy5dio/PlVXqqIOY25D H5luU19ZB3Ox9LlmUgreG4BpILJTgMHsvrcVpH2e/FPWKbdUe0LALoEogXWaVLRXX+o9 Zg9aI8KKUUE5pd+aBQc6BlI1c1Q2vwrJFU0FUxEEB77/Db9NjRM2SiSU/OBVE1xADNOt oo5A== 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=XPYYopJZsarXhfC8ftQ3REXxvC1jf9E4ycIhV/cmeks=; b=Y2NeskEsq0fZBmxHtB9gp1WLFFfDlzN+/Xygc1R2ny1AuqXlvNSLavuNectB22P+iQ gLFt9k37+koxlz/us3xz9FdGbMsnh0xw0vFQMNB7dCM/EYz66pyAajx+cxpIS2lSiIJ7 AYVot6Nu14XQ6HumpjIXG6zkq8+xw9DVboRgJXyU9WhzgmVcbGux2m4HWa54Z1WcvgHJ /e/sdeg9t0x5mYnW9IsLk+Wo2YwqEn7Fm8Dgu4kzID2AiKzggXyhp+sgWUjC6QCXE/vl vk/pQixn5uGlvJjNb60h7S1GrZaOAIoODhezuLTe7qBbM+XaOTXbDORMi0bfPSsbUeb+ l2EA== X-Gm-Message-State: AOAM533EnYVQTgPQjueXwFdVbeBD8Xf4KP7GzJQrTsGJzODKXVAQdV71 6rRVOEckY0EzvecRNGGZXZHj/eazNayfHn0= X-Received: by 2002:ac8:57cc:: with SMTP id w12mr4213049qta.82.1640315365981; Thu, 23 Dec 2021 19:09:25 -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.25 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:25 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:09:01 -0600 Message-Id: <20211224030904.1196-14-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 13/16] lavfi/drawutils: ensure we can't overflow a component 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: tmalYgbIxHpl --- libavfilter/drawutils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 99c124822d..bcdb669bd3 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -112,6 +112,8 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) if (depthb && (depthb != db)) return AVERROR(ENOSYS); depthb = db; + if (db * (c->offset + 1) > 16) + return AVERROR(ENOSYS); /* strange interleaving */ if (pixelstep[c->plane] != 0 && pixelstep[c->plane] != c->step) From patchwork Fri Dec 24 03:09:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32888 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805762iog; Thu, 23 Dec 2021 19:11:45 -0800 (PST) X-Google-Smtp-Source: ABdhPJy5YrkpbW5vhGeLwvLCVwsyRahpea1AGojtOsfK/7yw7zj03X6fpc7nXT9GsM6Eo1JxLNp4 X-Received: by 2002:a17:906:5284:: with SMTP id c4mr3902615ejm.423.1640315505717; Thu, 23 Dec 2021 19:11:45 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315505; cv=none; d=google.com; s=arc-20160816; b=xQKTA+P2KESUVfuUwINgMOSUA+ncnOwnKqrD3rDS3LLM5qwTUdFadIWPc1OtfnLvqV IimeW78TuB3WyPP93KQ1T9YiOtV4WZRjI+XV+iu24+qwFDGSH6T/93SBM/GuZ3JLNXd4 YdaCjNF5l4ZM7ZtL9KoifNLUtdHbn81+Wr/08y6bZuLFQYmLbnob3m3diHKn+0503GeZ VUhkp6lV1XGWBOremI10n3oCcrGt2hpF2ThKmAtQa2IyUz7QOhcGQ1plR5BvZIKBQT+w 6iFjg65KJ3GdgkIG+DpoFyDiM51HP3I7ZVNwuAXX61hpLvkdmSvN0okAeqCxli+VcWNR rurg== 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=yRX+kxuafvU6Q71foy6qXCh3S0ASSfOpweH4JBucE9A=; b=StTM7cKbh07Yc0eMWRvZ/01yjy9MvE9eWUzfCNgIkZBxntv0NfY+8czKSSFaf6dlBF jb5/QUZJtBIIsd0/bstF1GwHKXsn01yvP1Gp0XpzqsQjg8Ow/rUSWza4Isf2gdeA8Zjh WM/v+0Xp7RPYKM4dIenz3oelMLWkRsFSCT1ElUatpxY8ndMVB+yuB9bzxjDW+fHYIwkT jn9Nk5MxC0k5QAZQhxrL5TpxvZM4brIxpM5yum83+BHFjlLIRpvq5mRlZGsMXC2g2W5Z lxUBLJtVAw9hEkSWxuxrTw7JctyTtMd9J0/T8u3derrOipxZXK0imlMQZSeV/R+0IPCu w9Aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=T8lzqzwY; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id b13si3763757edz.295.2021.12.23.19.11.45; Thu, 23 Dec 2021 19:11:45 -0800 (PST) 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=@rcombs.me header.s=google header.b=T8lzqzwY; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B4E2E68B24D; Fri, 24 Dec 2021 05:09:37 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk1-f175.google.com (mail-qk1-f175.google.com [209.85.222.175]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 821B568B213 for ; Fri, 24 Dec 2021 05:09:28 +0200 (EET) Received: by mail-qk1-f175.google.com with SMTP id m186so7270676qkb.4 for ; Thu, 23 Dec 2021 19:09:28 -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=nKgDLeK8s71IASdzfv0YikPbVbpzJGejUAnrF4fYtzU=; b=T8lzqzwYo2A9vGmU7zW4m1niqrbMTPqFVHQNkt0rRKpi/nzHlD83jmSLeYaM5mIct8 n3tU4c4YqGtmpuS/tVoh2TedaEKUqvnEiModa9r1FJDAkJN3BTLoPQMzWtup0vkl8qny 6ARksjb+pMHhJoKRY+/qFrNwy7pBH0dgOY6LVtAuQCYuGjPw9KxVP4j+lT6DOqAHec62 oe9OWA2hDTyaWPFZn2hgtokChxHULKftQUHgIqtrSeqQO7hPygAOcvGXPzLk/lA0sBIl HgUuKvE2fxoPPMZFajHVV8wTn9N8bLWNiSTjJyhUeNvgcd+Pb9f7QUBLmmuPnJYh7TZB vEhg== 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=nKgDLeK8s71IASdzfv0YikPbVbpzJGejUAnrF4fYtzU=; b=CKof5785akRfmn6PezVh9Yjs5VbK01rmXTnzZ4alGnbARw2+bxxAoFF0VSFFE5Myr0 2CkIm7LEFVgMRKaGtWHOXo40XLk5nKAzfiJ4Fb8G6WbdJDPAGwyxcs15GUbnomE7ppF3 KxB5e43/iugSMevyB17sYI6ZQ2erNC+AFEV7YsJXxss3kBcGMSzuIYO20nYVps2Kppcu B2UUSyrfkUNvLjg6JVoW8JXWuObDHznxIZ118rz9MfxlNG33mrMP4uWGqAkRlxwIosk1 XGpAAz+Jdeenip7HnXTdyB3CvQ5la9JuCvyvBkqWDvkv+iLJ7OgYpWv9CXMeylu27Qwl yodg== X-Gm-Message-State: AOAM530AJu3UWXjV8zXIy2ooSXEnLEUtL/iP9LSque5XTB6LAhvZgdlW TxBUjH9ZhsnzBzbf0tUjpKyRLUmwLrzssGg= X-Received: by 2002:a37:9b16:: with SMTP id d22mr3523651qke.696.1640315367034; Thu, 23 Dec 2021 19:09:27 -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.26 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:26 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:09:02 -0600 Message-Id: <20211224030904.1196-15-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 14/16] lavfi/drawutils: ensure we don't support formats with non-pixel-sized offsets 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: cXFJt5w9hxvb --- libavfilter/drawutils.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index bcdb669bd3..5308fcbc0f 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -114,6 +114,8 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) depthb = db; if (db * (c->offset + 1) > 16) return AVERROR(ENOSYS); + if (c->offset % db) + return AVERROR(ENOSYS); /* strange interleaving */ if (pixelstep[c->plane] != 0 && pixelstep[c->plane] != c->step) From patchwork Fri Dec 24 03:09:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32889 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805859iog; Thu, 23 Dec 2021 19:11:57 -0800 (PST) X-Google-Smtp-Source: ABdhPJzymAh8ZNCXST+O9s7pBS6POUgCD4wx/3paAai/4+c+4bQhYasxcZWzo52IikSTeuPncmC2 X-Received: by 2002:a05:6402:27cf:: with SMTP id c15mr4366764ede.344.1640315516975; Thu, 23 Dec 2021 19:11:56 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315516; cv=none; d=google.com; s=arc-20160816; b=CTEshnBpwDdkbYBeTOlRQ3pzjzStWE9NbRab9jB+5yG6WS9DPJs5PVPtpHgIT0frpb AASg3oqmDwuHitYwDkDQo1DslDacS3yQMEroTTUoPDjwdifAahEZ0h+NjhRjrr0i+l1f SDQIp3NcoetoMlWlAPVUto76UL2bLctmCyNH/22HhIMmo2wuYC5qI4/wZwbu8WxiuBnZ VEhbBa01uNS8h44t7Iyj1IRO39BqKBQCL0gzITAOvPawpNuCDZVsCbq2EWpxwItO7VVa R1TONIc7Yi/fNdW8/rwJ8R2T0zVqqP0BhSnkhqMC3t8t4iyQWcR6Cia/zOn9hEfqagIo 9XiA== 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=LqqaQsh2T64dbkkNPGDxa5ZsqseXmR72rLUp40hQlHc=; b=LIzLsVxg3RhGLtlvdWIsCM+c24xH/vlosXDuUi7e9Bjk2dO+a3mng205jRHVg/cHgk fSvG1rZwTj98krH/mZwBFV4RDkrxGonWkQfZ2r8yw8rPIejmkmAHxJdhEmLHnmBbMTH2 8q6AFZ2xLLy9caZDBdx0lQES8Yt0KMPl3OPdjO8op4frCEjmwxsBmqqcA5M6cT8kt1o6 OkZxLKdSNbfrIFUCX/thRULJH+NiNwG7qxUABq11i3ZI7PdILhmfdcaTwhzrSBdTzz6p lcQRMvyxJ+IY8M5kDUO/BG6Hk+vFgLEvo4qzab9BJPDVPJnqpBtzM7ba00PJMimBYd4V GlGA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=SVqpf5Rv; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id dr6si3416995ejc.573.2021.12.23.19.11.56; Thu, 23 Dec 2021 19:11:56 -0800 (PST) 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=@rcombs.me header.s=google header.b=SVqpf5Rv; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A34BB68B252; Fri, 24 Dec 2021 05:09:38 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C9E9468B225 for ; Fri, 24 Dec 2021 05:09:29 +0200 (EET) Received: by mail-qt1-f170.google.com with SMTP id p19so6597297qtw.12 for ; Thu, 23 Dec 2021 19:09:29 -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=LQuYD+qd0XUQH3Flx3W3mHgob/TfM4Pr13NWbWLrWvA=; b=SVqpf5RvvYX63CA4XNllWL1FeDAIyL3UFSeUXGyakzi/hcBvg6gFusaaoFImFcdu2x lH2v8iZJUlaN9/p5BFh1znRU5wcdIKFAyq2u6t6Qp3/tGYQGCcoL4kwuO6QpypOs8utr uXM6fVFz9m3uaV6Gyay2+ZRS7Ow14B8HcJaBzNb+Ynna30WAMiljhWlWs++nOWg22Utx 6hozj3hgd78ffZ3SHR0CvbNiHHqdhOO4/Dx79h6UpqPWOeRUOhPR2a2VwILyT32ipL5J IT6pQy4K9VhQGufn0aGkocpXAZXq+ecIjs3H9P1Gr2ZpqG0KeFAw78xAFj2zAw7+o1w5 cLnQ== 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=LQuYD+qd0XUQH3Flx3W3mHgob/TfM4Pr13NWbWLrWvA=; b=PGyjaDXP4J8n+dOs9zfss3bLgU+2GGMG+6ARECQfyQHOMNCX3L3IOBbWL4mmn//jGa co0c6LIocep4bBCc2J85yG6RKbKfBygO1T7KPZImFztvCoAu5TLo0OUof/iLZuyNezyM Ro/0GqpokQFSchJXzQiq1nr5H/oJDq45NtDWS13tA93bOrYP4mz7tEPgZ9atF448UQAZ DPqv04r2RfTgiDss4WfCHt94L8lXMfZLDNN7uSC0gTFzX/5C5fReZleJVAmiFnjuhzJV 2zHOt7wfXd8eKhNgBgY892VI8IJopfcT2XmahRWhWMbFedGWsjGWtK+KuTixv2d+3nL1 vxSg== X-Gm-Message-State: AOAM5316gAzdFPt6GtjfTelJvHuZ+WOl/kQoGqUcXM35qdiXLl3V4QtG +2sOSKGVtHjBM7HV3JF4pp1Wxv9T/cetc9k= X-Received: by 2002:ac8:5e4d:: with SMTP id i13mr4276050qtx.452.1640315368075; Thu, 23 Dec 2021 19:09:28 -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.27 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:27 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:09:03 -0600 Message-Id: <20211224030904.1196-16-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 15/16] lavfi/drawutils: overhaul to improve pixel format support 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: u7S6b4mxvhJM - No longer mixes u8 and u16 component accesses (this was UB) - De-duplicated 8->16 conversion - De-duplicated component -> plane+offset conversion - De-duplicated planar + packed RGB - No longer calls ff_fill_rgba_map - Removed redundant comp_mask data member - RGB0 and related formats no longer write an alpha value to the 0 byte - Non-planar YA formats now work correctly - High-bit-depth semi-planar YUV now works correctly --- libavfilter/drawutils.c | 110 +++++++++++++----------------- libavfilter/drawutils.h | 1 - tests/ref/fate/filter-pixfmts-pad | 20 +++--- 3 files changed, 58 insertions(+), 73 deletions(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 5308fcbc0f..cbb2582fe0 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -137,66 +137,49 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) memcpy(draw->pixelstep, pixelstep, sizeof(draw->pixelstep)); draw->hsub[1] = draw->hsub[2] = draw->hsub_max = desc->log2_chroma_w; draw->vsub[1] = draw->vsub[2] = draw->vsub_max = desc->log2_chroma_h; - for (i = 0; i < (desc->nb_components - !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA && !(flags & FF_DRAW_PROCESS_ALPHA))); i++) - draw->comp_mask[desc->comp[i].plane] |= - 1 << desc->comp[i].offset; return 0; } void ff_draw_color(FFDrawContext *draw, FFDrawColor *color, const uint8_t rgba[4]) { unsigned i; - uint8_t rgba_map[4]; + uint8_t tmp8[4]; + const AVPixFmtDescriptor *desc = draw->desc; if (rgba != color->rgba) memcpy(color->rgba, rgba, sizeof(color->rgba)); - if ((draw->desc->flags & AV_PIX_FMT_FLAG_RGB) && - ff_fill_rgba_map(rgba_map, draw->format) >= 0) { - if (draw->nb_planes == 1) { - for (i = 0; i < 4; i++) { - color->comp[0].u8[rgba_map[i]] = rgba[i]; - if (draw->desc->comp[rgba_map[i]].depth > 8) { - color->comp[0].u16[rgba_map[i]] = color->comp[0].u8[rgba_map[i]] << 8; - } - } - } else { - for (i = 0; i < 4; i++) { - color->comp[rgba_map[i]].u8[0] = rgba[i]; - if (draw->desc->comp[rgba_map[i]].depth > 8) - color->comp[rgba_map[i]].u16[0] = color->comp[rgba_map[i]].u8[0] << (draw->desc->comp[rgba_map[i]].depth - 8); - } - } + + memset(color->comp, 0, sizeof(color->comp)); + + if (draw->desc->flags & AV_PIX_FMT_FLAG_RGB) { + memcpy(tmp8, rgba, sizeof(tmp8)); } else if (draw->nb_planes >= 2) { /* assume YUV */ - const AVPixFmtDescriptor *desc = draw->desc; - color->comp[desc->comp[0].plane].u8[desc->comp[0].offset] = draw->full_range ? RGB_TO_Y_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); - color->comp[desc->comp[1].plane].u8[desc->comp[1].offset] = draw->full_range ? RGB_TO_U_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_U_CCIR(rgba[0], rgba[1], rgba[2], 0); - color->comp[desc->comp[2].plane].u8[desc->comp[2].offset] = draw->full_range ? RGB_TO_V_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_V_CCIR(rgba[0], rgba[1], rgba[2], 0); - color->comp[3].u8[0] = rgba[3]; -#define EXPAND(compn) \ - if (desc->comp[compn].depth > 8) \ - color->comp[desc->comp[compn].plane].u16[desc->comp[compn].offset] = \ - color->comp[desc->comp[compn].plane].u8[desc->comp[compn].offset] << \ - (draw->desc->comp[compn].depth + draw->desc->comp[compn].shift - 8) - EXPAND(3); - EXPAND(2); - EXPAND(1); - EXPAND(0); + tmp8[0] = draw->full_range ? RGB_TO_Y_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); + tmp8[1] = draw->full_range ? RGB_TO_U_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_U_CCIR(rgba[0], rgba[1], rgba[2], 0); + tmp8[2] = draw->full_range ? RGB_TO_V_JPEG(rgba[0], rgba[1], rgba[2]) : RGB_TO_V_CCIR(rgba[0], rgba[1], rgba[2], 0); + tmp8[3] = rgba[3]; } else if (draw->format == AV_PIX_FMT_GRAY8 || draw->format == AV_PIX_FMT_GRAY8A || draw->format == AV_PIX_FMT_GRAY16LE || draw->format == AV_PIX_FMT_YA16LE || draw->format == AV_PIX_FMT_GRAY9LE || draw->format == AV_PIX_FMT_GRAY10LE || draw->format == AV_PIX_FMT_GRAY12LE || draw->format == AV_PIX_FMT_GRAY14LE) { - const AVPixFmtDescriptor *desc = draw->desc; - color->comp[0].u8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); - EXPAND(0); - color->comp[1].u8[0] = rgba[3]; - EXPAND(1); + tmp8[0] = RGB_TO_Y_CCIR(rgba[0], rgba[1], rgba[2]); + tmp8[1] = rgba[3]; } else { av_log(NULL, AV_LOG_WARNING, "Color conversion not implemented for %s\n", draw->desc->name); memset(color, 128, sizeof(*color)); + return; + } + + for (i = 0; i < desc->nb_components; i++) { + if (desc->comp[i].depth > 8) + color->comp[desc->comp[i].plane].u16[desc->comp[i].offset / 2] = tmp8[i] << + (draw->desc->comp[i].depth + draw->desc->comp[i].shift - 8); + else + color->comp[desc->comp[i].plane].u8[desc->comp[i].offset] = tmp8[i]; } } @@ -302,11 +285,6 @@ static void subsampling_bounds(int sub, int *x, int *w, int *start, int *end) *w >>= sub; } -static int component_used(FFDrawContext *draw, int plane, int comp) -{ - return (draw->comp_mask[plane] >> comp) & 1; -} - /* If alpha is in the [ 0 ; 0x1010101 ] range, then alpha * value is in the [ 0 ; 0xFFFFFFFF ] range, and >> 24 gives a correct rounding. */ @@ -366,6 +344,9 @@ void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, int w_sub, h_sub, x_sub, y_sub, left, right, top, bottom, y; uint8_t *p0, *p; + nb_comp = draw->desc->nb_components - + !!(draw->desc->flags & AV_PIX_FMT_FLAG_ALPHA && !(draw->flags & FF_DRAW_PROCESS_ALPHA)); + /* TODO optimize if alpha = 0xFF */ clip_interval(dst_w, &x0, &w, NULL); clip_interval(dst_h, &y0, &h, NULL); @@ -381,7 +362,6 @@ void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, nb_planes = draw->nb_planes - !!(draw->desc->flags & AV_PIX_FMT_FLAG_ALPHA && !(draw->flags & FF_DRAW_PROCESS_ALPHA)); nb_planes += !nb_planes; for (plane = 0; plane < nb_planes; plane++) { - nb_comp = draw->pixelstep[plane]; p0 = pointer_at(draw, dst, dst_linesize, plane, x0, y0); w_sub = w; h_sub = h; @@ -391,17 +371,19 @@ void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, subsampling_bounds(draw->vsub[plane], &y_sub, &h_sub, &top, &bottom); for (comp = 0; comp < nb_comp; comp++) { const int depth = draw->desc->comp[comp].depth; + const int offset = draw->desc->comp[comp].offset; + const int index = offset / ((depth + 7) / 8); - if (!component_used(draw, plane, comp)) + if (draw->desc->comp[comp].plane != plane) continue; - p = p0 + comp; + p = p0 + offset; if (top) { if (depth <= 8) { - blend_line(p, color->comp[plane].u8[comp], alpha >> 1, + blend_line(p, color->comp[plane].u8[index], alpha >> 1, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); } else { - blend_line16(p, color->comp[plane].u16[comp], alpha >> 1, + blend_line16(p, color->comp[plane].u16[index], alpha >> 1, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); } @@ -409,14 +391,14 @@ void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, } if (depth <= 8) { for (y = 0; y < h_sub; y++) { - blend_line(p, color->comp[plane].u8[comp], alpha, + blend_line(p, color->comp[plane].u8[index], alpha, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); p += dst_linesize[plane]; } } else { for (y = 0; y < h_sub; y++) { - blend_line16(p, color->comp[plane].u16[comp], alpha, + blend_line16(p, color->comp[plane].u16[index], alpha, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); p += dst_linesize[plane]; @@ -424,11 +406,11 @@ void ff_blend_rectangle(FFDrawContext *draw, FFDrawColor *color, } if (bottom) { if (depth <= 8) { - blend_line(p, color->comp[plane].u8[comp], alpha >> 1, + blend_line(p, color->comp[plane].u8[index], alpha >> 1, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); } else { - blend_line16(p, color->comp[plane].u16[comp], alpha >> 1, + blend_line16(p, color->comp[plane].u16[index], alpha >> 1, draw->pixelstep[plane], w_sub, draw->hsub[plane], left, right); } @@ -544,6 +526,9 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, uint8_t *p0, *p; const uint8_t *m; + nb_comp = draw->desc->nb_components - + !!(draw->desc->flags & AV_PIX_FMT_FLAG_ALPHA && !(draw->flags & FF_DRAW_PROCESS_ALPHA)); + clip_interval(dst_w, &x0, &mask_w, &xm0); clip_interval(dst_h, &y0, &mask_h, &ym0); mask += ym0 * mask_linesize; @@ -559,7 +544,6 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, nb_planes = draw->nb_planes - !!(draw->desc->flags & AV_PIX_FMT_FLAG_ALPHA && !(draw->flags & FF_DRAW_PROCESS_ALPHA)); nb_planes += !nb_planes; for (plane = 0; plane < nb_planes; plane++) { - nb_comp = draw->pixelstep[plane]; p0 = pointer_at(draw, dst, dst_linesize, plane, x0, y0); w_sub = mask_w; h_sub = mask_h; @@ -569,21 +553,23 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, subsampling_bounds(draw->vsub[plane], &y_sub, &h_sub, &top, &bottom); for (comp = 0; comp < nb_comp; comp++) { const int depth = draw->desc->comp[comp].depth; + const int offset = draw->desc->comp[comp].offset; + const int index = offset / ((depth + 7) / 8); - if (!component_used(draw, plane, comp)) + if (draw->desc->comp[comp].plane != plane) continue; - p = p0 + comp; + p = p0 + offset; m = mask; if (top) { if (depth <= 8) { blend_line_hv(p, draw->pixelstep[plane], - color->comp[plane].u8[comp], alpha, + color->comp[plane].u8[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, top); } else { blend_line_hv16(p, draw->pixelstep[plane], - color->comp[plane].u16[comp], alpha, + color->comp[plane].u16[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, top); @@ -594,7 +580,7 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, if (depth <= 8) { for (y = 0; y < h_sub; y++) { blend_line_hv(p, draw->pixelstep[plane], - color->comp[plane].u8[comp], alpha, + color->comp[plane].u8[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, 1 << draw->vsub[plane]); @@ -604,7 +590,7 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, } else { for (y = 0; y < h_sub; y++) { blend_line_hv16(p, draw->pixelstep[plane], - color->comp[plane].u16[comp], alpha, + color->comp[plane].u16[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, 1 << draw->vsub[plane]); @@ -615,13 +601,13 @@ void ff_blend_mask(FFDrawContext *draw, FFDrawColor *color, if (bottom) { if (depth <= 8) { blend_line_hv(p, draw->pixelstep[plane], - color->comp[plane].u8[comp], alpha, + color->comp[plane].u8[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, bottom); } else { blend_line_hv16(p, draw->pixelstep[plane], - color->comp[plane].u16[comp], alpha, + color->comp[plane].u16[index], alpha, m, mask_linesize, l2depth, w_sub, draw->hsub[plane], draw->vsub[plane], xm0, left, right, bottom); diff --git a/libavfilter/drawutils.h b/libavfilter/drawutils.h index 2ca2475585..396688514e 100644 --- a/libavfilter/drawutils.h +++ b/libavfilter/drawutils.h @@ -37,7 +37,6 @@ typedef struct FFDrawContext { enum AVPixelFormat format; unsigned nb_planes; int pixelstep[MAX_PLANES]; /*< offset between pixels */ - uint8_t comp_mask[MAX_PLANES]; /*< bitmask of used non-alpha components */ uint8_t hsub[MAX_PLANES]; /*< horizontal subsampling */ uint8_t vsub[MAX_PLANES]; /*< vertical subsampling */ uint8_t hsub_max; diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad index 74981cd6c1..d8c348a0fe 100644 --- a/tests/ref/fate/filter-pixfmts-pad +++ b/tests/ref/fate/filter-pixfmts-pad @@ -1,8 +1,8 @@ -0bgr 7bc6f5a1c44cdd7506174dccf52c68d7 -0rgb ff12e0f1e576b47a4c962729d5c0b868 +0bgr 55d41bba3609383bf658169f90b30b42 +0rgb 8e076dd0f8a9f4652595dffe3544f0f0 abgr 52738042432893de555e6a3833172806 argb 2a10108ac524b422b8a2393c064b3eab -bgr0 32207a2de1b2ac7937e940a8459b97c0 +bgr0 025d4d5e5691801ba39bc9de70e39df0 bgr24 f8b65ad845905c7d0c93ca28dfbb826f bgra 929aac15e848038e367c250037575f9f gbrap 5f16cccab5a17cb766c882e865995167 @@ -25,16 +25,16 @@ nv12 381574979cb04be10c9168540310afad nv21 0fdeb2cdd56cf5a7147dc273456fa217 nv24 193b9eadcc06ad5081609f76249b3e47 nv42 1738ad3c31c6c16e17679f5b09ce4677 -p210le 10b53de63b086de93c076d1d40f9da42 -p216le 0bbf778e1b6101a3f650ce0454a357f2 -p410le fcab6381bde9cd84b813925ff29be4d2 -p416le 6db094f8d7d27d7299bf9496ad66e2e0 -rgb0 78d500c8361ab6423a4826a00268c908 +p210le abc02945a9b9585f0914716e4787cefb +p216le 1b43feb94b8a030c0c699aa0deff017b +p410le 1f0294141ae1657d6c10c6a0d46a879f +p416le 320e558b7ee8d598231ae0763ecca275 +rgb0 0984eb985dabbe757ed6beb53db84eff rgb24 17f9e2e0c609009acaf2175c42d4a2a5 rgba b157c90191463d34fb3ce77b36c96386 xyz12le 85abf80b77a9236a76ba0b00fcbdea2d -ya16le 940fafa240b9916de5f73cb20a552f24 -ya8 5fc0f471207ddf7aa01b07027d56b672 +ya16le d85740ba2cac9fa9ea8aaea8a5864407 +ya8 495daaca2dcb4f7aeba7652768b41ced yuv410p cb871dcc1e84a7ef1d21f9237b88cf6e yuv411p aec2c1740de9a62db0d41f4dda9121b0 yuv420p 4398e408fc35436ce4b20468946f58b6 From patchwork Fri Dec 24 03:09:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 32890 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:cd86:0:0:0:0:0 with SMTP id d128csp7805955iog; Thu, 23 Dec 2021 19:12:07 -0800 (PST) X-Google-Smtp-Source: ABdhPJxJ5eoic6xAW8KNfrq3IhW4j+oLAc2UPcqC6Yl5y6LtNqu9tH5xbZwL4fYL425Ls83wsYQ4 X-Received: by 2002:a17:906:9acd:: with SMTP id ah13mr3946727ejc.666.1640315527241; Thu, 23 Dec 2021 19:12:07 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1640315527; cv=none; d=google.com; s=arc-20160816; b=1B6mG6Nq1nKWzFdIBQU2RfL1myVyuEw0reSvJhZ574kCLY2RGl9cp1C6Q8UWysX01o iiwDRykITM1+F3GGscGg0Ib4iKqkFfei/2oN52Zm7Dd4DKCEQb7zC46kXiYyeOAHrnlL E8dNQ/KBF+hI1hw7Ff394i17MjIpLvJMBu4BBXlAvMFIu26ij+J2FdVQ+qtIBATpXdfe qok7f22z7fVWg4N3Ujd3tC1NCfkhcxeKIHSnyn2HmShqmnv4ACbFK9AgwKoAJ8M6mgg8 kuqIx7HLuGezjbbq8Prv7qu4fMR54Ofx8BUxVl9q6cFZ6uKauqmDgKlkuAaIK0i82wju vloA== 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=p2sNt5lyI8u9FaI5xu0BHvnDZ3H390P0JBnI3+q6ZiY=; b=I0P5quaKsGmnhHGO+TiF3kP6DwoWmpARvpVO94t7buyRO4bgOHKfe5O9FeqDtQzJpt UpL+uSHPROoa2lSJUoIrGK8IaNpYEKfO1CF4t7UBeSVwniyTxwDWriFTS2pbAaN1ql7I 5U/pTIX4ahdR77xpwzQLP2IrnVesdxeUxFDutAOr+/s+cHacuNopvm/Q1enkM9TDzBuJ Oko4pjsFqmcr8nmuHy8iHfjE9cScJxekZp5BXV80d1GRLyPytHzuxffiZ3ccxJUnnj/J 3tISSXaYygyl065hHMRlrDX0T+m9kncy97eUddEjSBYo95l9SUSddBRr7Ezg+Dw+yD7P tHVg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=eunlRhah; 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=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id w2si3484151edc.183.2021.12.23.19.12.07; Thu, 23 Dec 2021 19:12:07 -0800 (PST) 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=@rcombs.me header.s=google header.b=eunlRhah; 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=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BEC9E68B245; Fri, 24 Dec 2021 05:09:39 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qv1-f51.google.com (mail-qv1-f51.google.com [209.85.219.51]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 916FE68B20B for ; Fri, 24 Dec 2021 05:09:30 +0200 (EET) Received: by mail-qv1-f51.google.com with SMTP id kc16so6807761qvb.3 for ; Thu, 23 Dec 2021 19:09:30 -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=KveaS6htIDN82Y4j2rQI768DNWl2KyV0ENIdqHab0ls=; b=eunlRhahvgeakXlAy/hkfta0iOoTx3dXAurYOfDZL9lAaXgxmzJg1o7bYhpmag62tX nsdikfnn6UX2GmG+cffYg9Gvw2DegwQcGlzSn2EvHAfAayEEnnBxiP5HaYL0af7x0Nbh oaNsfpiqIxTl+hPQI5Fmj2xnV3e4VUUSFiDhVxIMfBisHVB2MvLBdrEtGSU3cp6gDhTR y+ofqosmUMfXJ9npuJTrXR4s7qL0rv9QUcQqQ2U6KV6Cyyw0/Rq96mbH97hpGZ+iMddP 1c/r1gJV8RNRnsrS9d4fqbZmFWNVGxsaD1P1vvm/81p0uWWeZ9W8TZbpttdBC/b93pSo +SMg== 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=KveaS6htIDN82Y4j2rQI768DNWl2KyV0ENIdqHab0ls=; b=VJR9Pv8ueMLxidfx7MHR5HA8LnTzmkwlkijUCkDfU4airvof99gNMSzIjbzXuyB4tq hB70SW2WSvQDPZrmYa1X7WrR1+0MRPZhHiwPpo0bzsyF8sdNjb1jwxdRq/NJHNMWZr24 /mIprStqlz5C7MFb9Yadz9vyhfOfKst9qMEWFC0Aw4Av9d50nsxgYQyDDKfDHuWpQA/R Pqe1zWX+RL0f1kzI0mwtdQHyZoYzX9ndi/O/js3X8Yb6O85AIejEntCVYA+MR4fLacsZ KKZqQ0pRVid1So2tAaNpH9znSNvGJPClb2wzHqOhtUwVNcn+oxWwndz8/uPA361ILDbV i0GA== X-Gm-Message-State: AOAM5328pdwKyYMsXmQVVUYPCY/w94caTKr901/6VjbYghzryZ5cP7rI UH5Dg2WhFBpZvFHC5ERYxq5oBY4eVlw2u/Y= X-Received: by 2002:ad4:5ccb:: with SMTP id iu11mr4195722qvb.56.1640315369118; Thu, 23 Dec 2021 19:09:29 -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.28 for (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Thu, 23 Dec 2021 19:09:28 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Thu, 23 Dec 2021 21:09:04 -0600 Message-Id: <20211224030904.1196-17-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 16/16] lavfi/drawutils: re-enable P010 and P016 support 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: lEjp5aSICPYx These formats now work as expected. --- libavfilter/drawutils.c | 2 -- tests/ref/fate/filter-pixfmts-pad | 2 ++ 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index cbb2582fe0..65ed61aa92 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -91,8 +91,6 @@ int ff_draw_init(FFDrawContext *draw, enum AVPixelFormat format, unsigned flags) return AVERROR(ENOSYS); if (desc->flags & ~(AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_ALPHA)) return AVERROR(ENOSYS); - if (format == AV_PIX_FMT_P010LE || format == AV_PIX_FMT_P016LE) - return AVERROR(ENOSYS); if (format == AV_PIX_FMT_YUVJ420P || format == AV_PIX_FMT_YUVJ422P || format == AV_PIX_FMT_YUVJ444P || format == AV_PIX_FMT_YUVJ411P || format == AV_PIX_FMT_YUVJ440P) full_range = 1; diff --git a/tests/ref/fate/filter-pixfmts-pad b/tests/ref/fate/filter-pixfmts-pad index d8c348a0fe..519473032e 100644 --- a/tests/ref/fate/filter-pixfmts-pad +++ b/tests/ref/fate/filter-pixfmts-pad @@ -25,6 +25,8 @@ nv12 381574979cb04be10c9168540310afad nv21 0fdeb2cdd56cf5a7147dc273456fa217 nv24 193b9eadcc06ad5081609f76249b3e47 nv42 1738ad3c31c6c16e17679f5b09ce4677 +p010le c57224f2dc09601c66aa3365b3cd7254 +p016le c57224f2dc09601c66aa3365b3cd7254 p210le abc02945a9b9585f0914716e4787cefb p216le 1b43feb94b8a030c0c699aa0deff017b p410le 1f0294141ae1657d6c10c6a0d46a879f