summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-06 10:46:50 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-12-06 10:46:50 +0000
commita4147be5f7d8e7c407d85fad9a6411b8a5881e1a (patch)
tree9c83efacb410994db65f5c29d12cc0b3f9070497 /libmpdemux
parentdd4bc174218dae680b06572a4fb9eb52d804dc30 (diff)
downloadmpv-a4147be5f7d8e7c407d85fad9a6411b8a5881e1a.tar.bz2
mpv-a4147be5f7d8e7c407d85fad9a6411b8a5881e1a.tar.xz
Fix memleaks caused by missing vorbis/theora_info/comment_clear calls.
Code still seems wrong to me for multiple audio tracks, since there is only one vorbis comment/info entry for the demuxer, not one per track? git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21516 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/demux_ogg.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/libmpdemux/demux_ogg.c b/libmpdemux/demux_ogg.c
index 3fcffb2ace..6bb5f8ccaa 100644
--- a/libmpdemux/demux_ogg.c
+++ b/libmpdemux/demux_ogg.c
@@ -994,6 +994,8 @@ int demux_ogg_open(demuxer_t* demuxer) {
n_video - 1);
if( mp_msg_test(MSGT_HEADER,MSGL_V) ) print_video_header(sh_v->bih,MSGL_V);
}
+ theora_comment_clear(&cc);
+ theora_info_clear(&inf);
# endif /* HAVE_OGGTHEORA */
} else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
sh_a = new_sh_audio_aid(demuxer,ogg_d->num_sub, n_audio);
@@ -1621,6 +1623,8 @@ static void demux_close_ogg(demuxer_t* demuxer) {
if (ogg_d->text_langs[i]) free(ogg_d->text_langs[i]);
free(ogg_d->text_langs);
}
+ vorbis_info_clear(&ogg_d->vi);
+ vorbis_comment_clear(&ogg_d->vc);
free(ogg_d);
}