summaryrefslogtreecommitdiff
path: root/src/xine-engine/video_overlay.c
diff options
context:
space:
mode:
authorSimon Farnsworth <simon.farnsworth@onelan.co.uk>2007-07-12 11:30:14 +0100
committerSimon Farnsworth <simon.farnsworth@onelan.co.uk>2007-07-12 11:30:14 +0100
commit7cb04769574d9ef849ca7a7bd4da45671639eb77 (patch)
treece8fa2f87b118cd674400b54cce6225c6427142d /src/xine-engine/video_overlay.c
parentc29f5163db85b1b4097a791ca1ba96f2b52f1f04 (diff)
downloadxine-lib-7cb04769574d9ef849ca7a7bd4da45671639eb77.tar.gz
xine-lib-7cb04769574d9ef849ca7a7bd4da45671639eb77.tar.bz2
Fix memory leak in video_overlay.c
When running DVB subtitles for a long period of time (over 24 hours), we noticed a slow leak of memory. This patch removes one cause of leakage for us.
Diffstat (limited to 'src/xine-engine/video_overlay.c')
-rw-r--r--src/xine-engine/video_overlay.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/xine-engine/video_overlay.c b/src/xine-engine/video_overlay.c
index 231aa5a70..574f42ac3 100644
--- a/src/xine-engine/video_overlay.c
+++ b/src/xine-engine/video_overlay.c
@@ -395,6 +395,8 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
#endif
/* free any overlay associated with this event */
if (this->events[this_event].event->object.overlay != NULL) {
+ if( this->events[this_event].event->object.overlay->rle != NULL )
+ free( this->events[this_event].event->object.overlay->rle );
free(this->events[this_event].event->object.overlay);
this->events[this_event].event->object.overlay = NULL;
}
@@ -406,9 +408,11 @@ static int video_overlay_event( video_overlay_t *this, int64_t vpts ) {
printf ("video_overlay: FREE SPU NOW\n");
#endif
/* free any overlay associated with this event */
- if (this->events[this_event].event->object.overlay != NULL) {
+ if( this->events[this_event].event->object.overlay != NULL) {
+ if( this->events[this_event].event->object.overlay->rle != NULL )
+ free( this->events[this_event].event->object.overlay->rle );
free(this->events[this_event].event->object.overlay);
- this->events[this_event].event->object.overlay = NULL;
+ this->events[this_event].event->object.overlay = NULL;
}
/* this avoid removing this_event from the queue
* (it will be removed at the end of this loop) */