summaryrefslogtreecommitdiffstats
path: root/demux
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2013-07-11 21:10:42 +0200
committerwm4 <wm4@nowhere>2013-07-12 21:56:40 +0200
commit52c3eb69765a0d1070bf240353095c8ff546765b (patch)
treedb654a9798f4941dbc3b57c8569fcdeb0b21d24a /demux
parentd17d2fdc7c536821b3fea8c4a37c0ad09fc487db (diff)
downloadmpv-52c3eb69765a0d1070bf240353095c8ff546765b.tar.bz2
mpv-52c3eb69765a0d1070bf240353095c8ff546765b.tar.xz
core: change open_stream and demux_open signature
This removes the dependency on DEMUXER_TYPE_* and the file_format parameter from the stream open functions. Remove some of the playlist handling code. It looks like this was needed only for loading linked mov files with demux_mov (which was removed long ago). Delete a minor bit of dead network-related code from stream.c as well.
Diffstat (limited to 'demux')
-rw-r--r--demux/demux.c40
-rw-r--r--demux/demux.h9
-rw-r--r--demux/demux_mf.c2
3 files changed, 19 insertions, 32 deletions
diff --git a/demux/demux.c b/demux/demux.c
index 64fee955ed..5a0e05d48f 100644
--- a/demux/demux.c
+++ b/demux/demux.c
@@ -242,8 +242,7 @@ static const demuxer_desc_t *get_demuxer_desc_from_type(int file_format)
}
-static demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type,
- char *filename)
+static demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type)
{
struct demuxer *d = talloc_zero(NULL, struct demuxer);
d->stream = stream;
@@ -259,8 +258,8 @@ static demuxer_t *new_demuxer(struct MPOpts *opts, stream_t *stream, int type,
mp_msg(MSGT_DEMUXER, MSGL_ERR,
"BUG! Invalid demuxer type in new_demuxer(), "
"big troubles ahead.\n");
- if (filename) // Filename hack for avs_check_file
- d->filename = strdup(filename);
+ if (stream->url)
+ d->filename = strdup(stream->url);
stream_seek(stream, stream->start_pos);
return d;
}
@@ -590,13 +589,12 @@ static int get_demuxer_type_from_name(char *demuxer_name, int *force)
static struct demuxer *open_given_type(struct MPOpts *opts,
const struct demuxer_desc *desc,
struct stream *stream, bool force,
- char *filename,
struct demuxer_params *params)
{
struct demuxer *demuxer;
int fformat = desc->type;
mp_msg(MSGT_DEMUXER, MSGL_V, "Trying demuxer: %s\n", desc->name);
- demuxer = new_demuxer(opts, stream, desc->type, filename);
+ demuxer = new_demuxer(opts, stream, desc->type);
demuxer->params = params;
if (!force) {
if (desc->check_file)
@@ -644,20 +642,20 @@ static struct demuxer *open_given_type(struct MPOpts *opts,
"BUG: recursion to nonexistent file format\n");
return NULL;
}
- return open_given_type(opts, desc, stream, false, filename, params);
+ return open_given_type(opts, desc, stream, false, params);
}
fail:
free_demuxer(demuxer);
return NULL;
}
-struct demuxer *demux_open_withparams(struct MPOpts *opts,
- struct stream *stream, int file_format,
- char *force_format, char *filename,
- struct demuxer_params *params)
+struct demuxer *demux_open(struct stream *stream, char *force_format,
+ struct demuxer_params *params, struct MPOpts *opts)
{
struct demuxer *demuxer = NULL;
const struct demuxer_desc *desc;
+ if (!force_format)
+ force_format = opts->demuxer_name;
int force = 0;
int demuxer_type;
@@ -666,6 +664,7 @@ struct demuxer *demux_open_withparams(struct MPOpts *opts,
force_format);
return NULL;
}
+ int file_format = 0;
if (demuxer_type)
file_format = demuxer_type;
@@ -675,13 +674,13 @@ struct demuxer *demux_open_withparams(struct MPOpts *opts,
if (!desc)
// should only happen with obsolete -demuxer 99 numeric format
return NULL;
- return open_given_type(opts, desc, stream, force, filename, params);
+ return open_given_type(opts, desc, stream, force, params);
}
// Test demuxers with safe file checks
for (int i = 0; (desc = demuxer_list[i]); i++) {
if (desc->safe_check) {
- demuxer = open_given_type(opts, desc, stream, false, filename, params);
+ demuxer = open_given_type(opts, desc, stream, false, params);
if (demuxer)
return demuxer;
}
@@ -690,10 +689,10 @@ struct demuxer *demux_open_withparams(struct MPOpts *opts,
// Ok. We're over the stable detectable fileformats, the next ones are
// a bit fuzzy. So by default (extension_parsing==1) try extension-based
// detection first:
- if (filename && opts->extension_parsing == 1) {
- desc = get_demuxer_desc_from_type(demuxer_type_by_filename(filename));
+ if (stream->url && opts->extension_parsing == 1) {
+ desc = get_demuxer_desc_from_type(demuxer_type_by_filename(stream->url));
if (desc)
- demuxer = open_given_type(opts, desc, stream, false, filename, params);
+ demuxer = open_given_type(opts, desc, stream, false, params);
if (demuxer)
return demuxer;
}
@@ -701,7 +700,7 @@ struct demuxer *demux_open_withparams(struct MPOpts *opts,
// Finally try detection for demuxers with unsafe checks
for (int i = 0; (desc = demuxer_list[i]); i++) {
if (!desc->safe_check && desc->check_file) {
- demuxer = open_given_type(opts, desc, stream, false, filename, params);
+ demuxer = open_given_type(opts, desc, stream, false, params);
if (demuxer)
return demuxer;
}
@@ -710,13 +709,6 @@ struct demuxer *demux_open_withparams(struct MPOpts *opts,
return NULL;
}
-struct demuxer *demux_open(struct MPOpts *opts, stream_t *vs, int file_format,
- char *filename)
-{
- return demux_open_withparams(opts, vs, file_format, opts->demuxer_name,
- filename, NULL);
-}
-
void demux_flush(demuxer_t *demuxer)
{
for (int n = 0; n < demuxer->num_streams; n++)
diff --git a/demux/demux.h b/demux/demux.h
index c43f0282fb..f64a02dce1 100644
--- a/demux/demux.h
+++ b/demux/demux.h
@@ -230,13 +230,8 @@ bool demux_stream_eof(struct sh_stream *sh);
struct sh_stream *new_sh_stream(struct demuxer *demuxer, enum stream_type type);
-struct demuxer *demux_open(struct MPOpts *opts, struct stream *stream,
- int file_format, char *filename);
-
-struct demuxer *demux_open_withparams(struct MPOpts *opts,
- struct stream *stream, int file_format,
- char *force_format, char *filename,
- struct demuxer_params *params);
+struct demuxer *demux_open(struct stream *stream, char *force_format,
+ struct demuxer_params *params, struct MPOpts *opts);
void demux_flush(struct demuxer *demuxer);
int demux_seek(struct demuxer *demuxer, float rel_seek_secs, float audio_delay,
diff --git a/demux/demux_mf.c b/demux/demux_mf.c
index 3a72558208..5e3469a0f1 100644
--- a/demux/demux_mf.c
+++ b/demux/demux_mf.c
@@ -74,7 +74,7 @@ static int demux_mf_fill_buffer(demuxer_t *demuxer)
if (!stream) {
char *filename = mf->names[mf->curr_frame];
if (filename)
- stream = open_stream(filename, demuxer->opts, NULL);
+ stream = stream_open(filename, demuxer->opts);
}
if (stream) {