diff options
-rw-r--r-- | stream/stream.c | 9 | ||||
-rw-r--r-- | stream/stream.h | 4 | ||||
-rw-r--r-- | stream/stream_avdevice.c | 2 | ||||
-rw-r--r-- | stream/stream_bluray.c | 14 | ||||
-rw-r--r-- | stream/stream_cdda.c | 16 | ||||
-rw-r--r-- | stream/stream_dvb.c | 14 | ||||
-rw-r--r-- | stream/stream_dvd.c | 20 | ||||
-rw-r--r-- | stream/stream_file.c | 6 | ||||
-rw-r--r-- | stream/stream_lavf.c | 10 | ||||
-rw-r--r-- | stream/stream_memory.c | 6 | ||||
-rw-r--r-- | stream/stream_mf.c | 6 | ||||
-rw-r--r-- | stream/stream_null.c | 6 | ||||
-rw-r--r-- | stream/stream_pvr.c | 6 | ||||
-rw-r--r-- | stream/stream_radio.c | 14 | ||||
-rw-r--r-- | stream/stream_smb.c | 6 | ||||
-rw-r--r-- | stream/stream_tv.c | 14 | ||||
-rw-r--r-- | stream/stream_vcd.c | 6 |
17 files changed, 82 insertions, 77 deletions
diff --git a/stream/stream.c b/stream/stream.c index 4650535890..0832cb7f8a 100644 --- a/stream/stream.c +++ b/stream/stream.c @@ -150,9 +150,12 @@ void mp_url_unescape_inplace(char *buf) static const char *find_url_opt(struct stream *s, const char *opt) { - for (int n = 0; s->info->url_options && s->info->url_options[n][0]; n++) { - if (strcmp(s->info->url_options[n][0], opt) == 0) - return s->info->url_options[n][1]; + for (int n = 0; s->info->url_options && s->info->url_options[n]; n++) { + const char *entry = s->info->url_options[n]; + const char *t = strchr(entry, '='); + assert(t); + if (strncmp(opt, entry, t - entry) == 0) + return t + 1; } return NULL; } diff --git a/stream/stream.h b/stream/stream.h index 27043206c9..1009a2a7b0 100644 --- a/stream/stream.h +++ b/stream/stream.h @@ -111,11 +111,11 @@ typedef struct stream_info_st { const char *name; // opts is set from ->opts int (*open)(struct stream *st, int mode); - const char *protocols[MAX_STREAM_PROTOCOLS]; + const char **protocols; int priv_size; const void *priv_defaults; const struct m_option *options; - const char *url_options[][2]; + const char **url_options; } stream_info_t; typedef struct stream { diff --git a/stream/stream_avdevice.c b/stream/stream_avdevice.c index e1da3b2958..5e8aefd018 100644 --- a/stream/stream_avdevice.c +++ b/stream/stream_avdevice.c @@ -34,5 +34,5 @@ static int open_f(stream_t *stream, int mode) const stream_info_t stream_info_avdevice = { .name = "avdevice", .open = open_f, - .protocols = { "avdevice", "av", NULL }, + .protocols = (const char*[]){ "avdevice", "av", NULL }, }; diff --git a/stream/stream_bluray.c b/stream/stream_bluray.c index 61e63151fb..69e47a0589 100644 --- a/stream/stream_bluray.c +++ b/stream/stream_bluray.c @@ -402,15 +402,15 @@ err_no_info: } const stream_info_t stream_info_bluray = { - "bd", - bluray_stream_open, - { "bd", "br", "bluray", NULL }, + .name = "bd", + .open = bluray_stream_open, + .protocols = (const char*[]){ "bd", "br", "bluray", NULL }, .priv_defaults = &bluray_stream_priv_dflts, .priv_size = sizeof(struct bluray_priv_s), .options = bluray_stream_opts_fields, - .url_options = { - {"hostname", "title"}, - {"filename", "device"}, - {0} + .url_options = (const char*[]){ + "hostname=title", + "filename=device", + NULL }, }; diff --git a/stream/stream_cdda.c b/stream/stream_cdda.c index 26ad560cae..4c114ca1ac 100644 --- a/stream/stream_cdda.c +++ b/stream/stream_cdda.c @@ -460,16 +460,16 @@ static int open_cdda(stream_t *st, int m) } const stream_info_t stream_info_cdda = { - "cdda", - open_cdda, - {"cdda", NULL }, + .name = "cdda", + .open = open_cdda, + .protocols = (const char*[]){"cdda", NULL }, .priv_size = sizeof(cdda_priv), .priv_defaults = &cdda_dflts, .options = cdda_params_fields, - .url_options = { - {"hostname", "span"}, - {"port", "speed"}, - {"filename", "device"}, - {0} + .url_options = (const char*[]){ + "hostname=span", + "port=speed", + "filename=device", + NULL }, }; diff --git a/stream/stream_dvb.c b/stream/stream_dvb.c index d96aea6905..af79a727eb 100644 --- a/stream/stream_dvb.c +++ b/stream/stream_dvb.c @@ -830,15 +830,15 @@ dvb_config_t *dvb_get_config(void) const stream_info_t stream_info_dvb = { - "dvbin", - dvb_open, - { "dvb", NULL }, + .name = "dvbin", + .open = dvb_open, + .protocols = (const char*[]){ "dvb", NULL }, .priv_size = sizeof(dvb_priv_t), .priv_defaults = &stream_defaults, .options = stream_params, - .url_options = { - {"hostname", "prog"}, - {"username", "card"}, - {0} + .url_options = (const char*[]){ + "hostname=prog", + "username=card", + NULL }, }; diff --git a/stream/stream_dvd.c b/stream/stream_dvd.c index 340002fb46..7f5280c1c3 100644 --- a/stream/stream_dvd.c +++ b/stream/stream_dvd.c @@ -1078,21 +1078,21 @@ static int ifo_stream_open (stream_t *stream, int mode) } const stream_info_t stream_info_dvd = { - "dvd", - open_s, - { "dvd", NULL }, + .name = "dvd", + .open = open_s, + .protocols = (const char*[]){ "dvd", NULL }, .priv_size = sizeof(dvd_priv_t), .priv_defaults = &stream_priv_dflts, .options = stream_opts_fields, - .url_options = { - {"hostname", "title"}, - {"filename", "device"}, - {0} + .url_options = (const char*[]){ + "hostname=title", + "filename=device", + NULL }, }; const stream_info_t stream_info_ifo = { - "ifo", - ifo_stream_open, - { "file", "", NULL }, + .name = "ifo", + .open = ifo_stream_open, + .protocols = (const char*[]){ "file", "", NULL }, }; diff --git a/stream/stream_file.c b/stream/stream_file.c index 87e77d7bf3..b638fdddf0 100644 --- a/stream/stream_file.c +++ b/stream/stream_file.c @@ -187,7 +187,7 @@ static int open_f(stream_t *stream, int mode) } const stream_info_t stream_info_file = { - "file", - open_f, - { "file", "", NULL }, + .name = "file", + .open = open_f, + .protocols = (const char*[]){ "file", "", NULL }, }; diff --git a/stream/stream_lavf.c b/stream/stream_lavf.c index cedea2fb4b..9a25d7524a 100644 --- a/stream/stream_lavf.c +++ b/stream/stream_lavf.c @@ -303,8 +303,10 @@ done: } const stream_info_t stream_info_ffmpeg = { - "ffmpeg", - open_f, - { "lavf", "ffmpeg", "rtmp", "rtsp", "http", "https", "mms", "mmst", "mmsh", - "mmshttp", "udp", "ftp", "rtp", "httpproxy", NULL }, + .name = "ffmpeg", + .open = open_f, + .protocols = (const char*[]){ + "lavf", "ffmpeg", "rtmp", "rtsp", "http", "https", "mms", "mmst", "mmsh", + "mmshttp", "udp", "ftp", "rtp", "httpproxy", + NULL }, }; diff --git a/stream/stream_memory.c b/stream/stream_memory.c index eaf74bb07e..ff2b42e020 100644 --- a/stream/stream_memory.c +++ b/stream/stream_memory.c @@ -72,7 +72,7 @@ static int open_f(stream_t *stream, int mode) } const stream_info_t stream_info_memory = { - "memory", - open_f, - { "memory", NULL }, + .name = "memory", + .open = open_f, + .protocols = (const char*[]){ "memory", NULL }, }; diff --git a/stream/stream_mf.c b/stream/stream_mf.c index 720a73f836..9b80a73d58 100644 --- a/stream/stream_mf.c +++ b/stream/stream_mf.c @@ -38,7 +38,7 @@ mf_stream_open (stream_t *stream, int mode) } const stream_info_t stream_info_mf = { - "mf", - mf_stream_open, - { "mf", NULL }, + .name = "mf", + .open = mf_stream_open, + .protocols = (const char*[]){ "mf", NULL }, }; diff --git a/stream/stream_null.c b/stream/stream_null.c index 2e2b7886f7..c9a0a430e2 100644 --- a/stream/stream_null.c +++ b/stream/stream_null.c @@ -32,7 +32,7 @@ static int open_s(stream_t *stream,int mode) const stream_info_t stream_info_null = { - "null", - open_s, - { "null", NULL }, + .name = "null", + .open = open_s, + .protocols = (const char*[]){ "null", NULL }, }; diff --git a/stream/stream_pvr.c b/stream/stream_pvr.c index ded2751e11..1b11584803 100644 --- a/stream/stream_pvr.c +++ b/stream/stream_pvr.c @@ -1757,7 +1757,7 @@ pvr_force_freq_step (stream_t *stream, int step) } const stream_info_t stream_info_pvr = { - "pvr", - pvr_stream_open, - { "pvr", NULL }, + .name = "pvr", + .open = pvr_stream_open, + .protocols = (const char*[]){ "pvr", NULL }, }; diff --git a/stream/stream_radio.c b/stream/stream_radio.c index 643b304936..de2f474bc9 100644 --- a/stream/stream_radio.c +++ b/stream/stream_radio.c @@ -959,15 +959,15 @@ static void close_s(struct stream *stream){ } const stream_info_t stream_info_radio = { - "radio", - open_s, - { "radio", NULL }, + .name = "radio", + .open = open_s, + .protocols = (const char*[]){ "radio", NULL }, .priv_size = sizeof(radio_param_t), .priv_defaults = &stream_radio_defaults, .options = stream_opts_fields, - .url_options = { - {"hostname", "freqchannel"}, - {"filename", "capture"}, - {0} + .url_options = (const char*[]){ + "hostname=freqchannel", + "filename=capture", + NULL }, }; diff --git a/stream/stream_smb.c b/stream/stream_smb.c index d50258be97..3fcfb7e459 100644 --- a/stream/stream_smb.c +++ b/stream/stream_smb.c @@ -166,7 +166,7 @@ static int open_f (stream_t *stream, int mode) } const stream_info_t stream_info_smb = { - "smb", - open_f, - {"smb", NULL}, + .name = "smb", + .open = open_f, + .protocols = (const char*[]){"smb", NULL}, }; diff --git a/stream/stream_tv.c b/stream/stream_tv.c index ef6f49b4b6..b1c2e63167 100644 --- a/stream/stream_tv.c +++ b/stream/stream_tv.c @@ -97,15 +97,15 @@ tv_stream_open (stream_t *stream, int mode) } const stream_info_t stream_info_tv = { - "tv", - tv_stream_open, - { "tv", NULL }, + .name = "tv", + .open = tv_stream_open, + .protocols = (const char*[]){ "tv", NULL }, .priv_size = sizeof(tv_param_t), .priv_defaults = &stream_tv_defaults, .options = stream_opts_fields, - .url_options = { - {"hostname", "channel"}, - {"filename", "input"}, - {0} + .url_options = (const char*[]){ + "hostname=channel", + "filename=input", + NULL }, }; diff --git a/stream/stream_vcd.c b/stream/stream_vcd.c index 6ec8453536..dacf2763f8 100644 --- a/stream/stream_vcd.c +++ b/stream/stream_vcd.c @@ -177,7 +177,7 @@ static int open_s(stream_t *stream,int mode) } const stream_info_t stream_info_vcd = { - "vcd", - open_s, - { "vcd", NULL }, + .name = "vcd", + .open = open_s, + .protocols = (const char*[]){ "vcd", NULL }, }; |