changeset 1983:72f0648df475

-ac help / -vc help
author arpi
date Thu, 27 Sep 2001 12:59:35 +0000
parents b190d3e9427c
children 34e1fa21df2f
files codec-cfg.c codec-cfg.h mplayer.c
diffstat 3 files changed, 48 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- a/codec-cfg.c	Thu Sep 27 12:56:01 2001 +0000
+++ b/codec-cfg.c	Thu Sep 27 12:59:35 2001 +0000
@@ -644,6 +644,30 @@
 	return NULL;
 }
 
+void list_codecs(int audioflag){
+	int i, j;
+	codecs_t *c;
+
+		if (audioflag) {
+			i = nr_acodecs;
+			c = audio_codecs;
+		} else {
+			i = nr_vcodecs;
+			c = video_codecs;
+		}
+		if(!i) return NULL;
+		for (/* NOTHING */; i--; c++) {
+			if(c->dll)
+			  printf("%-10s %2d  %s  [%s]\n",c->name,c->driver,c->info,c->dll);
+			else
+			  printf("%-10s %2d  %s\n",c->name,c->driver,c->info);
+			
+		}
+
+}
+
+
+
 #ifdef CODECS2HTML
 
 void wrapline(FILE *f2,char *s){
--- a/codec-cfg.h	Thu Sep 27 12:56:01 2001 +0000
+++ b/codec-cfg.h	Thu Sep 27 12:59:35 2001 +0000
@@ -71,5 +71,6 @@
 codecs_t* find_video_codec(unsigned int fourcc, unsigned int *fourccmap, codecs_t *start);
 codecs_t* find_audio_codec(unsigned int fourcc, unsigned int *fourccmap, codecs_t *start);
 codecs_t* find_codec(unsigned int fourcc,unsigned int *fourccmap,codecs_t *start,int audioflag);
+void list_codecs(int audioflag);
 
 #endif
--- a/mplayer.c	Thu Sep 27 12:56:01 2001 +0000
+++ b/mplayer.c	Thu Sep 27 12:59:35 2001 +0000
@@ -430,11 +430,7 @@
 }
 }
 
-//ifndef HAVE_GUI
- int main(int argc,char* argv[], char *envp[]){
-//else
-// int mplayer(int argc,char* argv[], char *envp[]){
-//endif
+int main(int argc,char* argv[], char *envp[]){
 
 #ifdef USE_SUB
 static subtitle* subtitles=NULL;
@@ -530,6 +526,28 @@
       exit(0);
     }
 
+// check codec.conf
+if(!parse_codec_cfg(get_path("codecs.conf"))){
+  if(!parse_codec_cfg(DATADIR"/codecs.conf")){
+    mp_msg(MSGT_CPLAYER,MSGL_HINT,MSGTR_CopyCodecsConf);
+    exit(1);
+  }
+}
+
+    if(audio_codec && strcmp(audio_codec,"help")==0){
+      printf("Available audio codecs:\n");
+      list_codecs(1);
+      printf("\n");
+      exit(0);
+    }
+    if(video_codec && strcmp(video_codec,"help")==0){
+      printf("Available video codecs:\n");
+      list_codecs(0);
+      printf("\n");
+      exit(0);
+    }
+
+
     if(!num_filenames && !vcd_track && !dvd_title){
       if(!use_gui){
 	// no file/vcd/dvd -> show HELP:
@@ -550,13 +568,6 @@
 
 //------ load global data first ------
 
-// check codec.conf
-if(!parse_codec_cfg(get_path("codecs.conf"))){
-  if(!parse_codec_cfg(DATADIR"/codecs.conf")){
-    mp_msg(MSGT_CPLAYER,MSGL_HINT,MSGTR_CopyCodecsConf);
-    exit(1);
-  }
-}
 
 // check font
 #ifdef USE_OSD