From 005375bb7d095d06c46a1d47223e0381439dc3ea Mon Sep 17 00:00:00 2001 From: wm4 Date: Wed, 5 Jun 2013 01:59:04 +0200 Subject: core: use STREAM_CTRL instead of accessing stream_dvd internals Some code in mplayer.c did stuff like accessing (dvd_priv_t *)st->priv. Do this indirectly by introducing STREAM_CTRL_GET_DVD_INFO. This is extremely specific to DVD, so it's not worth abstracting this further. This is a preparation for turning the cache into an actual stream, which simply wraps the cached stream. There are other streams which are accessed in the way DVD was, at least TV/radio/DVB. We assume these can't be used with the cache. The code doesn't look thread-safe or fork aware. --- stream/stream_dvd.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'stream/stream_dvd.c') diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c index aa113667fd..1a641de5cd 100644 --- a/stream/stream_dvd.c +++ b/stream/stream_dvd.c @@ -747,6 +747,14 @@ static int control(stream_t *stream,int cmd,void* arg) } case STREAM_CTRL_MANAGES_TIMELINE: return STREAM_OK; + case STREAM_CTRL_GET_DVD_INFO: + { + struct stream_dvd_info_req *req = arg; + memset(req, 0, sizeof(*req)); + req->num_subs = dvd_number_of_subs(stream); + memcpy(req->palette, d->cur_pgc->palette, sizeof(req->palette)); + return STREAM_OK; + } } return STREAM_UNSUPPORTED; } -- cgit v1.2.3