[FFmpeg-soc] [soc]: r1875 - libavfilter/formats.c

Bobby Bingham uhmmmm at gmail.com
Sat Feb 9 22:30:38 CET 2008


On Sat,  9 Feb 2008 21:58:34 +0100 (CET)
vitor <subversion at mplayerhq.hu> wrote:

> Author: vitor
> Date: Sat Feb  9 21:58:34 2008
> New Revision: 1875
> 
> Log:
> Do not hardcode the list of pixel formats and use PIX_FMT_NB instead.
> 
> Modified:
>    libavfilter/formats.c
> 
> Modified: libavfilter/formats.c
> ==============================================================================
> --- libavfilter/formats.c	(original)
> +++ libavfilter/formats.c	Sat Feb  9 21:58:34 2008
> @@ -85,23 +85,17 @@ AVFilterFormats *avfilter_make_format_li
>  
>  AVFilterFormats *avfilter_all_colorspaces(void)
>  {
> -    return avfilter_make_format_list(35,
> -                PIX_FMT_YUV444P,  PIX_FMT_YUV422P,  PIX_FMT_YUV420P,
> -                PIX_FMT_YUV411P,  PIX_FMT_YUV410P,
> -                PIX_FMT_YUYV422,  PIX_FMT_UYVY422,
> PIX_FMT_UYYVYY411,
> -                PIX_FMT_YUVJ444P, PIX_FMT_YUVJ422P, PIX_FMT_YUVJ420P,
> -                PIX_FMT_YUV440P,  PIX_FMT_YUVJ440P,
> -                PIX_FMT_RGB32,    PIX_FMT_BGR32,
> -                PIX_FMT_RGB32_1,  PIX_FMT_BGR32_1,
> -                PIX_FMT_RGB24,    PIX_FMT_BGR24,
> -                PIX_FMT_RGB565,   PIX_FMT_BGR565,
> -                PIX_FMT_RGB555,   PIX_FMT_BGR555,
> -                PIX_FMT_RGB8,     PIX_FMT_BGR8,
> -                PIX_FMT_RGB4_BYTE,PIX_FMT_BGR4_BYTE,
> -                PIX_FMT_GRAY16BE, PIX_FMT_GRAY16LE,
> -                PIX_FMT_GRAY8,    PIX_FMT_PAL8,
> -                PIX_FMT_MONOWHITE,PIX_FMT_MONOBLACK,
> -                PIX_FMT_NV12,     PIX_FMT_NV21);
> +    AVFilterFormats *ret;
> +    int i;
> +
> +    ret = av_mallocz(sizeof(AVFilterFormats));
> +    ret->formats = av_malloc(sizeof(*ret->formats) * PIX_FMT_NB);
> +    ret->format_count = PIX_FMT_NB;
> +
> +    for(i = 0; i < PIX_FMT_NB; i ++)
> +        ret->formats[i] = i;
> +
> +    return ret;
>  }
>  

Hrmmm.
I must have missed when some of those formats were added to the list.
What I originally had in mind for that function wasn't exactly listing
"all" formats, but listing the most commonly supported subset, to avoid
duplicating this code in every single filter.  The function name was
obviously a little less than ideal.

Maybe how exactly this is done should be thought out a little more.
But I think a function which returns a list of all the formats is
pretty useless, because few if any filters will actually support them
all.  And what about the XVMC formats?  I don't know much about XVMC,
but is the image data even there for filtering, or is it off on the
videocard somewhere?

-- 
Bobby Bingham
Never trust atoms.  Or anything made of atoms.
このメールは再利用されたバイトでできている。



More information about the FFmpeg-soc mailing list