summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorThibaut Mattern <tmattern@users.sourceforge.net>2004-01-22 21:32:48 +0000
committerThibaut Mattern <tmattern@users.sourceforge.net>2004-01-22 21:32:48 +0000
commitc0119c9bcc6727852b2a67cddb03862c7ed9e96f (patch)
treec8e8b33809bcc8b2ddc5182b5b293f219c97711f /src
parenta445919d591232b58e3ed7d7e94353bf7db134d0 (diff)
downloadxine-lib-c0119c9bcc6727852b2a67cddb03862c7ed9e96f.tar.gz
xine-lib-c0119c9bcc6727852b2a67cddb03862c7ed9e96f.tar.bz2
Fix some memleaks.
CVS patchset: 6058 CVS date: 2004/01/22 21:32:48
Diffstat (limited to 'src')
-rw-r--r--src/demuxers/demux_matroska.c29
1 files changed, 25 insertions, 4 deletions
diff --git a/src/demuxers/demux_matroska.c b/src/demuxers/demux_matroska.c
index 80a690b50..7349e1c49 100644
--- a/src/demuxers/demux_matroska.c
+++ b/src/demuxers/demux_matroska.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: demux_matroska.c,v 1.15 2004/01/22 00:41:53 tmattern Exp $
+ * $Id: demux_matroska.c,v 1.16 2004/01/22 21:32:48 tmattern Exp $
*
* demultiplexer for matroska streams
*
@@ -1670,8 +1670,29 @@ static int demux_matroska_seek (demux_plugin_t *this_gen,
}
-static void demux_matroska_dispose (demux_plugin_t *this) {
+static void demux_matroska_dispose (demux_plugin_t *this_gen) {
+
+ demux_matroska_t *this = (demux_matroska_t *) this_gen;
+ int i;
+ /* free tracks */
+ for (i = 0; i < this->num_tracks; i++) {
+ matroska_track_t *track;
+
+ track = this->tracks[i];
+ if (track->language)
+ free (track->language);
+ if (track->codec_id)
+ free (track->codec_id);
+ if (track->codec_private)
+ free (track->codec_private);
+ if (track->video_track)
+ free (track->video_track);
+ if (track->audio_track)
+ free (track->audio_track);
+
+ free (track);
+ }
free (this);
}
@@ -1711,7 +1732,7 @@ static int demux_matroska_get_optional_data (demux_plugin_t *this_gen,
/* the string got truncated */
str[XINE_LANG_MAX - 2] = str[XINE_LANG_MAX - 3] = str[XINE_LANG_MAX - 4] = '.';
} else {
- snprintf(str, XINE_LANG_MAX, "channel %d",channel);
+ snprintf(str, XINE_LANG_MAX, "eng",channel);
}
return DEMUX_OPTIONAL_SUCCESS;
}
@@ -1733,7 +1754,7 @@ static int demux_matroska_get_optional_data (demux_plugin_t *this_gen,
/* the string got truncated */
str[XINE_LANG_MAX - 2] = str[XINE_LANG_MAX - 3] = str[XINE_LANG_MAX - 4] = '.';
} else {
- snprintf(str, XINE_LANG_MAX, "channel %d", channel);
+ snprintf(str, XINE_LANG_MAX, "eng", channel);
}
return DEMUX_OPTIONAL_SUCCESS;
}