avfilter/vf_colormatrix: make sure the number of threads is even for yuv420p
authorClément Bœsch <u@pkh.me>
Tue, 17 Mar 2015 19:09:49 +0000 (20:09 +0100)
committerClément Bœsch <u@pkh.me>
Tue, 17 Mar 2015 19:19:54 +0000 (20:19 +0100)
Fix crash with for example:
  ffmpeg -f lavfi -i testsrc=568x320 -threads 3 -vf format=yuv420p,colormatrix=bt709:smpte170m -f null -

libavfilter/vf_colormatrix.c

index cec0e3a..78d1bad 100644 (file)
@@ -416,7 +416,7 @@ static int filter_frame(AVFilterLink *link, AVFrame *in)
                                FFMIN(in->height, ctx->graph->nb_threads));
     else if (in->format == AV_PIX_FMT_YUV420P)
         ctx->internal->execute(ctx, process_slice_yuv420p, &td, NULL,
-                               FFMIN(in->height, ctx->graph->nb_threads));
+                               FFMAX(1, FFMIN(in->height, ctx->graph->nb_threads) & ~1));
     else
         ctx->internal->execute(ctx, process_slice_uyvy422, &td, NULL,
                                FFMIN(in->height, ctx->graph->nb_threads));