summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-30 21:44:20 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-30 21:44:20 +0000
commit1b667f61baba1328e45a5c33fe4a6343787c4b4a (patch)
tree8a13afc55b905ced9f349b56d9fb12ceabe4caed
parent7af2d892c274222904eeeb5de0e394e5b52335fd (diff)
downloadmpv-1b667f61baba1328e45a5c33fe4a6343787c4b4a.tar.bz2
mpv-1b667f61baba1328e45a5c33fe4a6343787c4b4a.tar.xz
-afm/-vfm migration from ID (int) to NAME (string) - simplifies code and makes dlopen()'ing possible
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7181 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r--cfg-common.h6
-rw-r--r--codec-cfg.c20
-rw-r--r--codec-cfg.h57
-rw-r--r--help_mp-en.h12
-rw-r--r--libmpcodecs/ad_acm.c1
-rw-r--r--libmpcodecs/ad_alaw.c1
-rw-r--r--libmpcodecs/ad_dk3adpcm.c1
-rw-r--r--libmpcodecs/ad_dshow.c1
-rw-r--r--libmpcodecs/ad_dvdpcm.c1
-rw-r--r--libmpcodecs/ad_faad.c1
-rw-r--r--libmpcodecs/ad_ffmpeg.c1
-rw-r--r--libmpcodecs/ad_hwac3.c1
-rw-r--r--libmpcodecs/ad_imaadpcm.c1
-rw-r--r--libmpcodecs/ad_liba52.c1
-rw-r--r--libmpcodecs/ad_libdv.c1
-rw-r--r--libmpcodecs/ad_libmad.c1
-rw-r--r--libmpcodecs/ad_libvorbis.c1
-rw-r--r--libmpcodecs/ad_mp3lib.c1
-rw-r--r--libmpcodecs/ad_msadpcm.c1
-rw-r--r--libmpcodecs/ad_msgsm.c1
-rw-r--r--libmpcodecs/ad_pcm.c1
-rw-r--r--libmpcodecs/ad_realaud.c1
-rw-r--r--libmpcodecs/ad_roqaudio.c1
-rw-r--r--libmpcodecs/ad_sample.c1
-rw-r--r--libmpcodecs/dec_audio.c9
-rw-r--r--libmpcodecs/dec_video.c13
-rw-r--r--libmpcodecs/dec_video.h2
-rw-r--r--libmpcodecs/mpc_info.h2
-rw-r--r--libmpcodecs/vd.c4
-rw-r--r--libmpcodecs/vd_cinepak.c1
-rw-r--r--libmpcodecs/vd_cyuv.c1
-rw-r--r--libmpcodecs/vd_divx4.c1
-rw-r--r--libmpcodecs/vd_dshow.c1
-rw-r--r--libmpcodecs/vd_ffmpeg.c1
-rw-r--r--libmpcodecs/vd_fli.c1
-rw-r--r--libmpcodecs/vd_huffyuv.c1
-rw-r--r--libmpcodecs/vd_ijpg.c1
-rw-r--r--libmpcodecs/vd_libdv.c1
-rw-r--r--libmpcodecs/vd_libmpeg2.c1
-rw-r--r--libmpcodecs/vd_mpegpes.c1
-rw-r--r--libmpcodecs/vd_mpng.c1
-rw-r--r--libmpcodecs/vd_msrle.c1
-rw-r--r--libmpcodecs/vd_msvidc.c1
-rw-r--r--libmpcodecs/vd_nuv.c1
-rw-r--r--libmpcodecs/vd_odivx.c1
-rw-r--r--libmpcodecs/vd_qtrle.c1
-rw-r--r--libmpcodecs/vd_qtrpza.c1
-rw-r--r--libmpcodecs/vd_qtsmc.c1
-rw-r--r--libmpcodecs/vd_raw.c1
-rw-r--r--libmpcodecs/vd_realvid.c1
-rw-r--r--libmpcodecs/vd_rle.c1
-rw-r--r--libmpcodecs/vd_roqvideo.c1
-rw-r--r--libmpcodecs/vd_svq1.c1
-rw-r--r--libmpcodecs/vd_vfw.c1
-rw-r--r--libmpcodecs/vd_vfwex.c1
-rw-r--r--libmpcodecs/vd_xanim.c1
-rw-r--r--libmpcodecs/vd_xvid.c1
-rw-r--r--libmpcodecs/vd_zlib.c1
-rw-r--r--mencoder.c26
-rw-r--r--mplayer.c30
-rw-r--r--mplayer.h2
61 files changed, 66 insertions, 166 deletions
diff --git a/cfg-common.h b/cfg-common.h
index ea1f0e7599..e50f2bb44e 100644
--- a/cfg-common.h
+++ b/cfg-common.h
@@ -104,8 +104,10 @@
{"nosound", &has_audio, CONF_TYPE_FLAG, 0, 1, 0, NULL},
// select audio/video codec (by name) or codec family (by number):
- {"afm", &audio_family, CONF_TYPE_INT, CONF_MIN, 0, 22, NULL}, // keep ranges in sync
- {"vfm", &video_family, CONF_TYPE_INT, CONF_MIN, 0, 29, NULL}, // with codec-cfg.c
+// {"afm", &audio_family, CONF_TYPE_INT, CONF_MIN, 0, 22, NULL}, // keep ranges in sync
+// {"vfm", &video_family, CONF_TYPE_INT, CONF_MIN, 0, 29, NULL}, // with codec-cfg.c
+ {"afm", &audio_fm, CONF_TYPE_STRING, 0, 0, 0, NULL},
+ {"vfm", &video_fm, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"ac", &audio_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
{"vc", &video_codec, CONF_TYPE_STRING, 0, 0, 0, NULL},
diff --git a/codec-cfg.c b/codec-cfg.c
index f40f6f45b2..979b79849b 100644
--- a/codec-cfg.c
+++ b/codec-cfg.c
@@ -210,6 +210,7 @@ err_out_parse_error:
return 0;
}
+#if 0
static short get_driver(char *s,int audioflag)
{
static char *audiodrv[] = {
@@ -278,6 +279,7 @@ static short get_driver(char *s,int audioflag)
return -1;
}
+#endif
static int validate_codec(codecs_t *c, int type)
{
@@ -581,8 +583,10 @@ int parse_codec_cfg(char *cfgfile)
} else if (!strcmp(token[0], "driver")) {
if (get_token(1, 1) < 0)
goto err_out_parse_error;
- if ((codec->driver = get_driver(token[0],codec_type))<0)
- goto err_out_parse_error;
+ if (!(codec->drv = strdup(token[0]))) {
+ mp_msg(MSGT_CODECCFG,MSGL_ERR,"can't strdup -> 'driver': %s\n", strerror(errno));
+ goto err_out;
+ }
} else if (!strcmp(token[0], "dll")) {
if (get_token(1, 1) < 0)
goto err_out_parse_error;
@@ -651,11 +655,6 @@ int parse_codec_cfg(char *cfgfile)
goto err_out_parse_error;
if (!(codec->cpuflags = get_cpuflags(token[0])))
goto err_out_parse_error;
- } else if (!strcasecmp(token[0], "priority")) {
- if (get_token(1, 1) < 0)
- goto err_out_parse_error;
- //printf("\n\n!!!cfg-parse: priority %s (%d) found!!!\n\n", token[0], atoi(token[0])); // ::atmos
- codec->priority = atoi(token[0]);
} else
goto err_out_parse_error;
}
@@ -738,7 +737,8 @@ codecs_t* find_codec(unsigned int fourcc,unsigned int *fourccmap,
for (/* NOTHING */; i--; c++) {
if(start && c<=start) continue;
for (j = 0; j < CODECS_MAX_FOURCC; j++) {
- if (c->fourcc[j]==fourcc || c->driver==0) {
+ // FIXME: do NOT hardwire 'null' name here:
+ if (c->fourcc[j]==fourcc || !strcmp(c->drv,"null")) {
if (fourccmap)
*fourccmap = c->fourccmap[j];
return c;
@@ -787,9 +787,9 @@ void list_codecs(int audioflag){
case CODECS_STATUS_UNTESTED: s="untested";break;
}
if(c->dll)
- mp_msg(MSGT_CODECCFG,MSGL_INFO,"%-11s%2d %s %s [%s]\n",c->name,c->driver,s,c->info,c->dll);
+ mp_msg(MSGT_CODECCFG,MSGL_INFO,"%-11s %-6s %s %s [%s]\n",c->name,c->drv,s,c->info,c->dll);
else
- mp_msg(MSGT_CODECCFG,MSGL_INFO,"%-11s%2d %s %s\n",c->name,c->driver,s,c->info);
+ mp_msg(MSGT_CODECCFG,MSGL_INFO,"%-11s %-6s %s %s\n",c->name,c->drv,s,c->info);
}
diff --git a/codec-cfg.h b/codec-cfg.h
index b08deaf14e..220e97ade4 100644
--- a/codec-cfg.h
+++ b/codec-cfg.h
@@ -26,59 +26,6 @@
#define CODECS_STATUS_UNTESTED 2
#define CODECS_STATUS__MAX 2
-// Codec family/driver:
-#define AFM_MPEG 1
-#define AFM_PCM 2
-#define AFM_AC3 3
-#define AFM_ACM 4
-#define AFM_ALAW 5
-#define AFM_GSM 6
-#define AFM_DSHOW 7
-#define AFM_DVDPCM 8
-#define AFM_HWAC3 9
-#define AFM_VORBIS 10
-#define AFM_FFMPEG 11
-#define AFM_MAD 12
-#define AFM_MSADPCM 13
-#define AFM_A52 14
-#define AFM_G72X 15
-#define AFM_IMAADPCM 16
-#define AFM_DK4ADPCM 17
-#define AFM_DK3ADPCM 18
-#define AFM_ROQAUDIO 19
-#define AFM_AAC 20
-#define AFM_REAL 21
-#define AFM_LIBDV 22
-
-#define VFM_MPEG 1
-#define VFM_VFW 2
-#define VFM_ODIVX 3
-#define VFM_DSHOW 4
-#define VFM_FFMPEG 5
-#define VFM_VFWEX 6
-#define VFM_DIVX4 7
-#define VFM_RAW 8
-#define VFM_MSRLE 9
-#define VFM_XANIM 10
-#define VFM_MSVIDC 11
-#define VFM_FLI 12
-#define VFM_CINEPAK 13
-#define VFM_QTRLE 14
-#define VFM_NUV 15
-#define VFM_CYUV 16
-#define VFM_QTSMC 17
-#define VFM_DUCKTM1 18
-#define VFM_ROQVIDEO 19
-#define VFM_QTRPZA 20
-#define VFM_MPNG 21
-#define VFM_IJPG 22
-#define VFM_HUFFYUV 23
-#define VFM_ZLIB 24
-#define VFM_MPEGPES 25
-#define VFM_REAL 26
-#define VFM_SVQ1 27
-#define VFM_XVID 28
-#define VFM_LIBDV 29
#ifndef GUID_TYPE
#define GUID_TYPE
@@ -102,12 +49,12 @@ typedef struct codecs_st {
char *info;
char *comment;
char *dll;
+ char* drv;
GUID guid;
- short driver;
+// short driver;
short flags;
short status;
short cpuflags;
- short priority;
} codecs_t;
int parse_codec_cfg(char *cfgfile);
diff --git a/help_mp-en.h b/help_mp-en.h
index 164dd2f69a..2103453a5b 100644
--- a/help_mp-en.h
+++ b/help_mp-en.h
@@ -85,12 +85,12 @@ static char help_text[]=
#define MSGTR_CoreDumped "core dumped :)\n"
#define MSGTR_FPSnotspecified "FPS not specified (or invalid) in the header! Use the -fps option!\n"
#define MSGTR_NoVideoStream "Sorry, no video stream... it's unplayable yet\n"
-#define MSGTR_TryForceAudioFmt "Trying to force audio codec driver family %d ...\n"
+#define MSGTR_TryForceAudioFmtStr "Trying to force audio codec driver family %s ...\n"
#define MSGTR_CantFindAfmtFallback "Can't find audio codec for forced driver family, fallback to other drivers.\n"
#define MSGTR_CantFindAudioCodec "Can't find codec for audio format 0x%X !\n"
#define MSGTR_TryUpgradeCodecsConfOrRTFM "*** Try to upgrade %s from etc/codecs.conf\n*** If it's still not OK, then read DOCS/codecs.html!\n"
#define MSGTR_CouldntInitAudioCodec "Couldn't initialize audio codec! -> nosound\n"
-#define MSGTR_TryForceVideoFmt "Trying to force video codec driver family %d ...\n"
+#define MSGTR_TryForceVideoFmtStr "Trying to force video codec driver family %s ...\n"
#define MSGTR_CantFindVfmtFallback "Can't find video codec for forced driver family, fallback to other drivers.\n"
#define MSGTR_CantFindVideoCodec "Can't find codec matching selected -vo and video format 0x%X !\n"
#define MSGTR_VOincompCodec "Sorry, selected video_out device is incompatible with this codec.\n"
@@ -286,12 +286,12 @@ static char help_text[]=
#define MSGTR_UsingExternalPP "[PP] Using external postprocessing filter, max q = %d\n"
#define MSGTR_UsingCodecPP "[PP] Using codec's postprocessing, max q = %d\n"
#define MSGTR_VideoAttributeNotSupportedByVO_VD "Video attribute '%s' isn't supported by selected vo & vd! \n"
-#define MSGTR_VideoCodecFamilyNotAvailable "Requested video codec family [%s] (vfm=%d) not available (enable it at compile time!)\n"
-#define MSGTR_AudioCodecFamilyNotAvailable "Requested audio codec family [%s] (afm=%d) not available (enable it at compile time!)\n"
+#define MSGTR_VideoCodecFamilyNotAvailableStr "Requested video codec family [%s] (vfm=%s) not available (enable it at compile time!)\n"
+#define MSGTR_AudioCodecFamilyNotAvailableStr "Requested audio codec family [%s] (afm=%s) not available (enable it at compile time!)\n"
#define MSGTR_OpeningVideoDecoder "Opening video decoder: [%s] %s\n"
#define MSGTR_OpeningAudioDecoder "Opening audio decoder: [%s] %s\n"
-#define MSGTR_UninitVideo "uninit video: %d \n"
-#define MSGTR_UninitAudio "uninit audio: %d \n"
+#define MSGTR_UninitVideoStr "uninit video: %s \n"
+#define MSGTR_UninitAudioStr "uninit audio: %s \n"
#define MSGTR_VDecoderInitFailed "VDecoder init failed :(\n"
#define MSGTR_ADecoderInitFailed "ADecoder init failed :(\n"
#define MSGTR_ADecoderPreinitFailed "ADecoder preinit failed :(\n"
diff --git a/libmpcodecs/ad_acm.c b/libmpcodecs/ad_acm.c
index c728af0838..ca3890643d 100644
--- a/libmpcodecs/ad_acm.c
+++ b/libmpcodecs/ad_acm.c
@@ -14,7 +14,6 @@ static ad_info_t info =
{
"Win32 ACM audio decoder",
"acm",
- AFM_ACM,
"Nick Kurshev",
"avifile.sf.net",
""
diff --git a/libmpcodecs/ad_alaw.c b/libmpcodecs/ad_alaw.c
index d1a7e4cfe4..ca8db2768a 100644
--- a/libmpcodecs/ad_alaw.c
+++ b/libmpcodecs/ad_alaw.c
@@ -9,7 +9,6 @@ static ad_info_t info =
{
"aLaw/uLaw audio decoder",
"alaw",
- AFM_ALAW,
"Nick Kurshev",
"A'rpi",
""
diff --git a/libmpcodecs/ad_dk3adpcm.c b/libmpcodecs/ad_dk3adpcm.c
index 5cb6b6b232..a6b2c94639 100644
--- a/libmpcodecs/ad_dk3adpcm.c
+++ b/libmpcodecs/ad_dk3adpcm.c
@@ -20,7 +20,6 @@ static ad_info_t info =
{
"Duck DK3 ADPCM decoder",
"dk3adpcm",
- AFM_DK3ADPCM,
"Nick Kurshev",
"Mike Melanson",
"This format number was used by Duck Corp. but not officially registered with Microsoft"
diff --git a/libmpcodecs/ad_dshow.c b/libmpcodecs/ad_dshow.c
index 208a927814..662a5204db 100644
--- a/libmpcodecs/ad_dshow.c
+++ b/libmpcodecs/ad_dshow.c
@@ -14,7 +14,6 @@ static ad_info_t info =
{
"Win32/DirectShow decoders",
"dshow",
- AFM_DSHOW,
"Nick Kurshev",
"avifile.sf.net",
""
diff --git a/libmpcodecs/ad_dvdpcm.c b/libmpcodecs/ad_dvdpcm.c
index faab6a7584..60704c9185 100644
--- a/libmpcodecs/ad_dvdpcm.c
+++ b/libmpcodecs/ad_dvdpcm.c
@@ -9,7 +9,6 @@ static ad_info_t info =
{
"Uncompressed DVD PCM audio decoder",
"dvdpcm",
- AFM_DVDPCM,
"Nick Kurshev",
"A'rpi",
""
diff --git a/libmpcodecs/ad_faad.c b/libmpcodecs/ad_faad.c
index bd210d96f9..c76257145f 100644
--- a/libmpcodecs/ad_faad.c
+++ b/libmpcodecs/ad_faad.c
@@ -17,7 +17,6 @@ static ad_info_t info =
{
"AAC (MPEG2/4 Advanced Audio Coding)",
"faad",
- AFM_AAC,
"Felix Buenemann",
"faad2",
"Under development!"
diff --git a/libmpcodecs/ad_ffmpeg.c b/libmpcodecs/ad_ffmpeg.c
index fa642a6a95..7aac9e8418 100644
--- a/libmpcodecs/ad_ffmpeg.c
+++ b/libmpcodecs/ad_ffmpeg.c
@@ -16,7 +16,6 @@ static ad_info_t info =
{
"FFmpeg audio decoders",
"ffmpeg",
- AFM_FFMPEG,
"Nick Kurshev",
"ffmpeg.sf.net",
""
diff --git a/libmpcodecs/ad_hwac3.c b/libmpcodecs/ad_hwac3.c
index 1b9a78d853..e645233f3c 100644
--- a/libmpcodecs/ad_hwac3.c
+++ b/libmpcodecs/ad_hwac3.c
@@ -20,7 +20,6 @@ static ad_info_t info =
{
"AC3 through SPDIF",
"hwac3",
- AFM_HWAC3,
"Nick Kurshev",
"???",
""
diff --git a/libmpcodecs/ad_imaadpcm.c b/libmpcodecs/ad_imaadpcm.c
index d3727e90ed..d134ae63ef 100644
--- a/libmpcodecs/ad_imaadpcm.c
+++ b/libmpcodecs/ad_imaadpcm.c
@@ -71,7 +71,6 @@ static ad_info_t info =
{
"IMA ADPCM audio decoder",
"imaadpcm",
- AFM_IMAADPCM,
"Nick Kurshev",
"Mike Melanson",
""
diff --git a/libmpcodecs/ad_liba52.c b/libmpcodecs/ad_liba52.c
index cc85fe0004..f6d6df264d 100644
--- a/libmpcodecs/ad_liba52.c
+++ b/libmpcodecs/ad_liba52.c
@@ -23,7 +23,6 @@ static ad_info_t info =
{
"AC3-liba52",
"liba52",
- AFM_A52,
"Nick Kurshev",
"Michel LESPINASSE",
""
diff --git a/libmpcodecs/ad_libdv.c b/libmpcodecs/ad_libdv.c
index 0cd5553f8b..a193369047 100644
--- a/libmpcodecs/ad_libdv.c
+++ b/libmpcodecs/ad_libdv.c
@@ -24,7 +24,6 @@ static ad_info_t info =
{
"Raw DV Audio Decoder",
"libdv",
- AFM_LIBDV,
"Alexander Neundorf <neundorf@kde.org>",
"http://libdv.sf.net",
""
diff --git a/libmpcodecs/ad_libmad.c b/libmpcodecs/ad_libmad.c
index 083a0942ad..5ecfd5c4f5 100644
--- a/libmpcodecs/ad_libmad.c
+++ b/libmpcodecs/ad_libmad.c
@@ -13,7 +13,6 @@
static ad_info_t info = {
"libmad mpeg audio decoder",
"libmad",
- AFM_MAD,
"A'rpi",
"libmad...",
"based on Xine's libmad/xine_decoder.c"
diff --git a/libmpcodecs/ad_libvorbis.c b/libmpcodecs/ad_libvorbis.c
index 526667ea4e..630362c829 100644
--- a/libmpcodecs/ad_libvorbis.c
+++ b/libmpcodecs/ad_libvorbis.c
@@ -12,7 +12,6 @@ static ad_info_t info =
{
"Ogg/Vorbis audio decoder",
"libvorbis",
- AFM_VORBIS,
"Felix Buenemann, A'rpi",
"libvorbis",
"buggy"
diff --git a/libmpcodecs/ad_mp3lib.c b/libmpcodecs/ad_mp3lib.c
index e4b8f9c4bc..ef544f465d 100644
--- a/libmpcodecs/ad_mp3lib.c
+++ b/libmpcodecs/ad_mp3lib.c
@@ -9,7 +9,6 @@ static ad_info_t info =
{
"MPEG layer-2, layer-3",
"mp3lib",
- AFM_MPEG,
"Nick Kurshev",
"mpg123",
"Optimized to MMX/SSE/3Dnow!"
diff --git a/libmpcodecs/ad_msadpcm.c b/libmpcodecs/ad_msadpcm.c
index 7457cbc3d5..5bfa0e46fc 100644
--- a/libmpcodecs/ad_msadpcm.c
+++ b/libmpcodecs/ad_msadpcm.c
@@ -19,7 +19,6 @@ static ad_info_t info =
{
"MS ADPCM audio decoder",
"msadpcm",
- AFM_MSADPCM,
"Nick Kurshev",
"Mike Melanson",
""
diff --git a/libmpcodecs/ad_msgsm.c b/libmpcodecs/ad_msgsm.c
index 0aabe0aaba..a4dbe122df 100644
--- a/libmpcodecs/ad_msgsm.c
+++ b/libmpcodecs/ad_msgsm.c
@@ -9,7 +9,6 @@ static ad_info_t info =
{
"native MSGSM audio decoder",
"msgsm",
- AFM_GSM,
"A'rpi",
"XAnim",
""
diff --git a/libmpcodecs/ad_pcm.c b/libmpcodecs/ad_pcm.c
index e0bc8f4960..e3b3430fd5 100644
--- a/libmpcodecs/ad_pcm.c
+++ b/libmpcodecs/ad_pcm.c
@@ -9,7 +9,6 @@ static ad_info_t info =
{
"Uncompressed PCM audio decoder",
"pcm",
- AFM_PCM,
"Nick Kurshev",
"A'rpi",
""
diff --git a/libmpcodecs/ad_realaud.c b/libmpcodecs/ad_realaud.c
index 09cbbc678c..fd0511c99d 100644
--- a/libmpcodecs/ad_realaud.c
+++ b/libmpcodecs/ad_realaud.c
@@ -15,7 +15,6 @@
static ad_info_t info = {
"RealAudio decoder",
"realaud",
- AFM_REAL,
"A'rpi",
"Florian Schneider",
"binary real audio codecs"
diff --git a/libmpcodecs/ad_roqaudio.c b/libmpcodecs/ad_roqaudio.c
index 556a8bdcf5..3d6454c916 100644
--- a/libmpcodecs/ad_roqaudio.c
+++ b/libmpcodecs/ad_roqaudio.c
@@ -10,7 +10,6 @@ static ad_info_t info =
{
"Id RoQ File Audio Decoder",
"roqaudio",
- AFM_ROQAUDIO,
"Nick Kurshev",
"Mike Melanson"
"RoQA is an internal MPlayer FOURCC"
diff --git a/libmpcodecs/ad_sample.c b/libmpcodecs/ad_sample.c
index 56d5a46dea..aa7912bba8 100644
--- a/libmpcodecs/ad_sample.c
+++ b/libmpcodecs/ad_sample.c
@@ -10,7 +10,6 @@
static ad_info_t info = {
"Sample audio decoder", // name of the driver
"sample", // driver name. should be the same as filename without ad_
- AFM_SAMPLE, // replace with registered AFM number
"A'rpi", // writer/maintainer of _this_ file
"", // writer/maintainer/site of the _codec_
"" // comments
diff --git a/libmpcodecs/dec_audio.c b/libmpcodecs/dec_audio.c
index 4185415e91..af48c9136c 100644
--- a/libmpcodecs/dec_audio.c
+++ b/libmpcodecs/dec_audio.c
@@ -30,12 +30,13 @@ int init_audio(sh_audio_t *sh_audio)
{
unsigned i;
for (i=0; mpcodecs_ad_drivers[i] != NULL; i++)
- if(mpcodecs_ad_drivers[i]->info->id==sh_audio->codec->driver){
+// if(mpcodecs_ad_drivers[i]->info->id==sh_audio->codec->driver){
+ if(!strcmp(mpcodecs_ad_drivers[i]->info->short_name,sh_audio->codec->drv)){
mpadec=mpcodecs_ad_drivers[i]; break;
}
if(!mpadec){
- mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_AudioCodecFamilyNotAvailable,
- sh_audio->codec->name, sh_audio->codec->driver);
+ mp_msg(MSGT_DECAUDIO,MSGL_ERR,MSGTR_AudioCodecFamilyNotAvailableStr,
+ sh_audio->codec->name, sh_audio->codec->drv);
return 0; // no such driver
}
@@ -119,7 +120,7 @@ void uninit_audio(sh_audio_t *sh_audio)
if(sh_audio->a_in_buffer) free(sh_audio->a_in_buffer);
sh_audio->a_in_buffer=NULL;
if(!sh_audio->inited) return;
- mp_msg(MSGT_DECAUDIO,MSGL_V,MSGTR_UninitAudio,sh_audio->codec->driver);
+ mp_msg(MSGT_DECAUDIO,MSGL_V,MSGTR_UninitAudioStr,sh_audio->codec->drv);
mpadec->uninit(sh_audio);
sh_audio->inited=0;
}
diff --git a/libmpcodecs/dec_video.c b/libmpcodecs/dec_video.c
index dc8c411476..efcd660f3e 100644
--- a/libmpcodecs/dec_video.c
+++ b/libmpcodecs/dec_video.c
@@ -134,13 +134,13 @@ int set_rectangle(sh_video_t *sh_video,int param,int value)
void uninit_video(sh_video_t *sh_video){
if(!sh_video->inited) return;
- mp_msg(MSGT_DECVIDEO,MSGL_V,MSGTR_UninitVideo,sh_video->codec->driver);
+ mp_msg(MSGT_DECVIDEO,MSGL_V,MSGTR_UninitVideoStr,sh_video->codec->drv);
mpvdec->uninit(sh_video);
vf_uninit_filter_chain(sh_video->vfilter);
sh_video->inited=0;
}
-int init_video(sh_video_t *sh_video,char* codecname,int vfm,int status){
+int init_video(sh_video_t *sh_video,char* codecname,char* vfm,int status){
unsigned int orig_fourcc=sh_video->bih?sh_video->bih->biCompression:0;
sh_video->codec=NULL;
sh_video->vf_inited=0;
@@ -155,16 +155,17 @@ int init_video(sh_video_t *sh_video,char* codecname,int vfm,int status){
// ok we found one codec
if(sh_video->codec->flags&CODECS_FLAG_SELECTED) continue; // already tried & failed
if(codecname && strcmp(sh_video->codec->name,codecname)) continue; // -vc
- if(vfm>=0 && sh_video->codec->driver!=vfm) continue; // vfm doesn't match
+ if(vfm && strcmp(sh_video->codec->drv,vfm)) continue; // vfm doesn't match
if(sh_video->codec->status<status) continue; // too unstable
sh_video->codec->flags|=CODECS_FLAG_SELECTED; // tagging it
// ok, it matches all rules, let's find the driver!
for (i=0; mpcodecs_vd_drivers[i] != NULL; i++)
- if(mpcodecs_vd_drivers[i]->info->id==sh_video->codec->driver) break;
+// if(mpcodecs_vd_drivers[i]->info->id==sh_video->codec->driver) break;
+ if(!strcmp(mpcodecs_vd_drivers[i]->info->short_name,sh_video->codec->drv)) break;
mpvdec=mpcodecs_vd_drivers[i];
if(!mpvdec){ // driver not available (==compiled in)
- mp_msg(MSGT_DECVIDEO,MSGL_WARN,MSGTR_VideoCodecFamilyNotAvailable,
- sh_video->codec->name, sh_video->codec->driver);
+ mp_msg(MSGT_DECVIDEO,MSGL_WARN,MSGTR_VideoCodecFamilyNotAvailableStr,
+ sh_video->codec->name, sh_video->codec->drv);
continue;
}
// it's available, let's try to init!
diff --git a/libmpcodecs/dec_video.h b/libmpcodecs/dec_video.h
index 296af5ef1a..be29e8e760 100644
--- a/libmpcodecs/dec_video.h
+++ b/libmpcodecs/dec_video.h
@@ -3,7 +3,7 @@
extern int video_read_properties(sh_video_t *sh_video);
//extern int init_video(sh_video_t *sh_video, int *pitches);
-extern int init_video(sh_video_t *sh_video,char* codecname,int vfm,int status);
+extern int init_video(sh_video_t *sh_video,char* codecname,char* vfm,int status);
extern void uninit_video(sh_video_t *sh_video);
extern int decode_video(sh_video_t *sh_video,unsigned char *start,int in_size,int drop_frame);
diff --git a/libmpcodecs/mpc_info.h b/libmpcodecs/mpc_info.h
index 1f527dd66d..97f90b899f 100644
--- a/