diff options
author | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-04-12 13:53:33 +0000 |
---|---|---|
committer | albeu <albeu@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2003-04-12 13:53:33 +0000 |
commit | 58ce0ac8425e64ea667aa402a0a6bdf140a31465 (patch) | |
tree | ccd39bcb4c35c7d856faf69afe42a7a95926b849 /libmpdemux | |
parent | 95341f99cf656eaaf7149b17659e7a767062851a (diff) | |
download | mpv-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.c | 10 | ||||
-rw-r--r-- | libmpdemux/stream.c | 5 |
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) { |