On Wed, Sep 2, 2015 at 3:05 PM, wm4 <[email protected]> wrote:
> On Wed,  2 Sep 2015 14:32:07 +0200
> Vittorio Giovara <[email protected]> wrote:
>
>> ---
>> This could be interesting to mark gray pixel formats category. so that
>> applications should be able to detect rgb/yuv/gray/mono color types only
>> by looking at pixdesc.flags.
>>
>> I'll add version bump and doc at commit time, if this patch is deemed useful
>> Vittorio
>>
>>  libavutil/pixdesc.c | 11 ++++++-----
>>  libavutil/pixdesc.h |  4 ++++
>>  2 files changed, 10 insertions(+), 5 deletions(-)
>>
>> diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c
>> index 14f84d7..082a041 100644
>> --- a/libavutil/pixdesc.c
>> +++ b/libavutil/pixdesc.c
>> @@ -244,7 +244,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>          .comp = {
>>              { 0, 1, 0, 0, 8, 0, 7, 1 },        /* Y */
>>          },
>> -        .flags = AV_PIX_FMT_FLAG_PSEUDOPAL,
>> +        .flags = AV_PIX_FMT_FLAG_PSEUDOPAL | AV_PIX_FMT_FLAG_GRAY,
>>          .alias = "gray8,y8",
>>      },
>>      [AV_PIX_FMT_MONOWHITE] = {
>> @@ -501,7 +501,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>          .comp = {
>>              { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
>>          },
>> -        .flags = AV_PIX_FMT_FLAG_BE,
>> +        .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_GRAY,
>>          .alias = "y16be",
>>      },
>>      [AV_PIX_FMT_GRAY16LE] = {
>> @@ -512,6 +512,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>          .comp = {
>>              { 0, 2, 0, 0, 16, 1, 15, 1 },       /* Y */
>>          },
>> +        .flags = AV_PIX_FMT_FLAG_GRAY,
>>          .alias = "y16le",
>>      },
>>      [AV_PIX_FMT_YUV440P] = {
>> @@ -1352,7 +1353,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>              { 0, 2, 0, 0, 8, 1, 7, 1 },        /* Y */
>>              { 0, 2, 1, 0, 8, 1, 7, 2 },        /* A */
>>          },
>> -        .flags = AV_PIX_FMT_FLAG_ALPHA,
>> +        .flags = AV_PIX_FMT_FLAG_ALPHA | AV_PIX_FMT_FLAG_GRAY,
>>          .alias = "gray8a",
>>      },
>>      [AV_PIX_FMT_YA16LE] = {
>> @@ -1362,7 +1363,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>              { 0, 4, 0, 0, 16, 3, 15, 1 },        /* Y */
>>              { 0, 4, 2, 0, 16, 3, 15, 3 },        /* A */
>>          },
>> -        .flags = AV_PIX_FMT_FLAG_ALPHA,
>> +        .flags = AV_PIX_FMT_FLAG_ALPHA | AV_PIX_FMT_FLAG_GRAY,
>>      },
>>      [AV_PIX_FMT_YA16BE] = {
>>          .name = "ya16be",
>> @@ -1371,7 +1372,7 @@ static const AVPixFmtDescriptor 
>> av_pix_fmt_descriptors[AV_PIX_FMT_NB] = {
>>              { 0, 4, 0, 0, 16, 3, 15, 1 },        /* Y */
>>              { 0, 4, 2, 0, 16, 3, 15, 3 },        /* A */
>>          },
>> -        .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA,
>> +        .flags = AV_PIX_FMT_FLAG_BE | AV_PIX_FMT_FLAG_ALPHA | 
>> AV_PIX_FMT_FLAG_GRAY,
>>      },
>>      [AV_PIX_FMT_GBRP] = {
>>          .name = "gbrp",
>> diff --git a/libavutil/pixdesc.h b/libavutil/pixdesc.h
>> index ea84fd3..7ebec09 100644
>> --- a/libavutil/pixdesc.h
>> +++ b/libavutil/pixdesc.h
>> @@ -151,6 +151,10 @@ typedef struct AVPixFmtDescriptor {
>>   * The pixel format has an alpha channel.
>>   */
>>  #define AV_PIX_FMT_FLAG_ALPHA        (1 << 7)
>> +/**
>> + * The pixel format is grayscale.
>> + */
>> +#define AV_PIX_FMT_FLAG_GRAY         (1 << 8)
>>
>>  /**
>>   * Read a line from an image, and write the values of the
>
> Seems like a good idea. Maybe it could say that the first component
> always contains the gray? And maybe that an external range flag
> controls whether it's full range or not?

sure, i'll send an updated version for this one, thanks for your review
-- 
Vittorio
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to