From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 23D864B915 for ; Fri, 19 Jul 2024 16:04:42 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0F6AA68D9C2; Fri, 19 Jul 2024 19:04:32 +0300 (EEST) Received: from mail-qk1-f179.google.com (mail-qk1-f179.google.com [209.85.222.179]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9753768D720 for ; Fri, 19 Jul 2024 19:04:24 +0300 (EEST) Received: by mail-qk1-f179.google.com with SMTP id af79cd13be357-79f07f07c1aso5298685a.3 for ; Fri, 19 Jul 2024 09:04:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1721405063; x=1722009863; darn=ffmpeg.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=dpQqec4UukS05XSDUFm7UdeI6e/TBMRXrZS1wIrAlc4=; b=nal5nr1c6GMl733JQKDJhW+NYE3pRqrYUeaSDUPtxQhnRNSv6MYRO4Ay7sL8EOIPk+ dj+JJEDHmAeCR4R+GHTjw3Fkwxq0j6R2gmr/M6KrNeqxoBBhLo59KWdx1JdwmRA/MVDM RY3G/LruvKGbswg4rPiXqA33X47Wi1KBn1GmUcDaluxq/KMCrkqsBgdop60ikmt4jOmE 84f3+2iGNOedi+OMw/B1rNhOK4FgqLxR50Hv/9MDkvWJS/e13eFL5LsUDfSwYJel4gKL 8RoN4bzaaclywzYGWAGhQMVUMUM1MlLDPlC8ad4Jh9FIedoi2QOpnUvm0o/Xi54J370F Qn+Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1721405063; x=1722009863; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dpQqec4UukS05XSDUFm7UdeI6e/TBMRXrZS1wIrAlc4=; b=JIbnHJCVbcvAhQsXLHC8QU7uTQYGJ0QDL++AL/ltC7/Rnx31bWcr3Yy0RQvRq0ZAiz S/QnxTISdjnqxgC7GrjXdgja9MbPfUbesgoWQVG3eKak4hObn4Ww6QNutISgKhBsJME6 OSPLPs7vm1Q77tG3LLelnjxCXHhd/Nh6Z7Vpr4ZKbxXuugDlW3DGL+Ck+MCwVCs93IwE FYFNNQ94xdiJWZwc5gXY8K06SejtoCkdFGd8eIhCzfF0kdZ/LSsZllfEfMj6ucl+5Pqq qmADCuWDEExXUhYSEh0FOHq6V7OkTd5P0+zU65uCHNB+ojH/r7Ops3qH0moi7XRCWspX VQjA== X-Gm-Message-State: AOJu0Yy/Bd2qYN/LwgEkrnQdhb5SJMxHf+5OMjh9WtFCogd359pXy6U+ UCzhRDsLc5fu4GKc+S8SRjRkebSTQnSAbyzb2iRzRRP2Fq4lN2MLFzcoxw== X-Google-Smtp-Source: AGHT+IEhJ+x5ZhywlrDXvZfp1FxNQLgaqOPd+WAPtCKcOFVTFPwsCtol4yUzrLEAbVcIaChXKoaRYQ== X-Received: by 2002:a05:620a:4005:b0:7a1:5683:51cd with SMTP id af79cd13be357-7a1a13c4f02mr15258185a.8.1721405062840; Fri, 19 Jul 2024 09:04:22 -0700 (PDT) Received: from gauss.local (c-68-56-149-176.hsd1.mi.comcast.net. [68.56.149.176]) by smtp.gmail.com with ESMTPSA id af79cd13be357-7a198fbe1basm100836985a.40.2024.07.19.09.04.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jul 2024 09:04:22 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Fri, 19 Jul 2024 12:04:20 -0400 Message-ID: <20240719160420.169775-2-leo.izen@gmail.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20240719160420.169775-1-leo.izen@gmail.com> References: <20240719160420.169775-1-leo.izen@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/2] avcodec/pngenc: fix sBIT writing for indexed-color PNGs X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: "Ramiro Polla :" , Leo Izen Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: We currently write invalid sBIT entries for indexed PNGs, which by PNG specification[1] must be 3-bytes long. The values also are capped at 8 for indexed-color PNGs, not the palette depth. This patch fixes both of these issues previously fixed in the decoder, but not the encoder. [1]: https://www.w3.org/TR/png-3/#11sBIT Regression since: c125860892e931d9b10f88ace73c91484815c3a8. Signed-off-by: Leo Izen Reported-by: Ramiro Polla: --- libavcodec/pngenc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index 7ae16fa2c5..cb79c04e11 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -469,8 +469,9 @@ static int encode_headers(AVCodecContext *avctx, const AVFrame *pict) if (png_get_gama(pict->color_trc, s->buf)) png_write_chunk(&s->bytestream, MKTAG('g', 'A', 'M', 'A'), s->buf, 4); - if (avctx->bits_per_raw_sample > 0 && avctx->bits_per_raw_sample < s->bit_depth) { - int len = ff_png_get_nb_channels(s->color_type); + if (avctx->bits_per_raw_sample > 0 && + avctx->bits_per_raw_sample < (s->color_type & PNG_COLOR_MASK_PALETTE ? 8 : s->bit_depth)) { + int len = s->color_type & PNG_COLOR_MASK_PALETTE ? 3 : ff_png_get_nb_channels(s->color_type); memset(s->buf, avctx->bits_per_raw_sample, len); png_write_chunk(&s->bytestream, MKTAG('s', 'B', 'I', 'T'), s->buf, len); } -- 2.45.2 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".