summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-23 17:39:27 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-06-23 17:39:27 +0000
commit74047be59a44d6d973370ad1ce4148ae245d746e (patch)
tree7a22de77a1e63cb928920468134388a6ebf3450f /libmpdemux/demuxer.c
parent5318221f0a06b9857b7ea857e52f42aae3799b70 (diff)
downloadmpv-74047be59a44d6d973370ad1ce4148ae245d746e.tar.bz2
mpv-74047be59a44d6d973370ad1ce4148ae245d746e.tar.xz
Fix memleak due to not freeing demuxer->s_streams
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@23612 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 73f073c7bc..1d1a781648 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -226,6 +226,11 @@ sh_sub_t *new_sh_sub_sid(demuxer_t *demuxer, int id, int sid) {
return demuxer->s_streams[id];
}
+void free_sh_sub(sh_sub_t *sh) {
+ mp_msg(MSGT_DEMUXER, MSGL_DBG2, "DEMUXER: freeing sh_sub at %p\n", sh);
+ free(sh);
+}
+
sh_audio_t* new_sh_audio_aid(demuxer_t *demuxer,int id,int aid){
if(id > MAX_A_STREAMS-1 || id < 0)
{
@@ -296,6 +301,8 @@ void free_demuxer(demuxer_t *demuxer){
if(demuxer->a_streams[i]) free_sh_audio(demuxer, i);
for(i = 0; i < MAX_V_STREAMS; i++)
if(demuxer->v_streams[i]) free_sh_video(demuxer->v_streams[i]);
+ for(i = 0; i < MAX_S_STREAMS; i++)
+ if(demuxer->s_streams[i]) free_sh_sub(demuxer->s_streams[i]);
// free demuxers:
free_demuxer_stream(demuxer->audio);
free_demuxer_stream(demuxer->video);