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.
This commit is contained in:
wm4 2013-05-03 20:26:48 +02:00
parent 4d14a42997
commit 4ba4d6ef3f
1 changed files with 7 additions and 4 deletions

View File

@ -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;