From 91efa0b60dedc714271ea8773f385c74c9e53e49 Mon Sep 17 00:00:00 2001 From: Ronag Date: Sat, 27 Aug 2011 22:30:57 +0000 Subject: [PATCH] 2.0. parallel_yadif: Fixed buffer overflow bug which caused some artifacts while deinterlacing ntsc. git-svn-id: https://casparcg.svn.sourceforge.net/svnroot/casparcg/server/branches/2.0.0.2@1305 362d55ac-95cf-4e76-9f9a-cbaa9c17b72d --- modules/ffmpeg/producer/filter/parallel_yadif.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/ffmpeg/producer/filter/parallel_yadif.cpp b/modules/ffmpeg/producer/filter/parallel_yadif.cpp index 1727a4ce8..97b31ef19 100644 --- a/modules/ffmpeg/producer/filter/parallel_yadif.cpp +++ b/modules/ffmpeg/producer/filter/parallel_yadif.cpp @@ -124,7 +124,13 @@ std::shared_ptr make_parallel_yadif(AVFilterContext* ctx) while(index < sizeof(fs)/sizeof(fs[0]) && fs[index] != func) ++index; - ctxs[index].last_index = 32;//ctx->inputs[0]->h; + ctxs[index].last_index = 0; + for (int y = 0; y < ctx->inputs[0]->h; y++) + { + if ((y ^ yadif->parity) & 1) + ++ctxs[index].last_index; + } + yadif->filter_line = func; } -- 2.39.2