# HG changeset patch # User reimar # Date 1104676907 0 # Node ID 3c818342a02b41f13d100fc66cbc6b9819c96f3b # Parent 85ec4f7145962c78b983206519f50d9e536a06cf Add -ao pcm suboptions and remove -aofile and -waveheader options. Base on idea by Olivier Rolland (billl at users dot sf dot net) diff -r 85ec4f714596 -r 3c818342a02b DOCS/man/en/mplayer.1 --- 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 -Override the default filename employed by \-ao pcm. -. -.TP .B \-aop 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= +Write the sound to 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 -r 85ec4f714596 -r 3c818342a02b cfg-mplayer.h --- 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= 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 -r 85ec4f714596 -r 3c818342a02b etc/dvb-menu.conf --- 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 @@ - - diff -r 85ec4f714596 -r 3c818342a02b etc/menu.conf --- 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 @@ - - diff -r 85ec4f714596 -r 3c818342a02b libao2/ao_pcm.c --- 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 #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)