summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/en/mplayer.128
-rw-r--r--cfg-mplayer.h6
-rw-r--r--etc/dvb-menu.conf2
-rw-r--r--etc/menu.conf2
-rw-r--r--libao2/ao_pcm.c23
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)