[FFmpeg-cvslog] xan: Check for overlapping copies

Michael Niedermayer git at videolan.org
Thu Jan 16 02:46:57 CET 2014


ffmpeg | branch: release/1.2 | Michael Niedermayer <michaelni at gmx.at> | Thu Apr 18 00:52:48 2013 +0200| [c93501687ca940cba649aea4ae9512c76555deb8] | committer: Michael Niedermayer

xan: Check for overlapping copies

No valid samples i found use such copies

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni at gmx.at>
(cherry picked from commit bdfe60c769f4d4e71a360fe02f06cdb9c039cf35)

Signed-off-by: Michael Niedermayer <michaelni at gmx.at>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=c93501687ca940cba649aea4ae9512c76555deb8
---

 libavcodec/xan.c |    5 +++++
 1 file changed, 5 insertions(+)

diff --git a/libavcodec/xan.c b/libavcodec/xan.c
index 219eedd..6bfb4ba 100644
--- a/libavcodec/xan.c
+++ b/libavcodec/xan.c
@@ -244,6 +244,11 @@ static inline void xan_wc3_copy_pixel_run(XanContext *s, int x, int y,
     curframe_x = x;
     prevframe_index = (y + motion_y) * stride + x + motion_x;
     prevframe_x = x + motion_x;
+
+    if (prev_palette_plane == palette_plane && FFABS(curframe_index - prevframe_index) < pixel_count) {
+         return ;
+    }
+
     while (pixel_count &&
            curframe_index  < s->frame_size &&
            prevframe_index < s->frame_size) {



More information about the ffmpeg-cvslog mailing list