diff --git a/libavfilter/drawutils.c b/libavfilter/drawutils.c index 9b24cf7ac7..954c075a5f 100644 --- a/libavfilter/drawutils.c +++ b/libavfilter/drawutils.c @@ -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]; diff --git a/libavfilter/vf_pad.c b/libavfilter/vf_pad.c index 9fc4b39b16..2a3c17ea18 100644 --- a/libavfilter/vf_pad.c +++ b/libavfilter/vf_pad.c @@ -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]; diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index 233b217643..8572719822 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -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",