[MPlayer-cvslog] r22989 - in trunk/libmpdemux: demux_lavf.c demuxer.c demuxer.h extension.c
reimar
subversion at mplayerhq.hu
Sat Apr 14 12:03:42 CEST 2007
Author: reimar
Date: Sat Apr 14 12:03:42 2007
New Revision: 22989
Modified:
trunk/libmpdemux/demux_lavf.c
trunk/libmpdemux/demuxer.c
trunk/libmpdemux/demuxer.h
trunk/libmpdemux/extension.c
Log:
Add lavf_preferred demuxer for lavf formats we want to be probed
before our native demuxers and remove some now unneeded file-extension
hacks.
Modified: trunk/libmpdemux/demux_lavf.c
==============================================================================
--- trunk/libmpdemux/demux_lavf.c (original)
+++ trunk/libmpdemux/demux_lavf.c Sat Apr 14 12:03:42 2007
@@ -210,6 +210,29 @@ static int lavf_check_file(demuxer_t *de
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
+};
Modified: trunk/libmpdemux/demuxer.c
==============================================================================
--- trunk/libmpdemux/demuxer.c (original)
+++ trunk/libmpdemux/demuxer.c Sat Apr 14 12:03:42 2007
@@ -64,6 +64,7 @@ extern demuxer_desc_t demuxer_desc_xmms;
extern demuxer_desc_t demuxer_desc_mpeg_ty;
extern demuxer_desc_t demuxer_desc_rtp;
extern demuxer_desc_t demuxer_desc_lavf;
+extern demuxer_desc_t demuxer_desc_lavf_preferred;
extern demuxer_desc_t demuxer_desc_aac;
extern demuxer_desc_t demuxer_desc_nut;
@@ -74,6 +75,7 @@ demuxer_desc_t* demuxer_list[] = {
&demuxer_desc_tv,
#endif
&demuxer_desc_mf,
+ &demuxer_desc_lavf_preferred,
&demuxer_desc_avi,
&demuxer_desc_y4m,
&demuxer_desc_asf,
Modified: trunk/libmpdemux/demuxer.h
==============================================================================
--- trunk/libmpdemux/demuxer.h (original)
+++ trunk/libmpdemux/demuxer.h Sat Apr 14 12:03:42 2007
@@ -55,11 +55,12 @@
#define DEMUXER_TYPE_MPEG_PES 41
#define DEMUXER_TYPE_MPEG_GXF 42
#define DEMUXER_TYPE_NUT 43
+#define DEMUXER_TYPE_LAVF_PREFERRED 44
// This should always match the higest demuxer type number.
// Unless you want to disallow users to force the demuxer to some types
#define DEMUXER_TYPE_MIN 0
-#define DEMUXER_TYPE_MAX 43
+#define DEMUXER_TYPE_MAX 44
#define DEMUXER_TYPE_DEMUXERS (1<<16)
// A virtual demuxer type for the network code
Modified: trunk/libmpdemux/extension.c
==============================================================================
--- trunk/libmpdemux/extension.c (original)
+++ trunk/libmpdemux/extension.c Sat Apr 14 12:03:42 2007
@@ -57,20 +57,16 @@ static struct {
#ifdef USE_WIN32DLL
{ "avs", DEMUXER_TYPE_AVS },
#endif
- { "nut", DEMUXER_TYPE_LAVF },
{ "swf", DEMUXER_TYPE_LAVF },
{ "flv", DEMUXER_TYPE_LAVF },
{ "302", DEMUXER_TYPE_LAVF },
{ "264", DEMUXER_TYPE_H264_ES },
{ "26l", DEMUXER_TYPE_H264_ES },
{ "ac3", DEMUXER_TYPE_LAVF },
- { "wv", DEMUXER_TYPE_LAVF },
// At least the following are hacks against broken autodetection
// that should not be there
-// demux_audio is too greedy
- { "dxa", DEMUXER_TYPE_LAVF },
};
int demuxer_type_by_filename(char* filename){
More information about the MPlayer-cvslog
mailing list