[FFmpeg-devel] [PATCH 6/8] Make avcodec_pix_fmt_string() use the information in the pixel format descriptors for printing the number of planes. Also replace the term "nb_channels" with "nb_planes" which is more correct.

Michael Niedermayer michaelni
Wed Nov 10 00:17:45 CET 2010


On Tue, Nov 09, 2010 at 11:59:13PM +0100, Stefano Sabatini wrote:
> On date Monday 2010-11-08 15:36:36 +0100, Michael Niedermayer encoded:
> > On Sun, Nov 07, 2010 at 07:49:45PM +0100, Stefano Sabatini wrote:
> > > On date Sunday 2010-11-07 19:08:28 +0100, Michael Niedermayer encoded:
> > > > On Sun, Nov 07, 2010 at 02:47:47PM +0100, Stefano Sabatini wrote:
> > > > > On date Friday 2010-11-05 12:01:38 +0100, Stefano Sabatini encoded:
> > > > > > ---
> > > > > >  libavcodec/imgconvert.c |   12 ++++++++----
> > > > > >  1 files changed, 8 insertions(+), 4 deletions(-)
> > > > > > 
> > > > > > diff --git a/libavcodec/imgconvert.c b/libavcodec/imgconvert.c
> > > > > > index e9477c4..0c30304 100644
> > > > > > --- a/libavcodec/imgconvert.c
> > > > > > +++ b/libavcodec/imgconvert.c
> > > > > > @@ -434,15 +434,19 @@ void avcodec_pix_fmt_string (char *buf, int buf_size, enum PixelFormat pix_fmt)
> > > > > >      /* print header */
> > > > > >      if (pix_fmt < 0)
> > > > > >          snprintf (buf, buf_size,
> > > > > > -                  "name      " " nb_channels" " depth"
> > > > > > +                  "name      " " nb_planes" " depth"
> > > > > >              );
> > > > > >      else{
> > > > > > -        PixFmtInfo info= pix_fmt_info[pix_fmt];
> > > > > > +        const AVPixFmtDescriptor *pixdesc = &av_pix_fmt_descriptors[pix_fmt];
> > > > > > +        int i, nb_planes = 0;
> > > > > > +        for (i = 0; i < pixdesc->nb_components; i++)
> > > > > > +            nb_planes = FFMAX(pixdesc->comp[i].plane, nb_planes);
> > > > > > +        nb_planes++;
> > > > > >  
> > > > > >          snprintf (buf, buf_size,
> > > > > > -                  "%-11s %5d %9d",
> > > > > > +                  "%-11s %5d %7d",
> > > > > >                    av_pix_fmt_descriptors[pix_fmt].name,
> > > > > > -                  info.nb_channels,
> > > > > > +                  nb_planes,
> > > > > >                    av_get_bits_per_pixel(&av_pix_fmt_descriptors[pix_fmt])
> > > > > >              );
> > > > > 
> > > > > nb_planes != nb_channels
> > > > 
> > > > well you can print one, you can print the other or both.
> > > > iam not sure i like the nb_components renaming though
> > > 
> > > Also I discovered they're two different things, indeed nb_channels for
> > > RGB8, RGB4, RGB4_BYTE, BGR8... is 1,
> > 
> > that i would call planes, which is 1 for packed pixel formats
> > 
> > 
> > > while the number of components is
> > > 3 (so I have no idea what's the meaning of the hackish definition of
> > > PixFmt.nb_channels).
> > > 
> > > So I think it's better to use nb_component to make the distinction
> > > clear.
> > 
> > iam not sure if channel of component is better. In Audio terminology
> > channel is clear in relation to packing several into one plane
> > but iam not saying iam against the renaming, just that iam unsure
> 
> I like to keep a strict relation between exposed and internal
> terminology, both us and our users will be less confused.
> 
> Also "channel" for the old API has quite a weird definition, so to
> make clear that we're using a different "definition", and that the new
> values under that column will actually have different values (at lease
> in some case), I think it is better to adopt the new term
> "nb_components".

if you prefer to name it component, then its ok with

[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 3
"Rare item" - "Common item with rare defect or maybe just a lie"
"Professional" - "'Toy' made in china, not functional except as doorstop"
"Experts will know" - "The seller hopes you are not an expert"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20101110/7e5f956a/attachment.pgp>



More information about the ffmpeg-devel mailing list