diff options
author | wm4 <wm4@nowhere> | 2013-11-14 19:51:09 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2013-11-14 19:52:18 +0100 |
commit | e91edf9aed3fde6f0038d7db8acfc1653d8fe9d7 (patch) | |
tree | 22730097a101ac423ed5c138224878883399e72d /demux/demux.c | |
parent | d0346e087abf7da9cda71143039ec4cc74627116 (diff) | |
download | mpv-e91edf9aed3fde6f0038d7db8acfc1653d8fe9d7.tar.bz2 mpv-e91edf9aed3fde6f0038d7db8acfc1653d8fe9d7.tar.xz |
demux: use talloc for certain stream headers
Slightly simplifies memory management. This might make adding a demuxer
cache wrapper easier at a later point, because you can just copy the
complete stream header, without worrying that the wrapper will free the
individual stream header fields.
Diffstat (limited to 'demux/demux.c')
-rw-r--r-- | demux/demux.c | 30 |
1 files changed, 1 insertions, 29 deletions
diff --git a/demux/demux.c b/demux/demux.c index da5957efdd..af00e81676 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -273,34 +273,6 @@ struct sh_stream *new_sh_stream(demuxer_t *demuxer, enum stream_type type) return sh; } -static void free_sh_sub(sh_sub_t *sh) -{ - free(sh->extradata); -} - -static void free_sh_audio(sh_audio_t *sh) -{ - free(sh->wf); - free(sh->codecdata); -} - -static void free_sh_video(sh_video_t *sh) -{ - free(sh->bih); -} - -static void free_sh_stream(struct sh_stream *sh) -{ - ds_free_packs(sh->ds); - - switch (sh->type) { - case STREAM_AUDIO: free_sh_audio(sh->audio); break; - case STREAM_VIDEO: free_sh_video(sh->video); break; - case STREAM_SUB: free_sh_sub(sh->sub); break; - default: abort(); - } -} - void free_demuxer(demuxer_t *demuxer) { if (!demuxer) @@ -309,7 +281,7 @@ void free_demuxer(demuxer_t *demuxer) demuxer->desc->close(demuxer); // free streams: for (int n = 0; n < demuxer->num_streams; n++) - free_sh_stream(demuxer->streams[n]); + ds_free_packs(demuxer->streams[n]->ds); talloc_free(demuxer); } |