diff options
Diffstat (limited to 'demux')
-rw-r--r-- | demux/demux.h | 5 | ||||
-rw-r--r-- | demux/demux_lavf.c | 67 |
2 files changed, 0 insertions, 72 deletions
diff --git a/demux/demux.h b/demux/demux.h index 838314bd4b..3a4b7dd331 100644 --- a/demux/demux.h +++ b/demux/demux.h @@ -244,11 +244,6 @@ typedef struct demuxer { struct stream *stream; } demuxer_t; -typedef struct { - int progid; //program id - int aid, vid, sid; //audio, video and subtitle id -} demux_program_t; - void demux_free(struct demuxer *demuxer); void demux_cancel_and_free(struct demuxer *demuxer); 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); |