summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demuxer.c
diff options
context:
space:
mode:
Diffstat (limited to 'libmpdemux/demuxer.c')
-rw-r--r--libmpdemux/demuxer.c68
1 files changed, 16 insertions, 52 deletions
diff --git a/libmpdemux/demuxer.c b/libmpdemux/demuxer.c
index 0cce5e8543..e77e32b942 100644
--- a/libmpdemux/demuxer.c
+++ b/libmpdemux/demuxer.c
@@ -58,41 +58,19 @@ extern const demuxer_desc_t demuxer_desc_rawvideo;
extern const demuxer_desc_t demuxer_desc_tv;
extern const demuxer_desc_t demuxer_desc_mf;
extern const demuxer_desc_t demuxer_desc_avi;
-extern const demuxer_desc_t demuxer_desc_y4m;
extern const demuxer_desc_t demuxer_desc_asf;
extern const demuxer_desc_t demuxer_desc_real;
-extern const demuxer_desc_t demuxer_desc_smjpeg;
extern const demuxer_desc_t demuxer_desc_matroska;
extern const demuxer_desc_t demuxer_desc_realaudio;
-extern const demuxer_desc_t demuxer_desc_vqf;
-extern const demuxer_desc_t demuxer_desc_mov;
extern const demuxer_desc_t demuxer_desc_vivo;
-extern const demuxer_desc_t demuxer_desc_fli;
-extern const demuxer_desc_t demuxer_desc_film;
-extern const demuxer_desc_t demuxer_desc_roq;
extern const demuxer_desc_t demuxer_desc_gif;
-extern const demuxer_desc_t demuxer_desc_ogg;
extern const demuxer_desc_t demuxer_desc_avs;
-extern const demuxer_desc_t demuxer_desc_pva;
-extern const demuxer_desc_t demuxer_desc_nsv;
-extern const demuxer_desc_t demuxer_desc_mpeg_ts;
-extern const demuxer_desc_t demuxer_desc_lmlm4;
-extern const demuxer_desc_t demuxer_desc_mpeg_ps;
-extern const demuxer_desc_t demuxer_desc_mpeg_pes;
-extern const demuxer_desc_t demuxer_desc_mpeg_es;
-extern const demuxer_desc_t demuxer_desc_mpeg_gxf;
-extern const demuxer_desc_t demuxer_desc_mpeg4_es;
-extern const demuxer_desc_t demuxer_desc_h264_es;
extern const demuxer_desc_t demuxer_desc_rawdv;
-extern const demuxer_desc_t demuxer_desc_mpc;
extern const demuxer_desc_t demuxer_desc_audio;
-extern const demuxer_desc_t demuxer_desc_mpeg_ty;
extern const demuxer_desc_t demuxer_desc_rtp;
extern const demuxer_desc_t demuxer_desc_rtp_nemesi;
extern const demuxer_desc_t demuxer_desc_lavf;
extern const demuxer_desc_t demuxer_desc_lavf_preferred;
-extern const demuxer_desc_t demuxer_desc_aac;
-extern const demuxer_desc_t demuxer_desc_nut;
extern const demuxer_desc_t demuxer_desc_mng;
/* Please do not add any new demuxers here. If you want to implement a new
@@ -110,39 +88,16 @@ const demuxer_desc_t *const demuxer_list[] = {
&demuxer_desc_mf,
&demuxer_desc_lavf_preferred,
&demuxer_desc_avi,
- &demuxer_desc_y4m,
&demuxer_desc_asf,
- &demuxer_desc_nsv,
- &demuxer_desc_real,
- &demuxer_desc_smjpeg,
&demuxer_desc_matroska,
&demuxer_desc_realaudio,
- &demuxer_desc_vqf,
- &demuxer_desc_mov,
- &demuxer_desc_vivo,
- &demuxer_desc_fli,
- &demuxer_desc_film,
- &demuxer_desc_roq,
#ifdef CONFIG_GIF
&demuxer_desc_gif,
#endif
-#ifdef CONFIG_OGGVORBIS
- &demuxer_desc_ogg,
-#endif
#ifdef CONFIG_WIN32DLL
&demuxer_desc_avs,
#endif
- &demuxer_desc_pva,
- &demuxer_desc_mpeg_ts,
- &demuxer_desc_lmlm4,
- &demuxer_desc_mpeg_ps,
- &demuxer_desc_mpeg_pes,
- &demuxer_desc_mpeg_es,
- &demuxer_desc_mpeg_gxf,
- &demuxer_desc_mpeg4_es,
- &demuxer_desc_h264_es,
&demuxer_desc_audio,
- &demuxer_desc_mpeg_ty,
#ifdef CONFIG_LIVE555
&demuxer_desc_rtp,
#endif
@@ -150,16 +105,9 @@ const demuxer_desc_t *const demuxer_list[] = {
&demuxer_desc_rtp_nemesi,
#endif
&demuxer_desc_lavf,
-#ifdef CONFIG_MUSEPACK
- &demuxer_desc_mpc,
-#endif
#ifdef CONFIG_LIBDV095
&demuxer_desc_rawdv,
#endif
- &demuxer_desc_aac,
-#ifdef CONFIG_LIBNUT
- &demuxer_desc_nut,
-#endif
#ifdef CONFIG_MNG
&demuxer_desc_mng,
#endif
@@ -1002,6 +950,22 @@ static struct demuxer *demux_open_stream(struct MPOpts *opts,
struct demuxer *demuxer = NULL;
const struct demuxer_desc *desc;
+ // Some code (e.g. dvd stuff, network code, or extension.c) explicitly
+ // request certain file formats. The list of formats are always handled by
+ // libavformat.
+ // Maybe attempts should be made to convert the mplayer format to the libav
+ // format, instead of reyling on libav to auto-detect the stream's format
+ // correctly.
+ switch (file_format) {
+ case DEMUXER_TYPE_MPEG_PS:
+ case DEMUXER_TYPE_MPEG_TS:
+ case DEMUXER_TYPE_Y4M:
+ case DEMUXER_TYPE_NSV:
+ case DEMUXER_TYPE_AAC:
+ case DEMUXER_TYPE_MPC:
+ file_format = DEMUXER_TYPE_LAVF;
+ }
+
// If somebody requested a demuxer check it
if (file_format) {
desc = get_demuxer_desc_from_type(file_format);