changeset 18237:4231482179b6

Get ride of the several if(identify) messy lines and rearangment of some of the output, both patches by Kiriuja mplayer-patches AT en-directo_net, his changes are barely unrelated, nevertheless Im commiting them thogeter just for the sake of my mental healt, I had both patches already applied on my local three
author reynaldo
date Mon, 24 Apr 2006 07:20:34 +0000
parents d239a79a0002
children 01b1d174ec73
files DOCS/man/en/mplayer.1 cfg-common.h cfg-mplayer.h libaf/af.c libao2/audio_out.c libmpcodecs/dec_audio.c libmpcodecs/dec_video.c libmpdemux/cdda.c libmpdemux/cddb.c libmpdemux/demux_mkv.c libmpdemux/demux_ogg.c libmpdemux/demux_ts.c libmpdemux/demuxer.c libmpdemux/stream_dvd.c libmpdemux/vcd_read.h libmpdemux/vcd_read_darwin.h libmpdemux/vcd_read_fbsd.h libmpdemux/vcd_read_nbsd.h libvo/video_out.c libvo/x11_common.c m_option.c mencoder.c mp_msg.c mp_msg.h mplayer.c vobsub.c
diffstat 26 files changed, 115 insertions(+), 177 deletions(-) [+]
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1	Mon Apr 24 06:28:45 2006 +0000
+++ b/DOCS/man/en/mplayer.1	Mon Apr 24 07:20:34 2006 +0000
@@ -764,9 +764,11 @@
 .
 .TP
 .B \-identify
+Shorthand for \-msglevel identify=4.
 Show file parameters in an easily parseable format.
 Also prints more detailed information about subtitle and audio
-track languages and IDs.
+track languages and IDs. If you want even more information
+use -msglevel identify=5.
 The wrapper script TOOLS/\:midentify suppresses the other MPlayer output and
 (hopefully) shellescapes the filenames.
 .
--- a/cfg-common.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/cfg-common.h	Mon Apr 24 07:20:34 2006 +0000
@@ -543,6 +543,7 @@
 	{ "netst", &mp_msg_levels[MSGT_NETST], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL },
 	{ "muxer", &mp_msg_levels[MSGT_MUXER], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL },
 	{ "osd-menu", &mp_msg_levels[MSGT_OSD_MENU], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL },
+	{ "identify", &mp_msg_levels[MSGT_IDENTIFY], CONF_TYPE_INT, CONF_RANGE, -1, 9, NULL },
         {"help", "Available msg modules:\n"
         "   global     - common player errors/information\n"
         "   cplayer    - console player (mplayer.c)\n"
@@ -585,6 +586,7 @@
         "   afilter    - Audio filter messages\n"
         "   netst      - Netstream\n"
         "   muxer      - muxer layer\n"
+        "   identify   - identify output\n"
         "\n", CONF_TYPE_PRINT, CONF_NOCFG, 0, 0, NULL},
 };
 
--- a/cfg-mplayer.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/cfg-mplayer.h	Mon Apr 24 07:20:34 2006 +0000
@@ -383,7 +383,7 @@
 #undef MAIN_CONF
         
 	{"list-properties", &list_properties, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
-	{"identify", &identify, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
+	{"identify", &mp_msg_levels[MSGT_IDENTIFY], CONF_TYPE_FLAG, CONF_GLOBAL, 0, MSGL_INFO, NULL},
 	{"-help", help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL},
 	{"help", help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL},
 	{"h", help_text, CONF_TYPE_PRINT, CONF_NOCFG|CONF_GLOBAL, 0, 0, NULL},
--- a/libaf/af.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libaf/af.c	Mon Apr 24 07:20:34 2006 +0000
@@ -698,8 +698,6 @@
 void af_help (void) {
   int i = 0;
   af_msg(AF_MSG_INFO, "Available audio filters:\n");
-  if (identify)
-    af_msg(AF_MSG_INFO, "ID_AUDIO_FILTERS\n");
   while (filter_list[i]) {
     if (filter_list[i]->comment && filter_list[i]->comment[0])
       af_msg(AF_MSG_INFO, "  %-15s: %s (%s)\n", filter_list[i]->name, filter_list[i]->info, filter_list[i]->comment);
--- a/libao2/audio_out.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libao2/audio_out.c	Mon Apr 24 07:20:34 2006 +0000
@@ -135,8 +135,7 @@
 void list_audio_out(void){
       int i=0;
       mp_msg(MSGT_AO, MSGL_INFO, MSGTR_AvailableAudioOutputDrivers);
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_OUTPUTS\n");
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_OUTPUTS\n");
       while (audio_out_drivers[i]) {
         const ao_info_t *info = audio_out_drivers[i++]->info;
 	mp_msg(MSGT_GLOBAL, MSGL_INFO,"\t%s\t%s\n", info->short_name, info->name);
--- a/libmpcodecs/dec_audio.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpcodecs/dec_audio.c	Mon Apr 24 07:20:34 2006 +0000
@@ -36,8 +36,7 @@
 void afm_help(void){
     int i;
     mp_msg(MSGT_DECAUDIO,MSGL_INFO,MSGTR_AvailableAudioFm);
-    if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_DRIVERS\n");
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_DRIVERS\n");
     mp_msg(MSGT_DECAUDIO,MSGL_INFO,"    afm:    info:  (comment)\n");
     for (i=0; mpcodecs_ad_drivers[i] != NULL; i++)
       if(mpcodecs_ad_drivers[i]->info->comment && mpcodecs_ad_drivers[i]->info->comment[0])
--- a/libmpcodecs/dec_video.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpcodecs/dec_video.c	Mon Apr 24 07:20:34 2006 +0000
@@ -152,8 +152,7 @@
 void vfm_help(void){
     int i;
     mp_msg(MSGT_DECVIDEO,MSGL_INFO,MSGTR_AvailableVideoFm);
-    if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_DRIVERS\n");
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_DRIVERS\n");
     mp_msg(MSGT_DECVIDEO,MSGL_INFO,"   vfm:    info:  (comment)\n");
     for (i=0; mpcodecs_vd_drivers[i] != NULL; i++)
 	mp_msg(MSGT_DECVIDEO,MSGL_INFO,"%8s  %s (%s)\n",
--- a/libmpdemux/cdda.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/cdda.c	Mon Apr 24 07:20:34 2006 +0000
@@ -312,8 +312,7 @@
 //printf("Track %d, sector=%d\n", i, p->sector-1);
 		  if( cd_track!=NULL ) {
 			mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name); 
-			if (identify)
-				mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
+			mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
 		  }
 		  break;
 	  }
@@ -355,8 +354,7 @@
 		  cd_track = cd_info_get_track(p->cd_info, seeked_track+1);
 		  if( cd_track!=NULL ) {
 			  mp_msg(MSGT_SEEK, MSGL_INFO, "\n%s\n", cd_track->name);
-			  if (identify)
-			    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
+			  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK=%d\n", cd_track->track_nb);
 		  }
 
 	}
--- a/libmpdemux/cddb.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/cddb.c	Mon Apr 24 07:20:34 2006 +0000
@@ -222,7 +222,7 @@
 int cdd_identify(const char *dev)
 {
 	cdtoc_last_track = 0;
-	if (identify)
+	if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
 	{
 		int i, min, sec, frame;
 		cdtoc_last_track = read_toc(dev);
@@ -238,7 +238,7 @@
 			frame -= sec * 75;
 			min = sec / 60;
 			sec -= min * 60;
-			mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CDDA_TRACK_%d_MSF=%02d:%02d:%02d\n", i, min, sec, frame);
+			mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CDDA_TRACK_%d_MSF=%02d:%02d:%02d\n", i, min, sec, frame);
 		}
 	}
 	return cdtoc_last_track;
--- a/libmpdemux/demux_mkv.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/demux_mkv.c	Mon Apr 24 07:20:34 2006 +0000
@@ -1548,26 +1548,19 @@
         {
         case MATROSKA_TRACK_VIDEO:
           type = "video";
-          if (identify)
-            mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", vid);
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", vid);
           sprintf (str, "-vid %u", vid++);
           break;
         case MATROSKA_TRACK_AUDIO:
           type = "audio";
-          if (identify)
-            {
-              mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", aid);
-              mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", aid, mkv_d->tracks[i]->language);
-            }
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", aid);
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", aid, mkv_d->tracks[i]->language);
           sprintf (str, "-aid %u, -alang %.5s",aid++,mkv_d->tracks[i]->language);
           break;
         case MATROSKA_TRACK_SUBTITLE:
           type = "subtitles";
-          if (identify)
-            {
-              mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", sid);
-              mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", sid, mkv_d->tracks[i]->language);
-            }
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", sid);
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", sid, mkv_d->tracks[i]->language);
           sprintf (str, "-sid %u, -slang %.5s",sid++,mkv_d->tracks[i]->language);
           break;
         }
--- a/libmpdemux/demux_ogg.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/demux_ogg.c	Mon Apr 24 07:20:34 2006 +0000
@@ -465,13 +465,10 @@
     if (!strncasecmp(*cmt, "LANGUAGE=", 9))
     {
       val = *cmt + 9;
-      if (identify)
-      {
-        if (ogg_d->subs[id].text)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
-        else if (id != d->video->id)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
-      }
+      if (ogg_d->subs[id].text)
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
+      else if (id != d->video->id)
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", ogg_d->subs[id].id, val);
       if (ogg_d->subs[id].text)
         mp_msg(MSGT_DEMUX, MSGL_INFO, "[Ogg] Language for -sid %d is '-slang \"%s\"'\n", ogg_d->subs[id].id, val);
       // copy this language name into the array
@@ -921,8 +918,7 @@
       sh_a = new_sh_audio(demuxer,ogg_d->num_sub);
       sh_a->format = FOURCC_VORBIS;
       ogg_d->subs[ogg_d->num_sub].vorbis = 1;
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
       ogg_d->subs[ogg_d->num_sub].id = n_audio;
       n_audio++;
       mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: audio (Vorbis), -aid %d\n",ogg_d->num_sub,n_audio-1);
@@ -942,8 +938,7 @@
 
       ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate;
       ogg_d->subs[ogg_d->num_sub].speex = 1;
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
       ogg_d->subs[ogg_d->num_sub].id = n_audio;
       n_audio++;
       mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: audio (Speex), -aid %d\n",ogg_d->num_sub,n_audio-1);
@@ -982,8 +977,7 @@
 				      sh_v->bih->biWidth*sh_v->bih->biHeight);
 	    ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
 	    ogg_d->subs[ogg_d->num_sub].theora = 1;
-	    if (identify)
-	      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+	    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
 	    ogg_d->subs[ogg_d->num_sub].id = n_video;
 	    n_video++;
 	    mp_msg(MSGT_DEMUX,MSGL_INFO,
@@ -1000,8 +994,7 @@
     } else if (pack.bytes >= 4 && !strncmp (&pack.packet[0], "fLaC", 4)) {
 	sh_a = new_sh_audio(demuxer,ogg_d->num_sub);
 	sh_a->format =  mmioFOURCC('f', 'L', 'a', 'C');
-	if (identify)
-	  mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
 	ogg_d->subs[ogg_d->num_sub].id = n_audio;
 	n_audio++;
 	ogg_d->subs[ogg_d->num_sub].flac = 1;
@@ -1030,8 +1023,7 @@
 	sh_v->bih->biSizeImage=(sh_v->bih->biBitCount>>3)*sh_v->bih->biWidth*sh_v->bih->biHeight;
 
 	ogg_d->subs[ogg_d->num_sub].samplerate = sh_v->fps;
-	if (identify)
-	  mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
 	ogg_d->subs[ogg_d->num_sub].id = n_video;
 	n_video++;
 	mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: video (FOURCC %c%c%c%c), -vid %d\n",
@@ -1055,8 +1047,7 @@
 	  memcpy(((char *)sh_a->wf)+sizeof(WAVEFORMATEX),pack.packet+142,extra_size);
 
 	ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels;
-	if (identify)
-	  mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
 	ogg_d->subs[ogg_d->num_sub].id = n_audio;
 	n_audio++;
 	mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: audio (format 0x%04x), -aid %d\n",ogg_d->num_sub,sh_a->format,n_audio-1);
@@ -1086,8 +1077,7 @@
 	sh_v->bih->biSizeImage=(sh_v->bih->biBitCount>>3)*sh_v->bih->biWidth*sh_v->bih->biHeight;
 
 	ogg_d->subs[ogg_d->num_sub].samplerate= sh_v->fps;
-	if (identify)
-	  mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", n_video);
 	ogg_d->subs[ogg_d->num_sub].id = n_video;
 	n_video++;
 	mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: video (FOURCC %c%c%c%c), -vid %d\n",
@@ -1126,8 +1116,7 @@
 	  memcpy(((char *)sh_a->wf)+sizeof(WAVEFORMATEX),((char *)(st+1))+extra_offset,extra_size);
 
 	ogg_d->subs[ogg_d->num_sub].samplerate = sh_a->samplerate; // * sh_a->channels;
-	if (identify)
-	  mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", n_audio);
 	ogg_d->subs[ogg_d->num_sub].id = n_audio;
 	n_audio++;
 	mp_msg(MSGT_DEMUX,MSGL_INFO,"[Ogg] stream %d: audio (format 0x%04x), -aid %d\n",ogg_d->num_sub,sh_a->format,n_audio-1);
@@ -1138,8 +1127,7 @@
           mp_msg(MSGT_DEMUX, MSGL_INFO, "[Ogg] stream %d: subtitles (SRT-like text subtitles), -sid %d\n", ogg_d->num_sub, ogg_d->n_text);
 	  ogg_d->subs[ogg_d->num_sub].samplerate= get_uint64(&st->time_unit)/10;
 	  ogg_d->subs[ogg_d->num_sub].text = 1;
-	  if (identify)
-	    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", ogg_d->n_text);
+	  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", ogg_d->n_text);
           ogg_d->subs[ogg_d->num_sub].id = ogg_d->n_text;
           if (demuxer->sub->id == ogg_d->n_text)
             text_id = ogg_d->num_sub;
--- a/libmpdemux/demux_ts.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/demux_ts.c	Mon Apr 24 07:20:34 2006 +0000
@@ -594,20 +594,16 @@
 
 			if(is_video)
 			{
-				if (identify)
-					mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", es.pid);
+				mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", es.pid);
     				chosen_pid = (req_vpid == es.pid);
 				if((! chosen_pid) && (req_vpid > 0))
 					continue;
 			}
 			else if(is_audio)
 			{
-				if (identify)
-				{
-					mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", es.pid);
-					if (es.lang[0] > 0)
-						mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", es.pid, es.lang);
-				}
+				mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", es.pid);
+				if (es.lang[0] > 0)
+					mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", es.pid, es.lang);
 				if(req_apid > 0)
 				{
 					chosen_pid = (req_apid == es.pid);
@@ -625,12 +621,9 @@
 			}
 			else if(is_sub)
 			{
-				if (identify)
-				{
-					mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", es.pid);
-					if (es.lang[0] > 0)
-						mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", es.pid, es.lang);
-				}
+				mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", es.pid);
+				if (es.lang[0] > 0)
+					mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", es.pid, es.lang);
 				chosen_pid = (req_spid == es.pid);
 				if((! chosen_pid) && (req_spid > 0))
 					continue;
--- a/libmpdemux/demuxer.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/demuxer.c	Mon Apr 24 07:20:34 2006 +0000
@@ -224,8 +224,8 @@
         sh->samplesize=2;
         sh->sample_format=AF_FORMAT_S16_NE;
         sh->audio_out_minsize=8192;/* default size, maybe not enough for Win32/ACM*/
-        if (identify && !demux_aid_vid_mismatch)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", id);
+        if (!demux_aid_vid_mismatch)
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", id);
     }
     return demuxer->a_streams[id];
 }
@@ -249,8 +249,8 @@
         mp_msg(MSGT_DEMUXER,MSGL_V,MSGTR_FoundVideoStream,id);
         demuxer->v_streams[id]=malloc(sizeof(sh_video_t));
         memset(demuxer->v_streams[id],0,sizeof(sh_video_t));
-        if (identify && !demux_aid_vid_mismatch)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_ID=%d\n", id);
+        if (!demux_aid_vid_mismatch)
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_ID=%d\n", id);
     }
     return demuxer->v_streams[id];
 }
@@ -552,8 +552,7 @@
 
   mp_msg(MSGT_DEMUXER, MSGL_INFO, "Available demuxers:\n");
   mp_msg(MSGT_DEMUXER, MSGL_INFO, " demuxer:  type  info:  (comment)\n");
-  if (identify)
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DEMUXERS\n");
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_DEMUXERS\n");
   for (i = 0; demuxer_list[i]; i++) {
     if (demuxer_list[i]->type > DEMUXER_TYPE_MAX) // Don't display special demuxers
       continue;
@@ -935,13 +934,10 @@
     for(n = 0; info[2*n] != NULL ; n++)
     {
       mp_msg(MSGT_DEMUX, MSGL_INFO, " %s: %s\n",info[2*n],info[2*n+1]);
-      if (identify) {
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CLIP_INFO_NAME%d=%s\n", n, info[2*n]);
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CLIP_INFO_VALUE%d=%s\n", n, info[2*n+1]);
-      }
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_NAME%d=%s\n", n, info[2*n]);
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_VALUE%d=%s\n", n, info[2*n+1]);
     }
-    if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_CLIP_INFO_N=%d\n", n);
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_CLIP_INFO_N=%d\n", n);
 
     return 0;
 }
--- a/libmpdemux/stream_dvd.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/stream_dvd.c	Mon Apr 24 07:20:34 2006 +0000
@@ -472,7 +472,7 @@
         if (tt_srpt->title[title_no].title_set_nr != vts_no)
             continue;
         msec = mp_get_titleset_length(vts_file, tt_srpt, title_no);
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DVD_TITLE_%d_LENGTH=%d.%03d\n", title_no + 1, msec / 1000, msec % 1000);
+        mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_DVD_TITLE_%d_LENGTH=%d.%03d\n", title_no + 1, msec / 1000, msec % 1000);
     }
     ifoClose(vts_file);
     return 1;
@@ -569,17 +569,20 @@
       return STREAM_UNSUPORTED;
     }
     tt_srpt = vmg_file->tt_srpt;
-    if (identify)
+    if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
+    {
+      int title_no; ///< title number
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_DVD_TITLES=%d\n", tt_srpt->nr_of_srpts);
+      for (title_no = 0; title_no < tt_srpt->nr_of_srpts; title_no++)
+      {
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_DVD_TITLE_%d_CHAPTERS=%d\n", title_no + 1, tt_srpt->title[title_no].nr_of_ptts);
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_DVD_TITLE_%d_ANGLES=%d\n", title_no + 1, tt_srpt->title[title_no].nr_of_angles);
+      }
+    }
+    if (mp_msg_test(MSGT_IDENTIFY, MSGL_V))
     {
       unsigned char discid [16]; ///< disk ID, a 128 bit MD5 sum
       int vts_no;   ///< video title set number
-      int title_no; ///< title number
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DVD_TITLES=%d\n", tt_srpt->nr_of_srpts);
-      for (title_no = 0; title_no < tt_srpt->nr_of_srpts; title_no++)
-      {
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DVD_TITLE_%d_CHAPTERS=%d\n", title_no + 1, tt_srpt->title[title_no].nr_of_ptts);
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DVD_TITLE_%d_ANGLES=%d\n", title_no + 1, tt_srpt->title[title_no].nr_of_angles);
-      }
       for (vts_no = 1; vts_no <= vmg_file->vts_atrt->nr_of_vtss; vts_no++)
         mp_describe_titleset(dvd, tt_srpt, vts_no);
       if (DVDDiscID(dvd, discid) >= 0)
@@ -588,7 +591,7 @@
         char buf[33];
         for (i = 0; i < 16; i ++)
           sprintf(buf+2*i, "%02X", discid[i]);
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_DVD_DISC_ID=%s\n", buf);
+        mp_msg(MSGT_IDENTIFY, MSGL_V, "ID_DVD_DISC_ID=%s\n", buf);
       }
     }
     /**
@@ -731,11 +734,9 @@
              tmp,
              d->audio_streams[d->nr_of_channels].id
            );
-           if(identify) {
-             mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_ID=%d\n", d->audio_streams[d->nr_of_channels].id);
-             if(language && tmp[0])
-               mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AID_%d_LANG=%s\n", d->audio_streams[d->nr_of_channels].id, tmp);
-           }
+           mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_ID=%d\n", d->audio_streams[d->nr_of_channels].id);
+           if(language && tmp[0])
+             mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AID_%d_LANG=%s\n", d->audio_streams[d->nr_of_channels].id, tmp);
 
            d->nr_of_channels++;
          }
@@ -784,11 +785,9 @@
 #endif
 
         mp_msg(MSGT_OPEN,MSGL_V,"[open] subtitle ( sid ): %d language: %s\n", d->nr_of_subtitles, tmp);
-        if(identify) {
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", d->subtitles[d->nr_of_subtitles].id);
-          if(language && tmp[0])
-            mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SID_%d_LANG=%s\n", d->nr_of_subtitles, tmp);
-        }
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SUBTITLE_ID=%d\n", d->subtitles[d->nr_of_subtitles].id);
+        if(language && tmp[0])
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SID_%d_LANG=%s\n", d->nr_of_subtitles, tmp);
         d->nr_of_subtitles++;
       }
       mp_msg(MSGT_OPEN,MSGL_V,"[open] number of subtitles on disk: %d\n",d->nr_of_subtitles );
--- a/libmpdemux/vcd_read.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/vcd_read.h	Mon Apr 24 07:20:34 2006 +0000
@@ -65,11 +65,8 @@
     mp_msg(MSGT_OPEN,MSGL_ERR,"read CDROM toc header: %s\n",strerror(errno));
     return NULL;
   }
-  if (identify)
-  {
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.cdth_trk0);
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.cdth_trk1);
-  }
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.cdth_trk0);
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.cdth_trk1);
   for (i=tochdr.cdth_trk0 ; i<=tochdr.cdth_trk1 + 1; i++){
       struct cdrom_tocentry tocentry;
 
@@ -93,7 +90,7 @@
           (int)tocentry.cdte_datamode
       );
 
-      if (identify)
+      if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
       {
         if (i > tochdr.cdth_trk0)
         {
@@ -110,7 +107,7 @@
             sec += 60;
             min --;
           }
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
         }
         min = tocentry.cdte_addr.msf.minute;
         sec = tocentry.cdte_addr.msf.second;
--- a/libmpdemux/vcd_read_darwin.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/vcd_read_darwin.h	Mon Apr 24 07:20:34 2006 +0000
@@ -124,11 +124,8 @@
     }
 	
 	//print all track info
-	if (identify)
-	{
-		mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", hdr.firstTrackNumberInLastSessionLSB);
-		mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", hdr.lastTrackNumberInLastSessionLSB);
-	}
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", hdr.firstTrackNumberInLastSessionLSB);
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", hdr.lastTrackNumberInLastSessionLSB);
 	for (i=hdr.firstTrackNumberInLastSessionLSB ; i<=hdr.lastTrackNumberInLastSessionLSB + 1; i++)
 	{
 		memset( &tocentry, 0, sizeof(tocentry));
@@ -157,7 +154,7 @@
           (int)trackMSF.frame
 		);
 
-		if (identify)
+		if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
 		{
 		  if (i > hdr.firstTrackNumberInLastSessionLSB)
 		  {
@@ -174,7 +171,7 @@
 		      sec += 60;
 		      min --;
 		    }
-		    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
+		    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
 		  }
 		  min = trackMSF.minute;
 		  sec = trackMSF.second;
--- a/libmpdemux/vcd_read_fbsd.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/vcd_read_fbsd.h	Mon Apr 24 07:20:34 2006 +0000
@@ -65,11 +65,8 @@
     mp_msg(MSGT_OPEN,MSGL_ERR,"read CDROM toc header: %s\n",strerror(errno));
     return NULL;
   }
-  if (identify)
-  {
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.starting_track);
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.ending_track);
-  }
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.starting_track);
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.ending_track);
   for (i=tochdr.starting_track ; i<=tochdr.ending_track + 1; i++){
       struct ioc_read_toc_single_entry tocentry;
 
@@ -92,7 +89,7 @@
           (int)tocentry.entry.addr.msf.frame
       );
 
-      if (identify)
+      if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
       {
         if (i > tochdr.starting_track)
         {
@@ -109,7 +106,7 @@
             sec += 60;
             min --;
           }
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
+          mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
         }
         min = tocentry.entry.addr.msf.minute;
         sec = tocentry.entry.addr.msf.second;
--- a/libmpdemux/vcd_read_nbsd.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/libmpdemux/vcd_read_nbsd.h	Mon Apr 24 07:20:34 2006 +0000
@@ -89,11 +89,8 @@
     mp_msg(MSGT_OPEN,MSGL_ERR,"read CDROM toc header: %s\n",strerror(errno));
     return;
   }
-  if (identify)
-  {
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.starting_track);
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.ending_track);
-  }
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_START_TRACK=%d\n", tochdr.starting_track);
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_END_TRACK=%d\n", tochdr.ending_track);
   for (i = tochdr.starting_track; i <= tochdr.ending_track + 1; i++) {
     struct ioc_read_toc_entry tocentry;
     struct cd_toc_entry tocentry_data;
@@ -118,7 +115,7 @@
 	   (int) tocentry.data->addr.msf.frame
       );
 
-    if (identify)
+    if (mp_msg_test(MSGT_IDENTIFY, MSGL_INFO))
     {
       if (i > tochdr.starting_track)
       {
@@ -135,7 +132,7 @@
           sec += 60;
           min --;
         }
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VCD_TRACK_%d_MSF=%02d:%02d:%02d\n", i - 1, min, sec, frame);
       }
       min = tocentry.data->addr.msf.minute;
       sec = tocentry.data->addr.msf.second;
--- a/libvo/video_out.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libvo/video_out.c	Mon Apr 24 07:20:34 2006 +0000
@@ -263,8 +263,7 @@
 void list_video_out(void){
       int i=0;
       mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableVideoOutputDrivers);
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_OUTPUTS\n");
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_OUTPUTS\n");
       while (video_out_drivers[i]) {
         const vo_info_t *info = video_out_drivers[i++]->info;
       	mp_msg(MSGT_GLOBAL, MSGL_INFO,"\t%s\t%s\n", info->short_name, info->name);
--- a/libvo/x11_common.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/libvo/x11_common.c	Mon Apr 24 07:20:34 2006 +0000
@@ -216,8 +216,7 @@
 void fstype_help(void)
 {
     mp_msg(MSGT_VO, MSGL_INFO, MSGTR_AvailableFsType);
-    if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_FULL_SCREEN_TYPES\n");
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_FULL_SCREEN_TYPES\n");
 
     mp_msg(MSGT_VO, MSGL_INFO, "    %-15s %s\n", "none",
            "don't set fullscreen window layer");
--- a/m_option.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/m_option.c	Mon Apr 24 07:20:34 2006 +0000
@@ -1584,8 +1584,7 @@
   if(!strcmp(param,"help")) {
     m_obj_list_t* ol = opt->priv;
     mp_msg(MSGT_VFILTER,MSGL_INFO,"Available video filters:\n");
-    if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_FILTERS\n");
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_FILTERS\n");
     for(n = 0 ; ol->list[n] ; n++)
       mp_msg(MSGT_VFILTER,MSGL_INFO,"  %-15s: %s\n",
 	     M_ST_MB(char*,ol->list[n],ol->name_off),
--- a/mencoder.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/mencoder.c	Mon Apr 24 07:20:34 2006 +0000
@@ -130,7 +130,6 @@
 //void resync_audio_stream(sh_audio_t *sh_audio){}
 
 extern int verbose; // must be global!
-int identify=0;
 int quiet=0;
 double video_time_usage=0;
 double vout_time_usage=0;
--- a/mp_msg.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/mp_msg.c	Mon Apr 24 07:20:34 2006 +0000
@@ -44,6 +44,7 @@
     if (env)
         verbose = atoi(env);
     for(i=0;i<MSGT_MAX;i++) mp_msg_levels[i] = -2;
+    mp_msg_levels[MSGT_IDENTIFY] = -1; // no -identify output by default
 #ifdef USE_ICONV
     mp_msg_charset = getenv("MPLAYER_CHARSET");
 #ifdef USE_LANGINFO
--- a/mp_msg.h	Mon Apr 24 06:28:45 2006 +0000
+++ b/mp_msg.h	Mon Apr 24 07:20:34 2006 +0000
@@ -4,7 +4,6 @@
 
 // defined in mplayer.c and mencoder.c
 extern int verbose;
-extern int identify;
 
 // verbosity elevel:
 
@@ -96,6 +95,8 @@
 
 #define MSGT_OSD_MENU 40
 
+#define MSGT_IDENTIFY 41  // -identify output
+
 #define MSGT_MAX 64
 
 void mp_msg_init(void);
--- a/mplayer.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/mplayer.c	Mon Apr 24 07:20:34 2006 +0000
@@ -88,7 +88,6 @@
 int slave_mode=0;
 int player_idle_mode=0;
 extern int verbose;
-int identify=0;
 int quiet=0;
 
 #ifdef WIN32
@@ -588,8 +587,7 @@
   mp_msg(MSGT_CPLAYER,MSGL_FATAL,"\n" MSGTR_IntBySignal,x,
       current_module?current_module:"unknown"
   );
-  if (identify)
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_SIGNAL=%d\n", x);
+  mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_SIGNAL=%d\n", x);
   if(sig_count<=1)
   switch(x){
   case SIGINT:
@@ -804,11 +802,8 @@
         mp_msg(MSGT_CPLAYER, MSGL_ERR, MSGTR_CantLoadSub, filename);
     if (subd == NULL || set_of_sub_size >= MAX_SUBTITLE_FILES) return;
     set_of_subtitles[set_of_sub_size] = subd;
-    if (identify)
-    {
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_FILE_SUB_ID=%d\n", set_of_sub_size);
-      mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_FILE_SUB_FILENAME=%s\n", filename);
-    }
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_FILE_SUB_ID=%d\n", set_of_sub_size);
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_FILE_SUB_FILENAME=%s\n", filename);
     ++set_of_sub_size;
     mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AddedSubtitleFile, set_of_sub_size, filename);
 }
@@ -2450,16 +2445,14 @@
 #endif
     if(audio_codec_list && strcmp(audio_codec_list[0],"help")==0){
       mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableAudioCodecs);
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_CODECS\n");
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_CODECS\n");
       list_codecs(1);
       mp_msg(MSGT_FIXME, MSGL_FIXME, "\n");
       opt_exit = 1;
     }
     if(video_codec_list && strcmp(video_codec_list[0],"help")==0){
       mp_msg(MSGT_CPLAYER, MSGL_INFO, MSGTR_AvailableVideoCodecs);
-      if (identify)
-        mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_CODECS\n");
+      mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_CODECS\n");
       list_codecs(0);
       mp_msg(MSGT_FIXME, MSGL_FIXME, "\n");
       opt_exit = 1;
@@ -3284,35 +3277,33 @@
   mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n");
 }
 
-if(identify) {
-  mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_FILENAME=%s\n", filename);
-  mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_DEMUXER=%s\n", demuxer->desc->name);
+  mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_FILENAME=%s\n", filename);
+  mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_DEMUXER=%s\n", demuxer->desc->name);
   if (sh_video) {
     /* Assume FOURCC if all bytes >= 0x20 (' ') */
     if (sh_video->format >= 0x20202020)
-	mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_FORMAT=%.4s\n", (char *)&sh_video->format);
+	mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_FORMAT=%.4s\n", (char *)&sh_video->format);
     else
-	mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_FORMAT=0x%08X\n", sh_video->format);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_BITRATE=%d\n", sh_video->i_bps*8);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_WIDTH=%d\n", sh_video->disp_w);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_HEIGHT=%d\n", sh_video->disp_h);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_FPS=%5.3f\n", sh_video->fps);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_ASPECT=%1.4f\n", sh_video->aspect);
+	mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_FORMAT=0x%08X\n", sh_video->format);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_BITRATE=%d\n", sh_video->i_bps*8);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_WIDTH=%d\n", sh_video->disp_w);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_HEIGHT=%d\n", sh_video->disp_h);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_FPS=%5.3f\n", sh_video->fps);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_VIDEO_ASPECT=%1.4f\n", sh_video->aspect);
   }
   if (sh_audio) {
     if (sh_audio->codec)
-      mp_msg(MSGT_GLOBAL,MSGL_INFO, "ID_AUDIO_CODEC=%s\n", sh_audio->codec->name);
+      mp_msg(MSGT_IDENTIFY,MSGL_INFO, "ID_AUDIO_CODEC=%s\n", sh_audio->codec->name);
     /* Assume FOURCC if all bytes >= 0x20 (' ') */
     if (sh_audio->format >= 0x20202020)
-      mp_msg(MSGT_GLOBAL,MSGL_INFO, "ID_AUDIO_FORMAT=%.4s\n", (char *)&sh_audio->format);
+      mp_msg(MSGT_IDENTIFY,MSGL_INFO, "ID_AUDIO_FORMAT=%.4s\n", (char *)&sh_audio->format);
     else
-      mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_AUDIO_FORMAT=%d\n", sh_audio->format);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_AUDIO_BITRATE=%d\n", sh_audio->i_bps*8);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_AUDIO_RATE=%d\n", sh_audio->samplerate);
-    mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_AUDIO_NCH=%d\n", sh_audio->channels);
+      mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_AUDIO_FORMAT=%d\n", sh_audio->format);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_AUDIO_BITRATE=%d\n", sh_audio->i_bps*8);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_AUDIO_RATE=%d\n", sh_audio->samplerate);
+    mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_AUDIO_NCH=%d\n", sh_audio->channels);
   }
-  mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_LENGTH=%.2lf\n", demuxer_get_time_length(demuxer));
-}
+  mp_msg(MSGT_IDENTIFY,MSGL_INFO,"ID_LENGTH=%.2lf\n", demuxer_get_time_length(demuxer));
 
 if(!sh_video) goto main; // audio-only
 
@@ -3365,8 +3356,8 @@
 
 inited_flags|=INITED_VCODEC;
 
-if (identify && sh_video->codec)
-    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VIDEO_CODEC=%s\n", sh_video->codec->name);
+if (sh_video->codec)
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VIDEO_CODEC=%s\n", sh_video->codec->name);
 
 if(auto_quality>0){
     // Auto quality option enabled
@@ -4000,8 +3991,7 @@
 	  update_osd_msg();
 	} else
 	  mp_msg(MSGT_CPLAYER,MSGL_STATUS,MSGTR_Paused);
-        if (identify)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_PAUSED\n");
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_PAUSED\n");
 	fflush(stdout);
       }
 #ifdef HAVE_NEW_GUI
@@ -4538,8 +4528,7 @@
     } break;
     case MP_CMD_SWITCH_AUDIO : {
         int v = demuxer_switch_audio(demuxer, cmd->args[0].v.i);
-        if (identify)
-          mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_AUDIO_TRACK=%d\n", v);
+        mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_AUDIO_TRACK=%d\n", v);
     } break;
     case MP_CMD_RUN : {
 #ifndef __MINGW32__
--- a/vobsub.c	Mon Apr 24 06:28:45 2006 +0000
+++ b/vobsub.c	Mon Apr 24 07:20:34 2006 +0000
@@ -656,12 +656,9 @@
 	memcpy(vob->spu_streams[index].id, id, idlen);
     }
     vob->spu_streams_current = index;
-    if (identify)
-    {
-	mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VOBSUB_ID=%d\n", index);
-	if (id && idlen)
-	    mp_msg(MSGT_GLOBAL, MSGL_INFO, "ID_VSID_%d_LANG=%s\n", index, vob->spu_streams[index].id);
-    }
+    mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VOBSUB_ID=%d\n", index);
+    if (id && idlen)
+	mp_msg(MSGT_IDENTIFY, MSGL_INFO, "ID_VSID_%d_LANG=%s\n", index, vob->spu_streams[index].id);
     mp_msg(MSGT_VOBSUB,MSGL_V,"[vobsub] subtitle (vobsubid): %d language %s\n",
 		index, vob->spu_streams[index].id);
     return 0;