Mark GRAY8 format as pseudo-paletted.
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 8 Apr 2012 14:12:46 +0000 (16:12 +0200)
committerReimar Döffinger <Reimar.Doeffinger@gmx.de>
Mon, 9 Apr 2012 15:21:35 +0000 (17:21 +0200)
This fixes that the GIF encoder crashes with it because
it has no palette.
And the arguments for the pseudopalette apply to gray8 as
much as to RGB8 etc.
In addition the changes required in lavfi should be needed anyway
when adding support for RGB8 etc.

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
libavfilter/drawutils.c
libavfilter/vf_pad.c
libavutil/pixdesc.c

index 9b24cf7..954c075 100644 (file)
@@ -134,7 +134,7 @@ int ff_draw_init(FFDrawContext *draw, enum PixelFormat format, unsigned flags)
 
     if (!desc->name)
         return AVERROR(EINVAL);
-    if (desc->flags & ~(PIX_FMT_PLANAR | PIX_FMT_RGB))
+    if (desc->flags & ~(PIX_FMT_PLANAR | PIX_FMT_RGB | PIX_FMT_PSEUDOPAL))
         return AVERROR(ENOSYS);
     for (i = 0; i < desc->nb_components; i++) {
         c = &desc->comp[i];
index 9fc4b39..2a3c17e 100644 (file)
@@ -262,7 +262,7 @@ static void start_frame(AVFilterLink *inlink, AVFilterBufferRef *inpicref)
     AVFilterBufferRef *outpicref = avfilter_ref_buffer(inpicref, ~0);
     int plane;
 
-    for (plane = 0; plane < 4 && outpicref->data[plane]; plane++) {
+    for (plane = 0; plane < 4 && outpicref->data[plane] && pad->draw.pixelstep[plane]; plane++) {
         int hsub = pad->draw.hsub[plane];
         int vsub = pad->draw.vsub[plane];
 
index 233b217..8572719 100644 (file)
@@ -220,6 +220,7 @@ const AVPixFmtDescriptor av_pix_fmt_descriptors[PIX_FMT_NB] = {
         .comp = {
             { 0, 0, 1, 0, 7 },        /* Y */
         },
+        .flags = PIX_FMT_PSEUDOPAL,
     },
     [PIX_FMT_MONOWHITE] = {
         .name = "monow",