On date Wednesday 2011-07-13 01:14:44 +0800, Fredrik Mellbin encoded:
> Adding colorspace flags to AVPixFmtDescriptor will allow many similar
> collections of attributes spread around the codebase to be removed.
>
> ---
> libavutil/pixdesc.c | 55 +++++++++++++++++++++++++++++++++-----------------
> libavutil/pixdesc.h | 9 ++++++++
> 2 files changed, 45 insertions(+), 19 deletions(-)
[...]
> diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
> index 979a235..a1195ea 100644
> --- a/libavutil/pixdesc.h
> +++ b/libavutil/pixdesc.h
> @@ -87,6 +87,15 @@ typedef struct AVPixFmtDescriptor{
> #define PIX_FMT_PAL 2 ///< Pixel format has a palette in
> data[1], values are indexes in this palette.
> #define PIX_FMT_BITSTREAM 4 ///< All values of a component are
> bit-wise packed end to end.
> #define PIX_FMT_HWACCEL 8 ///< Pixel format is an HW accelerated format.
> +#define PIX_FMT_ALPHA 0x10 ///< Pixel format has an alpha channel.
> +
> +#define PIX_FMT_YUV 0x00
> +#define PIX_FMT_GRAY 0x20
> +#define PIX_FMT_RGB 0x40
> +#define PIX_FMT_BGR 0x60
> +
> +#define PIX_FMT_RGB_BIT 0x40 ///< Bit mask to check for RGB.
> +#define PIX_FMT_CS_BITS 0x60 ///< Bit mask for the colorspace
> information.
pixdesc is not-related to colorspace by design, it only speaks about
the layout of the pixel components.
Colorspace information does not belong there, a possible solution
would require the use of an external struct which contains information
about the colorspace per each component in a pixdesc.
Adding colorspace information in pixdesc is IMO just wrong and
underkill.
A proper solution on the other hand is not simple, since currently the
colorspace information is contained implicitely in the pixfmt
definition. A temporary solution may consists into storing the
colorspace information into a (possibly internal) array, like it is
done in libavcodec/imgconvert.c.
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel