From 4d14a42997154861e541c34d25a26d272fcbd152 Mon Sep 17 00:00:00 2001 From: wm4 Date: Fri, 3 May 2013 20:11:46 +0200 Subject: stream: add start time reporting Will be needed to override the demuxer's start time reporting. We could be lazy and special-case it since the result is always 0 for the streams that care, but doing it properly is better. --- stream/cache2.c | 3 +++ stream/stream.h | 1 + stream/stream_dvd.c | 5 +++++ 3 files changed, 9 insertions(+) (limited to 'stream') diff --git a/stream/cache2.c b/stream/cache2.c index 6c11ec9812..705ba15014 100644 --- a/stream/cache2.c +++ b/stream/cache2.c @@ -300,6 +300,7 @@ static int cache_execute_control(cache_vars_t *s) { double_res = s->control_double_arg; case STREAM_CTRL_GET_CURRENT_TIME: case STREAM_CTRL_GET_ASPECT_RATIO: + case STREAM_CTRL_GET_START_TIME: s->control_res = s->stream->control(s->stream, s->control, &double_res); s->control_double_arg = double_res; break; @@ -663,6 +664,7 @@ int cache_do_control(stream_t *stream, int cmd, void *arg) { case STREAM_CTRL_GET_ANGLE: case STREAM_CTRL_GET_SIZE: case STREAM_CTRL_MANAGES_TIMELINE: + case STREAM_CTRL_GET_START_TIME: case -2: s->control = cmd; break; @@ -695,6 +697,7 @@ int cache_do_control(stream_t *stream, int cmd, void *arg) { case STREAM_CTRL_GET_TIME_LENGTH: case STREAM_CTRL_GET_CURRENT_TIME: case STREAM_CTRL_GET_ASPECT_RATIO: + case STREAM_CTRL_GET_START_TIME: *(double *)arg = s->control_double_arg; break; case STREAM_CTRL_GET_NUM_TITLES: diff --git a/stream/stream.h b/stream/stream.h index b6fe40b56a..2d4fd3862d 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -103,6 +103,7 @@ #define STREAM_CTRL_RECONNECT 18 // DVD/Bluray, signal general support for GET_CURRENT_TIME etc. #define STREAM_CTRL_MANAGES_TIMELINE 19 +#define STREAM_CTRL_GET_START_TIME 20 struct stream_lang_req { int type; // STREAM_AUDIO, STREAM_SUB diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c index 0b85e320ba..5df9b390e7 100644 --- a/stream/stream_dvd.c +++ b/stream/stream_dvd.c @@ -624,6 +624,11 @@ static int control(stream_t *stream,int cmd,void* arg) *((double *)arg) = (double) mp_get_titleset_length(d->vts_file, d->tt_srpt, d->cur_title-1)/1000.0; return 1; } + case STREAM_CTRL_GET_START_TIME: + { + *((double *)arg) = 0; + return 1; + } case STREAM_CTRL_GET_NUM_TITLES: { *((unsigned int *)arg) = d->vmg_file->tt_srpt->nr_of_srpts; -- cgit v1.2.3