avformat/mpeg: Use av_find_input_format() instead of directly linking to the demuxer
authorMichael Niedermayer <michaelni@gmx.at>
Sat, 25 Oct 2014 14:28:41 +0000 (16:28 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Sat, 25 Oct 2014 14:28:41 +0000 (16:28 +0200)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mpeg.c

index 369affd..e8e1b08 100644 (file)
@@ -683,6 +683,7 @@ static int vobsub_read_header(AVFormatContext *s)
     int stream_id = -1;
     char id[64] = {0};
     char alt[MAX_LINE_SIZE] = {0};
+    AVInputFormat *iformat;
 
     sub_name = av_strdup(s->filename);
     fname_len = strlen(sub_name);
@@ -696,6 +697,9 @@ static int vobsub_read_header(AVFormatContext *s)
     memcpy(ext, !strncmp(ext, "IDX", 3) ? "SUB" : "sub", 3);
     av_log(s, AV_LOG_VERBOSE, "IDX/SUB: %s -> %s\n", s->filename, sub_name);
 
+    if (!(iformat = av_find_input_format("mpeg")))
+        return AVERROR_DEMUXER_NOT_FOUND;
+
     vobsub->sub_ctx = avformat_alloc_context();
     if (!vobsub->sub_ctx)
         return AVERROR(ENOMEM);
@@ -703,7 +707,7 @@ static int vobsub_read_header(AVFormatContext *s)
     if ((ret = ff_copy_whitelists(vobsub->sub_ctx, s)) < 0)
         goto end;
 
-    ret = avformat_open_input(&vobsub->sub_ctx, sub_name, &ff_mpegps_demuxer, NULL);
+    ret = avformat_open_input(&vobsub->sub_ctx, sub_name, iformat, NULL);
     if (ret < 0) {
         av_log(s, AV_LOG_ERROR, "Unable to open %s as MPEG subtitles\n", sub_name);
         goto end;