summaryrefslogtreecommitdiffstats
path: root/demux/demux_disc.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_disc.c')
-rw-r--r--demux/demux_disc.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/demux/demux_disc.c b/demux/demux_disc.c
index 06cea65d1a..dcb0762cb5 100644
--- a/demux/demux_disc.c
+++ b/demux/demux_disc.c
@@ -205,6 +205,8 @@ static int d_fill_buffer(demuxer_t *demuxer)
if (!pkt)
return 0;
+ demux_update(p->slave);
+
if (p->seek_reinit)
reset_pts(demuxer);
@@ -285,6 +287,13 @@ static int d_open(demuxer_t *demuxer, enum demux_check check)
if (demuxer->stream->uncached_type == STREAMTYPE_CDDA)
demux = "+rawaudio";
+ char *t = NULL;
+ stream_control(demuxer->stream, STREAM_CTRL_GET_DISC_NAME, &t);
+ if (t) {
+ mp_tags_set_bstr(demuxer->metadata, bstr0("TITLE"), bstr0(t));
+ talloc_free(t);
+ }
+
// Initialize the playback time. We need to read _some_ data to get the
// correct stream-layer time (at least with libdvdnav).
stream_peek(demuxer->stream, 1);
@@ -295,7 +304,7 @@ static int d_open(demuxer_t *demuxer, enum demux_check check)
return -1;
// So that we don't miss initial packets of delayed subtitle streams.
- p->slave->stream_select_default = true;
+ demux_set_stream_autoselect(p->slave, true);
// Can be seekable even if the stream isn't.
demuxer->seekable = true;