diff options
Diffstat (limited to 'gst/goom')
-rw-r--r-- | gst/goom/filters.c | 7 | ||||
-rw-r--r-- | gst/goom/goom_core.c | 7 |
2 files changed, 11 insertions, 3 deletions
diff --git a/gst/goom/filters.c b/gst/goom/filters.c index ee598100..e3153aa5 100644 --- a/gst/goom/filters.c +++ b/gst/goom/filters.c @@ -413,8 +413,13 @@ zoomFilterSetResolution (GoomData * gd, ZoomFilterData * zf) void zoomFilterDestroy (ZoomFilterData * zf) { - if (zf) + if (zf) { + if (zf->firedec) + free (zf->firedec); + if (zf->buffer) + free (zf->buffer); free (zf); + } } /*===============================================================*/ diff --git a/gst/goom/goom_core.c b/gst/goom/goom_core.c index 1734a316..d66ffe25 100644 --- a/gst/goom/goom_core.c +++ b/gst/goom/goom_core.c @@ -368,8 +368,7 @@ goom_update (GoomData * goomdata, gint16 data[2][512]) /* si on est dans un goom : afficher les lignes... */ if (goomdata->agoom > 15) - goom_lines - (goomdata, data, ((pzfd->middleX == resolx / 2) + goom_lines (goomdata, data, ((pzfd->middleX == resolx / 2) && (pzfd->middleY == resoly / 2) && (pzfd->mode != WATER_MODE)) ? (goomdata->lineMode / 10) : 0, goomdata->p2, goomdata->agoom - 15); @@ -404,6 +403,10 @@ goom_close (GoomData * goomdata) free (goomdata->pixel); if (goomdata->back != NULL) free (goomdata->back); + if (goomdata->zfd != NULL) { + zoomFilterDestroy (goomdata->zfd); + goomdata->zfd = NULL; + } goomdata->pixel = goomdata->back = NULL; RAND_CLOSE (goomdata); } |