summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
authoralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-04-12 13:53:33 +0000
committeralbeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2>2003-04-12 13:53:33 +0000
commit58ce0ac8425e64ea667aa402a0a6bdf140a31465 (patch)
treeccd39bcb4c35c7d856faf69afe42a7a95926b849 /libmpdemux
parent95341f99cf656eaaf7149b17659e7a767062851a (diff)
downloadmpv-58ce0ac8425e64ea667aa402a0a6bdf140a31465.tar.bz2
mpv-58ce0ac8425e64ea667aa402a0a6bdf140a31465.tar.xz
Fix cache uninit
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@9916 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/cache2.c10
-rw-r--r--libmpdemux/stream.c5
2 files changed, 11 insertions, 4 deletions
diff --git a/libmpdemux/cache2.c b/libmpdemux/cache2.c
index 2650ff2dbd..b4e82cb12b 100644
--- a/libmpdemux/cache2.c
+++ b/libmpdemux/cache2.c
@@ -196,6 +196,16 @@ cache_vars_t* cache_init(int size,int sector){
return s;
}
+void cache_uninit(stream_t *s) {
+ cache_vars_t* c = s->cache_data;
+ if(!s->cache_pid) return;
+ kill(s->cache_pid,SIGKILL);
+ waitpid(s->cache_pid,NULL,0);
+ if(!c) return;
+ shmem_free(c->buffer,c->buffer_size);
+ shmem_free(s->cache_data,sizeof(cache_vars_t));
+}
+
static void exit_sighandler(int x){
// close stream
exit(0);
diff --git a/libmpdemux/stream.c b/libmpdemux/stream.c
index 85cfc6da77..7d0989a1de 100644
--- a/libmpdemux/stream.c
+++ b/libmpdemux/stream.c
@@ -391,10 +391,7 @@ void free_stream(stream_t *s){
// printf("\n*** free_stream() called ***\n");
#ifdef USE_STREAM_CACHE
if(s->cache_pid) {
-// kill(s->cache_pid,SIGTERM);
- kill(s->cache_pid,SIGKILL);
- waitpid(s->cache_pid,NULL,0);
- shmem_free(s->cache_data);
+ cache_uninit(s);
}
#endif
switch(s->type) {