diff options
author | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-01-02 14:41:47 +0000 |
---|---|---|
committer | reimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2005-01-02 14:41:47 +0000 |
commit | eca47b1a5edae0c25936c73ce60fa2a45ac42155 (patch) | |
tree | 7fc7fb7d2964bbb7fb45c4b25707830ab79fe837 | |
parent | e73aadd97b8d6ba6934783823ae533038cfdbed1 (diff) | |
download | mpv-eca47b1a5edae0c25936c73ce60fa2a45ac42155.tar.bz2 mpv-eca47b1a5edae0c25936c73ce60fa2a45ac42155.tar.xz |
Add -ao pcm suboptions and remove -aofile and -waveheader options.
Base on idea by Olivier Rolland (billl at users dot sf dot net)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@14299 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | DOCS/man/en/mplayer.1 | 28 | ||||
-rw-r--r-- | cfg-mplayer.h | 6 | ||||
-rw-r--r-- | etc/dvb-menu.conf | 2 | ||||
-rw-r--r-- | etc/menu.conf | 2 | ||||
-rw-r--r-- | libao2/ao_pcm.c | 23 |
5 files changed, 39 insertions, 22 deletions
diff --git a/DOCS/man/en/mplayer.1 b/DOCS/man/en/mplayer.1 index a41b21e6de..89a9c861f8 100644 --- a/DOCS/man/en/mplayer.1 +++ b/DOCS/man/en/mplayer.1 @@ -1669,10 +1669,6 @@ Specify the VOBsub subtitle ID. Override audio driver/\:card buffer size detection. . .TP -.B \-aofile <filename> -Override the default filename employed by \-ao pcm. -. -.TP .B \-aop <list=plugin1,plugin2...:option1=value1:opt2=val2...> Specify audio plugin(s) and their options (also see the audio plugins section of the documentation). @@ -1770,11 +1766,6 @@ With values below 100 the initial volume (which is 100%) will be above the maximum, which e.g.\& the OSD cannot display correctly. . .TP -.B \-nowaveheader (\-ao pcm only) -Don't include wave header. -Used for raw PCM. -. -.TP .B \-volstep <0\-100> Set the step size of mixer volume changes in percent of the whole range (default: 3). @@ -1908,9 +1899,24 @@ Produces no audio output but maintains video playback speed. Use \-nosound for benchmarking. . .TP -.B pcm (also see \-aofile) +.B pcm Raw PCM/\:wave file writer audio output. -Writes the sound to ./audiodump.wav. +.PD 0 +.RSs +.IPs (no)waveheader +Include or do not include the wave header (default: included). +When not included, raw PCM will be generated. +.IPs file=<filename> +Write the sound to <filename> instead of the default +audiodump.wav. +.REss +.PD 1 +.RS +.sp 1 +.I NOTE: +If you do not specify any option the output is progressive +(i.e.\& not interlaced). +.RE . .TP .B plugin\ \ diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 311090714c..a013f952a5 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -167,9 +167,9 @@ m_option_t mplayer_opts[]={ {"abs", &ao_data.buffersize, CONF_TYPE_INT, CONF_MIN, 0, 0, NULL}, // -ao pcm options: - {"aofile", &ao_outputfilename, CONF_TYPE_STRING, 0, 0, 0, NULL}, - {"waveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 0, 1, NULL}, - {"nowaveheader", &ao_pcm_waveheader, CONF_TYPE_FLAG, 0, 1, 0, NULL}, + {"aofile", "-aofile is deprecated. Use -ao pcm:file=<filename> instead.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, + {"waveheader", "-waveheader is deprecated. Use -ao pcm:waveheader instead.\n", CONF_TYPE_PRINT, 0, 0, 1, NULL}, + {"nowaveheader", "-nowaveheader is deprecated. Use -ao pcm:nowaveheader instead.\n", CONF_TYPE_PRINT, 0, 1, 0, NULL}, {"alsa", "-alsa has been removed. Remove it from your config file.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, diff --git a/etc/dvb-menu.conf b/etc/dvb-menu.conf index a556e19a34..1668777fce 100644 --- a/etc/dvb-menu.conf +++ b/etc/dvb-menu.conf @@ -58,10 +58,8 @@ <e name="abs"/> <e name="af"/> <e name="ao"/> - <e name="aofile"/> <e name="delay"/> <e name="mixer"/> - <e name="nowaveheader"/> </pref> <pref name="video_pref" title="Video"> diff --git a/etc/menu.conf b/etc/menu.conf index 50722172c3..8aae949326 100644 --- a/etc/menu.conf +++ b/etc/menu.conf @@ -55,10 +55,8 @@ <e name="abs"/> <e name="af"/> <e name="ao"/> - <e name="aofile"/> <e name="delay"/> <e name="mixer"/> - <e name="nowaveheader"/> </pref> <pref name="video_pref" title="Video"> diff --git a/libao2/ao_pcm.c b/libao2/ao_pcm.c index 4d97f95fc5..ba11490baf 100644 --- a/libao2/ao_pcm.c +++ b/libao2/ao_pcm.c @@ -5,6 +5,7 @@ #include <string.h> #include "bswap.h" +#include "subopt-helper.h" #include "libaf/af_format.h" #include "audio_out.h" #include "audio_out_internal.h" @@ -24,8 +25,8 @@ LIBAO_EXTERN(pcm) extern int vo_pts; -char *ao_outputfilename = NULL; -int ao_pcm_waveheader = 1; +static char *ao_outputfilename = NULL; +static int ao_pcm_waveheader = 1; #define WAV_ID_RIFF 0x46464952 /* "RIFF" */ #define WAV_ID_WAVE 0x45564157 /* "WAVE" */ @@ -79,9 +80,20 @@ static int control(int cmd,void *arg){ // return: 1=success 0=fail static int init(int rate,int channels,int format,int flags){ int bits; - if(!ao_outputfilename) { - ao_outputfilename = strdup(ao_pcm_waveheader ? "audiodump.wav" : "audiodump.pcm"); + strarg_t file; + opt_t subopts[] = { + {"waveheader", OPT_ARG_BOOL, &ao_pcm_waveheader, NULL}, + {"file", OPT_ARG_STR, &file, NULL}, + {NULL} } + // set defaults + ao_pcm_waveheader = 1; + file.str = "audiodump.wav"; + file.len = 13; + if (subopt_parse(ao_subdevice, subopts) != 0) { + return 0; + } + ao_outputfilename = strndup(file.str, file.len); /* bits is only equal to format if (format == 8) or (format == 16); this means that the following "if" is a kludge and should @@ -142,6 +154,9 @@ static void uninit(int immed){ fwrite(&wavhdr,sizeof(wavhdr),1,fp); } fclose(fp); + if (ao_outputfilename) + free(ao_outputfilename); + ao_outputfilename = NULL; } // stop playing and empty buffers (for seeking/pause) |