summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/German/mplayer.15
-rw-r--r--DOCS/mplayer.15
-rw-r--r--cfg-mplayer.h1
-rw-r--r--mplayer.c30
4 files changed, 41 insertions, 0 deletions
diff --git a/DOCS/German/mplayer.1 b/DOCS/German/mplayer.1
index 1d553849d6..a09232a043 100644
--- a/DOCS/German/mplayer.1
+++ b/DOCS/German/mplayer.1
@@ -937,6 +937,11 @@ Zeigt eine kurze Zusammenfassung der Optionen.
.B \-hardframedrop (siehe auch \-framedrop Option)
Intensiveres Framedropping (unterbricht die Dekodierung). Führt zu Bildverzerrungen!
.TP
+.B \-identify
+Zeigt die Dateiparameter in einem leicht weiter zu verarbeitendem Format an.
+Das Script TOOLS/midentify unterdrückt andere Ausgaben von MPlayer und führt ein
+Shellescaping der Dateinamen durch.
+.TP
.B \-include <Konfigurationsdatei>
Gibt eine Konfigurationsdatei an, welche nach der normalen ausgewertet werden soll.
.TP
diff --git a/DOCS/mplayer.1 b/DOCS/mplayer.1
index 3389d74d40..463f8f869b 100644
--- a/DOCS/mplayer.1
+++ b/DOCS/mplayer.1
@@ -217,6 +217,11 @@ Show short summary of options.
More intense frame dropping (breaks decoding).
Leads to image distortion!
.TP
+.B \-identify
+Show file parameters in easy parsable format. The wrapper script
+TOOLS/midentify suppresses the other mplayer output and (hopefully)
+shellescapes the filenames.
+.TP
.B \-input <commands>
This option can be used to configure certain parts of the input system.
Paths are relative to ~/\:.mplayer/.
diff --git a/cfg-mplayer.h b/cfg-mplayer.h
index 5479e1de32..bf113b27bf 100644
--- a/cfg-mplayer.h
+++ b/cfg-mplayer.h
@@ -378,6 +378,7 @@ static config_t mplayer_opts[]={
#include "cfg-common.h"
#undef MAIN_CONF
+ {"identify", &identify, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
{"quiet", &quiet, CONF_TYPE_FLAG, CONF_GLOBAL, 0, 1, NULL},
{"noquiet", &quiet, CONF_TYPE_FLAG, CONF_GLOBAL, 1, 0, NULL},
{"verbose", &verbose, CONF_TYPE_INT, CONF_RANGE|CONF_GLOBAL, 0, 100, NULL},
diff --git a/mplayer.c b/mplayer.c
index 176e06ca12..0a0e178c1f 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -67,6 +67,7 @@
int slave_mode=0;
int verbose=0;
+int identify=0;
static int quiet=0;
#define ABS(x) (((x)>=0)?(x):(-(x)))
@@ -1148,6 +1149,35 @@ if(sh_audio){
mp_msg(MSGT_CPLAYER,MSGL_INFO,"==========================================================================\n");
}
+if(identify) {
+ mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_FILENAME=%s\n", filename);
+ 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", &sh_video->format);
+ else
+ mp_msg(MSGT_GLOBAL,MSGL_INFO,"ID_VIDEO_FORMAT=%d\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.2f\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);
+ /* Assume FOURCC if all bytes >= 0x20 (' ') */
+ if (sh_audio->format >= 0x20202020)
+ mp_msg(MSGT_GLOBAL,MSGL_INFO, "ID_AUDIO_FORMAT=%.4s\n", &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);
+ }
+ goto goto_next_file;
+}
+
if(!sh_video) goto main; // audio-only
//================== Init VIDEO (codec & libvo) ==========================