Browse Source

Add single precision planar RGB pixel formats

Add a pixel format flag to identify this family.

Signed-off-by: Vittorio Giovara <vittorio.giovara@gmail.com>
tags/n3.4
Vittorio Giovara 8 years ago
parent
commit
1460408703
6 changed files with 91 additions and 1 deletions
  1. +3
    -0
      doc/APIchanges
  2. +54
    -0
      libavutil/pixdesc.c
  3. +6
    -0
      libavutil/pixdesc.h
  4. +7
    -0
      libavutil/pixfmt.h
  5. +1
    -1
      libavutil/version.h
  6. +20
    -0
      tests/ref/fate/sws-pixdesc-query

+ 3
- 0
doc/APIchanges View File

@@ -15,6 +15,9 @@ libavutil: 2015-08-28


API changes, most recent first: API changes, most recent first:


2017-08-08 - xxxxxxx - lavu 55.74.100 - pixdesc.h
Add AV_PIX_FMT_FLAG_FLOAT pixel format flag.

2017-08-08 - xxxxxxx - lavu 55.72.100 - imgutils.h 2017-08-08 - xxxxxxx - lavu 55.72.100 - imgutils.h
Add av_image_fill_black(). Add av_image_fill_black().




+ 54
- 0
libavutil/pixdesc.c View File

@@ -2183,6 +2183,60 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
.name = "d3d11", .name = "d3d11",
.flags = AV_PIX_FMT_FLAG_HWACCEL, .flags = AV_PIX_FMT_FLAG_HWACCEL,
}, },
[AV_PIX_FMT_GBRPF32BE] = {
.name = "gbrpf32be",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 4, 0, 0, 32, 3, 31, 1 }, /* R */
{ 0, 4, 0, 0, 32, 3, 31, 1 }, /* G */
{ 1, 4, 0, 0, 32, 3, 31, 1 }, /* B */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT,
},
[AV_PIX_FMT_GBRPF32LE] = {
.name = "gbrpf32le",
.nb_components = 3,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 4, 0, 0, 32, 3, 31, 1 }, /* R */
{ 0, 4, 0, 0, 32, 3, 31, 1 }, /* G */
{ 1, 4, 0, 0, 32, 3, 31, 1 }, /* B */
},
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_FLOAT | AV_PIX_FMT_FLAG_RGB,
},
[AV_PIX_FMT_GBRAPF32BE] = {
.name = "gbrapf32be",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 4, 0, 0, 32, 3, 31, 1 }, /* R */
{ 0, 4, 0, 0, 32, 3, 31, 1 }, /* G */
{ 1, 4, 0, 0, 32, 3, 31, 1 }, /* B */
{ 3, 4, 0, 0, 32, 3, 31, 1 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_PLANAR |
AV_PIX_FMT_FLAG_ALPHA | AV_PIX_FMT_FLAG_RGB |
AV_PIX_FMT_FLAG_FLOAT,
},
[AV_PIX_FMT_GBRAPF32LE] = {
.name = "gbrapf32le",
.nb_components = 4,
.log2_chroma_w = 0,
.log2_chroma_h = 0,
.comp = {
{ 2, 4, 0, 0, 32, 3, 31, 1 }, /* R */
{ 0, 4, 0, 0, 32, 3, 31, 1 }, /* G */
{ 1, 4, 0, 0, 32, 3, 31, 1 }, /* B */
{ 3, 4, 0, 0, 32, 3, 31, 1 }, /* A */
},
.flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_ALPHA |
AV_PIX_FMT_FLAG_RGB | AV_PIX_FMT_FLAG_FLOAT,
},
}; };
#if FF_API_PLUS1_MINUS1 #if FF_API_PLUS1_MINUS1
FF_ENABLE_DEPRECATION_WARNINGS FF_ENABLE_DEPRECATION_WARNINGS


+ 6
- 0
libavutil/pixdesc.h View File

@@ -177,6 +177,12 @@ typedef struct AVPixFmtDescriptor {
*/ */
#define AV_PIX_FMT_FLAG_BAYER (1 << 8) #define AV_PIX_FMT_FLAG_BAYER (1 << 8)


/**
* The pixel format contains IEEE-754 floating point values. Precision (double,
* single, or half) should be determined by the pixel size (64, 32, or 16 bits).
*/
#define AV_PIX_FMT_FLAG_FLOAT (1 << 9)

/** /**
* Return the number of bits per pixel used by the pixel format * Return the number of bits per pixel used by the pixel format
* described by pixdesc. Note that this is not the same as the number * described by pixdesc. Note that this is not the same as the number


+ 7
- 0
libavutil/pixfmt.h View File

@@ -329,6 +329,11 @@ enum AVPixelFormat {
AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian AV_PIX_FMT_GRAY9BE, ///< Y , 9bpp, big-endian
AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian AV_PIX_FMT_GRAY9LE, ///< Y , 9bpp, little-endian


AV_PIX_FMT_GBRPF32BE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, big-endian
AV_PIX_FMT_GBRPF32LE, ///< IEEE-754 single precision planar GBR 4:4:4, 96bpp, little-endian
AV_PIX_FMT_GBRAPF32BE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, big-endian
AV_PIX_FMT_GBRAPF32LE, ///< IEEE-754 single precision planar GBRA 4:4:4:4, 128bpp, little-endian

AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions
}; };


@@ -393,6 +398,8 @@ enum AVPixelFormat {
#define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE) #define AV_PIX_FMT_BAYER_GBRG16 AV_PIX_FMT_NE(BAYER_GBRG16BE, BAYER_GBRG16LE)
#define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE) #define AV_PIX_FMT_BAYER_GRBG16 AV_PIX_FMT_NE(BAYER_GRBG16BE, BAYER_GRBG16LE)


#define AV_PIX_FMT_GBRPF32 AV_PIX_FMT_NE(GBRPF32BE, GBRPF32LE)
#define AV_PIX_FMT_GBRAPF32 AV_PIX_FMT_NE(GBRAPF32BE, GBRAPF32LE)


#define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE) #define AV_PIX_FMT_YUVA420P9 AV_PIX_FMT_NE(YUVA420P9BE , YUVA420P9LE)
#define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE) #define AV_PIX_FMT_YUVA422P9 AV_PIX_FMT_NE(YUVA422P9BE , YUVA422P9LE)


+ 1
- 1
libavutil/version.h View File

@@ -80,7 +80,7 @@




#define LIBAVUTIL_VERSION_MAJOR 55 #define LIBAVUTIL_VERSION_MAJOR 55
#define LIBAVUTIL_VERSION_MINOR 73
#define LIBAVUTIL_VERSION_MINOR 74
#define LIBAVUTIL_VERSION_MICRO 100 #define LIBAVUTIL_VERSION_MICRO 100


#define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \ #define LIBAVUTIL_VERSION_INT AV_VERSION_INT(LIBAVUTIL_VERSION_MAJOR, \


+ 20
- 0
tests/ref/fate/sws-pixdesc-query View File

@@ -112,11 +112,13 @@ isBE:
gbrap10be gbrap10be
gbrap12be gbrap12be
gbrap16be gbrap16be
gbrapf32be
gbrp10be gbrp10be
gbrp12be gbrp12be
gbrp14be gbrp14be
gbrp16be gbrp16be
gbrp9be gbrp9be
gbrpf32be
gray10be gray10be
gray12be gray12be
gray16be gray16be
@@ -362,6 +364,8 @@ isRGB:
gbrap12le gbrap12le
gbrap16be gbrap16be
gbrap16le gbrap16le
gbrapf32be
gbrapf32le
gbrp gbrp
gbrp10be gbrp10be
gbrp10le gbrp10le
@@ -373,6 +377,8 @@ isRGB:
gbrp16le gbrp16le
gbrp9be gbrp9be
gbrp9le gbrp9le
gbrpf32be
gbrpf32le
rgb0 rgb0
rgb24 rgb24
rgb32 rgb32
@@ -498,6 +504,8 @@ AnyRGB:
gbrap12le gbrap12le
gbrap16be gbrap16be
gbrap16le gbrap16le
gbrapf32be
gbrapf32le
gbrp gbrp
gbrp10be gbrp10be
gbrp10le gbrp10le
@@ -509,6 +517,8 @@ AnyRGB:
gbrp16le gbrp16le
gbrp9be gbrp9be
gbrp9le gbrp9le
gbrpf32be
gbrpf32le
monob monob
monow monow
rgb0 rgb0
@@ -543,6 +553,8 @@ ALPHA:
gbrap12le gbrap12le
gbrap16be gbrap16be
gbrap16le gbrap16le
gbrapf32be
gbrapf32le
pal8 pal8
rgb32 rgb32
rgb32_1 rgb32_1
@@ -645,6 +657,8 @@ Planar:
gbrap12le gbrap12le
gbrap16be gbrap16be
gbrap16le gbrap16le
gbrapf32be
gbrapf32le
gbrp gbrp
gbrp10be gbrp10be
gbrp10le gbrp10le
@@ -656,6 +670,8 @@ Planar:
gbrp16le gbrp16le
gbrp9be gbrp9be
gbrp9le gbrp9le
gbrpf32be
gbrpf32le
nv12 nv12
nv16 nv16
nv20be nv20be
@@ -790,6 +806,8 @@ PlanarRGB:
gbrap12le gbrap12le
gbrap16be gbrap16be
gbrap16le gbrap16le
gbrapf32be
gbrapf32le
gbrp gbrp
gbrp10be gbrp10be
gbrp10le gbrp10le
@@ -801,6 +819,8 @@ PlanarRGB:
gbrp16le gbrp16le
gbrp9be gbrp9be
gbrp9le gbrp9le
gbrpf32be
gbrpf32le


usePal: usePal:
bgr4_byte bgr4_byte


Loading…
Cancel
Save