summaryrefslogtreecommitdiffstats
path: root/libmpdemux
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux')
-rw-r--r--libmpdemux/open.c7
-rw-r--r--libmpdemux/stream.c9
2 files changed, 15 insertions, 1 deletions
diff --git a/libmpdemux/open.c b/libmpdemux/open.c
index fc5294f11f..5fa7a316b2 100644
--- a/libmpdemux/open.c
+++ b/libmpdemux/open.c
@@ -686,4 +686,11 @@ d->angle_seek=1;
}
+void dvd_close(dvd_priv_t *d) {
+ ifoClose(d->vts_file);
+ ifoClose(d->vmg_file);
+ DVDCloseFile(d->title);
+ DVDClose(d->dvd);
+}
+
#endif
diff --git a/libmpdemux/stream.c b/libmpdemux/stream.c
index 86d2ffa3d1..5d96414a7c 100644
--- a/libmpdemux/stream.c
+++ b/libmpdemux/stream.c
@@ -278,10 +278,17 @@ void free_stream(stream_t *s){
waitpid(s->cache_pid,NULL,0);
}
if(s->fd>0) close(s->fd);
+ switch(s->type) {
#ifdef HAVE_CDDA
- if(s->type == STREAMTYPE_CDDA)
+ case STREAMTYPE_CDDA:
close_cdda(s);
+ break;
+#endif
+#ifdef USE_DVDREAD
+ case STREAMTYPE_DVD:
+ dvd_close(s->priv);
#endif
+ }
if(s->priv) free(s->priv);
free(s);
}