On Thu, Nov 24, 2011 at 12:21:11PM -0800, Ronald S. Bultje wrote:
> isGray() is left as a FIXME for later.
> ---
> libavutil/pixdesc.c | 3 +--
> libswscale/swscale_internal.h | 9 +++++++++
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
> index 2b5c2fd..3a830ba 100644
> --- a/libavutil/pixdesc.c
> +++ b/libavutil/pixdesc.c
> @@ -219,7 +219,6 @@ const AVPixFmtDescriptor
> av_pix_fmt_descriptors[PIX_FMT_NB] = {
> .comp = {
> {0,0,1,0,7}, /* Y */
> },
> - .flags = PIX_FMT_PAL,
> },
> [PIX_FMT_MONOWHITE] = {
> .name = "monow",
> @@ -567,7 +566,7 @@ const AVPixFmtDescriptor
> av_pix_fmt_descriptors[PIX_FMT_NB] = {
> {0,5,3,0,15}, /* G */
> {0,5,5,0,15}, /* B */
> },
> - .flags = PIX_FMT_BE,
> + .flags = PIX_FMT_RGB | PIX_FMT_BE,
> },
> [PIX_FMT_RGB48LE] = {
> .name = "rgb48le",
> diff --git a/libswscale/swscale_internal.h b/libswscale/swscale_internal.h
> index b20e0a3..7bfdc7e 100644
> --- a/libswscale/swscale_internal.h
> +++ b/libswscale/swscale_internal.h
> @@ -552,9 +552,18 @@ const char *sws_format_name(enum PixelFormat format);
> #define isRGB(x) \
> (av_pix_fmt_descriptors[x].flags & PIX_FMT_RGB)
>
> +#if 0 // FIXME
> #define isGray(x) \
> (!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) && \
> av_pix_fmt_descriptors[x].nb_components <= 2)
> +#else
> +#define isGray(x) ( \
> + (x)==PIX_FMT_GRAY8 \
> + || (x)==PIX_FMT_Y400A \
> + || (x)==PIX_FMT_GRAY16BE \
> + || (x)==PIX_FMT_GRAY16LE \
> + )
> +#endif
>
> #define isRGBinInt(x) ( \
> (x)==PIX_FMT_RGB48BE \
> --
I have a strong suspicion that
#define isGray(x) \
(!(av_pix_fmt_descriptors[x].flags & PIX_FMT_PAL) && \
!(av_pix_fmt_descriptors[x].flags & PIX_FMT_BITSTREAM) && \
av_pix_fmt_descriptors[x].nb_components <= 2)
would do the trick.
But I'm too lazy to test that claim :(
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel