[FFmpeg-devel] [PATCH v2] avutil/pixfmt: fix AV_PIX_FMT_RGB8 description
Diederick C. Niehorster
dcnieho at gmail.com
Sun Jan 14 22:58:52 EET 2024
On Sun, Jan 14, 2024 at 4:15 PM Jeffrey Knockel <jeff at jeffreyknockel.com> wrote:
>
> Previously AV_PIX_FMT_RGB8 was documented as "RGB 3:3:2,
> (msb)2R 3G 3B(lsb)". While the RGB 3:3:2 part is correct, the latter
> part should be: (msb)3R 3G 2B(lsb). This commit also updates the
> format's pixdesc description to be (msb)3R 3G 2B(lsb).
>
> Signed-off-by: Jeffrey Knockel <jeff at jeffreyknockel.com>
> ---
> libavutil/pixdesc.c | 6 +++---
> libavutil/pixfmt.h | 2 +-
> 2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index 0db4167934..f6d4d01460 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -530,9 +530,9 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
> .log2_chroma_w = 0,
> .log2_chroma_h = 0,
> .comp = {
> - { 0, 1, 0, 6, 2 }, /* R */
> - { 0, 1, 0, 3, 3 }, /* G */
> - { 0, 1, 0, 0, 3 }, /* B */
> + { 0, 1, 0, 5, 3 }, /* R */
> + { 0, 1, 0, 2, 3 }, /* G */
> + { 0, 1, 0, 0, 2 }, /* B */
> },
> .flags = AV_PIX_FMT_FLAG_RGB,
> },
> diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h
> index 58f9ad28bd..9c87571f49 100644
> --- a/libavutil/pixfmt.h
> +++ b/libavutil/pixfmt.h
> @@ -83,7 +83,7 @@ enum AVPixelFormat {
> AV_PIX_FMT_BGR8, ///< packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
> AV_PIX_FMT_BGR4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1B 2G 1R(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
> AV_PIX_FMT_BGR4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
> - AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
> + AV_PIX_FMT_RGB8, ///< packed RGB 3:3:2, 8bpp, (msb)3R 3G 2B(lsb)
> AV_PIX_FMT_RGB4, ///< packed RGB 1:2:1 bitstream, 4bpp, (msb)1R 2G 1B(lsb), a byte contains two pixels, the first pixel in the byte is the one composed by the 4 msb bits
> AV_PIX_FMT_RGB4_BYTE, ///< packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
> AV_PIX_FMT_NV12, ///< planar YUV 4:2:0, 12bpp, 1 plane for Y and 1 plane for the UV components, which are interleaved (first byte U and the following byte V)
> --
> 2.34.1
LGTM.
Tested. Without this patch, the output of avutil av_read_image_line2()
is all wrong, with it applied it is correct.
All the best,
Dee
More information about the ffmpeg-devel
mailing list