Mercurial > mplayer.hg
changeset 14298:3c818342a02b
Add -ao pcm suboptions and remove -aofile and -waveheader options.
Base on idea by Olivier Rolland (billl at users dot sf dot net)
author | reimar |
---|---|
date | Sun, 02 Jan 2005 14:41:47 +0000 |
parents | 85ec4f714596 |
children | 40600d007493 |
files | DOCS/man/en/mplayer.1 cfg-mplayer.h etc/dvb-menu.conf etc/menu.conf libao2/ao_pcm.c |
diffstat | 5 files changed, 39 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Sun Jan 02 14:29:43 2005 +0000 +++ b/DOCS/man/en/mplayer.1 Sun Jan 02 14:41:47 2005 +0000 @@ -1669,10 +1669,6 @@ 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 @@ 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 @@ 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\ \
--- a/cfg-mplayer.h Sun Jan 02 14:29:43 2005 +0000 +++ b/cfg-mplayer.h Sun Jan 02 14:41:47 2005 +0000 @@ -167,9 +167,9 @@ {"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},
--- a/etc/dvb-menu.conf Sun Jan 02 14:29:43 2005 +0000 +++ b/etc/dvb-menu.conf Sun Jan 02 14:41:47 2005 +0000 @@ -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">
--- a/etc/menu.conf Sun Jan 02 14:29:43 2005 +0000 +++ b/etc/menu.conf Sun Jan 02 14:41:47 2005 +0000 @@ -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">
--- a/libao2/ao_pcm.c Sun Jan 02 14:29:43 2005 +0000 +++ b/libao2/ao_pcm.c Sun Jan 02 14:41:47 2005 +0000 @@ -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 @@ 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 @@ // 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 @@ 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)