diff options
Diffstat (limited to 'media-video/effectv/files/effectv-0.3.11-timedist.patch')
-rw-r--r-- | media-video/effectv/files/effectv-0.3.11-timedist.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/media-video/effectv/files/effectv-0.3.11-timedist.patch b/media-video/effectv/files/effectv-0.3.11-timedist.patch new file mode 100644 index 000000000000..e303d9290402 --- /dev/null +++ b/media-video/effectv/files/effectv-0.3.11-timedist.patch @@ -0,0 +1,51 @@ +This is a quick fix for bugs of effectv-0.3.11. TimeDistortion has a border +crossing bug and a buffer uninitializing bug. + +Index: effects/timedist.c +=================================================================== +--- effects/timedist.c (revision 478) ++++ effects/timedist.c (working copy) +@@ -27,7 +27,16 @@ + static int plane; + static int *warptime[2]; + static int warptimeFrame; ++static int bgIsSet; + ++static int setBackground(RGB32 *src) ++{ ++ image_bgset_y(src); ++ bgIsSet = 1; ++ ++ return 0; ++} ++ + effect *timeDistortionRegister(void) + { + effect *entry; +@@ -70,6 +79,7 @@ + + plane = 0; + image_set_threshold_y(MAGIC_THRESHOLD); ++ bgIsSet = 0; + + state = 1; + return 0; +@@ -94,6 +104,9 @@ + int *p, *q; + + memcpy(planetable[plane], src, PIXEL_SIZE * video_area); ++ if(!bgIsSet) { ++ setBackground(src); ++ } + diff = image_bgsubtract_update_y(src); + + p = warptime[warptimeFrame ] + video_width + 1; +@@ -109,7 +122,7 @@ + q += 2; + } + +- q = warptime[warptimeFrame ^ 1] + video_width + 1; ++ q = warptime[warptimeFrame ^ 1]; + for(i=0; i<video_area; i++) { + if(*diff++) { + *q = PLANES - 1; |