summaryrefslogtreecommitdiffstats
path: root/libmpdemux/demux_lavf.c
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-14 10:03:42 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2007-04-14 10:03:42 +0000
commitef91f5aad83e6f017cbfa37339ae037d9f845800 (patch)
treeee883c495b57a96608590170dd4a62a36841a60f /libmpdemux/demux_lavf.c
parentd6e892148652175a49f9376228cf677169df85c2 (diff)
downloadmpv-ef91f5aad83e6f017cbfa37339ae037d9f845800.tar.bz2
mpv-ef91f5aad83e6f017cbfa37339ae037d9f845800.tar.xz
Add lavf_preferred demuxer for lavf formats we want to be probed
before our native demuxers and remove some now unneeded file-extension hacks. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22989 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_lavf.c')
-rw-r--r--libmpdemux/demux_lavf.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/libmpdemux/demux_lavf.c b/libmpdemux/demux_lavf.c
index 8cee30b154..943739d323 100644
--- a/libmpdemux/demux_lavf.c
+++ b/libmpdemux/demux_lavf.c
@@ -210,6 +210,29 @@ static int lavf_check_file(demuxer_t *demuxer){
return DEMUXER_TYPE_LAVF;
}
+
+static const char *preferred_list[] = {
+ "dxa",
+ "wv",
+ "nuv",
+ "nut",
+ "gxf",
+ "mxf",
+ NULL
+};
+
+static int lavf_check_preferred_file(demuxer_t *demuxer){
+ if (lavf_check_file(demuxer)) {
+ char **p = preferred_list;
+ lavf_priv_t *priv = demuxer->priv;
+ while (*p) {
+ if (strcmp(*p, priv->avif->name) == 0)
+ return DEMUXER_TYPE_LAVF_PREFERRED;
+ p++;
+ }
+ }
+ return 0;
+}
static demuxer_t* demux_open_lavf(demuxer_t *demuxer){
AVFormatContext *avfc;
@@ -609,3 +632,18 @@ demuxer_desc_t demuxer_desc_lavf = {
demux_lavf_control
};
+demuxer_desc_t demuxer_desc_lavf_preferred = {
+ "libavformat preferred demuxer",
+ "lavfpref",
+ "libavformat",
+ "Michael Niedermayer",
+ "supports many formats, requires libavformat",
+ DEMUXER_TYPE_LAVF_PREFERRED,
+ 0, // Check after other demuxer
+ lavf_check_preferred_file,
+ demux_lavf_fill_buffer,
+ demux_open_lavf,
+ demux_close_lavf,
+ demux_seek_lavf,
+ demux_lavf_control
+};