From 4ba4d6ef3fe49978c76ecca008478cd1f5d97125 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 3 May 2013 20:26:48 +0200 Subject: demux: report stream time info instead of demuxer info if possible Needed for bluray and dvd. demux_mpg (used for dvd playback) did this manually for the time length. --- demux/demux.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'demux') diff --git a/demux/demux.c b/demux/demux.c index 9622c2412a..eeaa92c266 100644 --- a/demux/demux.c +++ b/demux/demux.c @@ -1384,17 +1384,20 @@ int demuxer_chapter_count(demuxer_t *demuxer) double demuxer_get_time_length(struct demuxer *demuxer) { - double get_time_ans; + double len; + if (stream_control(demuxer->stream, STREAM_CTRL_GET_TIME_LENGTH, &len) > 0) + return len; // <= 0 means DEMUXER_CTRL_NOTIMPL or DEMUXER_CTRL_DONTKNOW - if (demux_control(demuxer, DEMUXER_CTRL_GET_TIME_LENGTH, - (void *) &get_time_ans) > 0) - return get_time_ans; + if (demux_control(demuxer, DEMUXER_CTRL_GET_TIME_LENGTH, &len) > 0) + return len; return -1; } double demuxer_get_start_time(struct demuxer *demuxer) { double time; + if (stream_control(demuxer->stream, STREAM_CTRL_GET_START_TIME, &time) > 0) + return time; if (demux_control(demuxer, DEMUXER_CTRL_GET_START_TIME, &time) > 0) return time; return 0; -- cgit v1.2.3