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 7FD8043BC3 for ; Wed, 22 Mar 2023 03:27:05 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B143068C44F; Wed, 22 Mar 2023 05:26:49 +0200 (EET) Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E179C68C25B for ; Wed, 22 Mar 2023 05:26:42 +0200 (EET) Received: by mail-io1-f47.google.com with SMTP id d14so5022455ion.9 for ; Tue, 21 Mar 2023 20:26:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679455601; x=1682047601; 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=kkvjdQ/gIOr58R0xm6rsIpU4PPeEkNMuegf11uFPmhw=; b=Rzco8ngtdPwB2JKfjszoEwLDXsc7xReA0tB7JA1h+9nhw8v7qRGs13PeSYXDmh3Xbc SWv+bXbBYpWXDxbF/QVOVxFH2VMfMcWYQu8dxzGsrY3ADWDzyWJMwAyGt6X++pRnPABK y1b2mGe0EYD22DY3J4SwDSiJT/3Gx3VMyylSogWTh7a9TeP8DXqGpvSSUDTzAc7S34FZ Ji18+oi8PIVkN9O+uanDjPwMax5Fp491W1UVf3aoGF6VcJMf5xP8B5g5uKD4GGPMb3EL 9UNGEWqy2JJWEbmCn1hS1kSMrnQ+MhdQ3Xr7YWTcNSH+n3zkot/dCZytZPa9LZVdrw9n UYbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679455601; x=1682047601; 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=kkvjdQ/gIOr58R0xm6rsIpU4PPeEkNMuegf11uFPmhw=; b=GMWOOIUdN6sQmsdZ8ljrM/mSssDyfA86ZfimwvZGLXJu1pIivotZ+zGwG1nB+bmz0y z+CGMX3bsW+FZvQ++e+cEFW3QSM1vhsFp/xYMwNQeTsAglrTFioLexk7Iu+lhencs4qP rQwG3hyy0ZRlVzWQZ9kzTn5ABsccb5dMKhaAL9vOGawSlGNihmdFQODT100IAwdJ8yAZ akYq0uus82kqa8Ebvbs5N85yKyyICG2nnyINdO5l8AWz4+T9apcRZAIgZac189ZeK/Hm wgPzj26Oa/1vGiLyfD6MJI42T+Bm+kMlLZ1yr87+h8AJVRX+lw1//zDpHVU7ePxaLX7t vlSw== X-Gm-Message-State: AO0yUKUd9arg0AaoO7FLDJS+0SvtgBURrAqn7BCvoQSh1mOuzCovJeX7 jWg95FCLRaEzVpZRa3d+2d7msn8F5nIjZQ== X-Google-Smtp-Source: AK7set957C23phS/3xF3fUPc7gag7SdPedmxNurJeMIBF7Myy9+M4xnypovTSPbNnckvAHoeHiU8Kw== X-Received: by 2002:a05:6602:240f:b0:758:8b42:ce5a with SMTP id s15-20020a056602240f00b007588b42ce5amr1234624ioa.1.1679455601468; Tue, 21 Mar 2023 20:26:41 -0700 (PDT) Received: from gauss.local (c-98-224-219-15.hsd1.mi.comcast.net. [98.224.219.15]) by smtp.gmail.com with ESMTPSA id cd8-20020a0566381a0800b00406521ad090sm3710594jab.94.2023.03.21.20.26.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 20:26:41 -0700 (PDT) From: Leo Izen To: ffmpeg-devel@ffmpeg.org Date: Tue, 21 Mar 2023 23:26:26 -0400 Message-Id: <20230322032626.45777-3-leo.izen@gmail.com> X-Mailer: git-send-email 2.40.0 In-Reply-To: <20230322032626.45777-1-leo.izen@gmail.com> References: <20230322032626.45777-1-leo.izen@gmail.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v3 2/2] avcodec/pngenc: write sBIT chunks 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: 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: Add support for writing sBIT chunks, which mark the significant bit depth of the PNG file. This obtains the metadata using the field bits_per_raw_sample of AVCodecContext. Signed-off-by: Leo Izen --- libavcodec/pngenc.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/pngenc.c b/libavcodec/pngenc.c index 1489256d00..21b033ea16 100644 --- a/libavcodec/pngenc.c +++ b/libavcodec/pngenc.c @@ -442,6 +442,12 @@ 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); + memset(s->buf, avctx->bits_per_raw_sample, len); + png_write_chunk(&s->bytestream, MKTAG('s', 'B', 'I', 'T'), s->buf, len); + } + /* put the palette if needed, must be after colorspace information */ if (s->color_type == PNG_COLOR_TYPE_PALETTE) { int has_alpha, alpha, i; -- 2.40.0 _______________________________________________ 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".