]> git.sesse.net Git - casparcg/commitdiff
2.0. parallel_yadif: Fixed buffer overflow bug which caused some artifacts while...
authorRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 27 Aug 2011 22:30:57 +0000 (22:30 +0000)
committerRonag <Ronag@362d55ac-95cf-4e76-9f9a-cbaa9c17b72d>
Sat, 27 Aug 2011 22:30:57 +0000 (22:30 +0000)
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

index 1727a4ce84a3c9c7ff2660c803467c9aa5dbbcfc..97b31ef19d626027a0f9bd1c58dbe8bfb352aa27 100644 (file)
@@ -124,7 +124,13 @@ std::shared_ptr<void> make_parallel_yadif(AVFilterContext* ctx)
                while(index < sizeof(fs)/sizeof(fs[0]) && fs[index] != func)\r
                        ++index;\r
 \r
-               ctxs[index].last_index = 32;//ctx->inputs[0]->h;\r
+               ctxs[index].last_index = 0;\r
+               for (int y = 0; y < ctx->inputs[0]->h; y++)
+               {
+            if ((y ^ yadif->parity) & 1)\r
+                               ++ctxs[index].last_index;\r
+               }\r
+\r
                yadif->filter_line = func;\r
        }\r
 \r