summaryrefslogtreecommitdiffstats
path: root/demux/demux_lavf.c
diff options
context:
space:
mode:
Diffstat (limited to 'demux/demux_lavf.c')
-rw-r--r--demux/demux_lavf.c67
1 files changed, 0 insertions, 67 deletions
diff --git a/demux/demux_lavf.c b/demux/demux_lavf.c
index 5d6c2725dc..bccc0c53a1 100644
--- a/demux/demux_lavf.c
+++ b/demux/demux_lavf.c
@@ -210,7 +210,6 @@ typedef struct lavf_priv {
AVIOContext *pb;
struct sh_stream **streams; // NULL for unknown streams
int num_streams;
- int cur_program;
char *mime_type;
double seek_delay;
bool optical_crap_hack;
@@ -1181,74 +1180,8 @@ static int demux_lavf_control(demuxer_t *demuxer, int cmd, void *arg)
switch (cmd) {
case DEMUXER_CTRL_SWITCHED_TRACKS:
- {
select_tracks(demuxer, 0);
return CONTROL_OK;
- }
- case DEMUXER_CTRL_IDENTIFY_PROGRAM:
- {
- demux_program_t *prog = arg;
- AVProgram *program;
- int p, i;
- int start;
-
- add_new_streams(demuxer);
-
- prog->vid = prog->aid = prog->sid = -2;
- if (priv->avfc->nb_programs < 1)
- return CONTROL_FALSE;
-
- if (prog->progid == -1) {
- p = 0;
- while (p < priv->avfc->nb_programs && priv->avfc->programs[p]->id != priv->cur_program)
- p++;
- p = (p + 1) % priv->avfc->nb_programs;
- } else {
- for (i = 0; i < priv->avfc->nb_programs; i++)
- if (priv->avfc->programs[i]->id == prog->progid)
- break;
- if (i == priv->avfc->nb_programs)
- return CONTROL_FALSE;
- p = i;
- }
- start = p;
-redo:
- prog->vid = prog->aid = prog->sid = -2;
- program = priv->avfc->programs[p];
- for (i = 0; i < program->nb_stream_indexes; i++) {
- struct sh_stream *stream = priv->streams[program->stream_index[i]];
- if (stream) {
- switch (stream->type) {
- case STREAM_VIDEO:
- if (prog->vid == -2)
- prog->vid = stream->demuxer_id;
- break;
- case STREAM_AUDIO:
- if (prog->aid == -2)
- prog->aid = stream->demuxer_id;
- break;
- case STREAM_SUB:
- if (prog->sid == -2)
- prog->sid = stream->demuxer_id;
- break;
- }
- }
- }
- if (prog->progid == -1 && prog->vid == -2 && prog->aid == -2) {
- p = (p + 1) % priv->avfc->nb_programs;
- if (p == start)
- return CONTROL_FALSE;
- goto redo;
- }
- priv->cur_program = prog->progid = program->id;
-
- mp_tags_copy_from_av_dictionary(demuxer->metadata, priv->avfc->programs[p]->metadata);
- update_metadata(demuxer);
- // Enforce metadata update even if no explicit METADATA_UPDATED since we switched program.
- demux_metadata_changed(demuxer);
-
- return CONTROL_OK;
- }
case DEMUXER_CTRL_REPLACE_STREAM:
if (priv->own_stream)
free_stream(priv->stream);