# HG changeset patch # User reimar # Date 1145020715 0 # Node ID 96fdfbad5b1a7f69c66fafc2a651d486c9e86783 # Parent 71f9a4e7fd9d6fc3518fe78d225b9fd4cfe63a61 -ao pcm:fast suboption for faster-than-realtime dumping diff -r 71f9a4e7fd9d -r 96fdfbad5b1a DOCS/man/en/mplayer.1 --- a/DOCS/man/en/mplayer.1 Fri Apr 14 13:03:05 2006 +0000 +++ b/DOCS/man/en/mplayer.1 Fri Apr 14 13:18:35 2006 +0000 @@ -2226,6 +2226,11 @@ Write the sound to instead of the default audiodump.wav. If nowaveheader is specified, the default is audiodump.pcm. +.IPs fast +Try to dump file faster than realtime. +Make sure the output does not get truncated (usually with +"Too many video packets in buffer" message). +It is normal that you get a "Your system is too SLOW to play this!" message. .RE .PD 1 . diff -r 71f9a4e7fd9d -r 96fdfbad5b1a help/help_mp-en.h --- a/help/help_mp-en.h Fri Apr 14 13:03:05 2006 +0000 +++ b/help/help_mp-en.h Fri Apr 14 13:18:35 2006 +0000 @@ -1094,7 +1094,7 @@ // ao_pcm.c #define MSGTR_AO_PCM_FileInfo "[AO PCM] File: %s (%s)\nPCM: Samplerate: %iHz Channels: %s Format %s\n" -#define MSGTR_AO_PCM_HintInfo "[AO PCM] Info: Faster dumping is achieved with -vc null -vo null\n[AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default).\n" +#define MSGTR_AO_PCM_HintInfo "[AO PCM] Info: Faster dumping is achieved with -vc null -vo null -ao pcm:fast\n[AO PCM] Info: To write WAVE files use -ao pcm:waveheader (default).\n" #define MSGTR_AO_PCM_CantOpenOutputFile "[AO PCM] Failed to open %s for writing!\n" // ao_sdl.c diff -r 71f9a4e7fd9d -r 96fdfbad5b1a libao2/ao_pcm.c --- a/libao2/ao_pcm.c Fri Apr 14 13:03:05 2006 +0000 +++ b/libao2/ao_pcm.c Fri Apr 14 13:18:35 2006 +0000 @@ -27,6 +27,7 @@ static char *ao_outputfilename = NULL; static int ao_pcm_waveheader = 1; +static int fast = 0; #define WAV_ID_RIFF 0x46464952 /* "RIFF" */ #define WAV_ID_WAVE 0x45564157 /* "WAVE" */ @@ -83,6 +84,7 @@ opt_t subopts[] = { {"waveheader", OPT_ARG_BOOL, &ao_pcm_waveheader, NULL}, {"file", OPT_ARG_MSTRZ, &ao_outputfilename, NULL}, + {"fast", OPT_ARG_BOOL, &fast, NULL}, {NULL} }; // set defaults @@ -179,7 +181,7 @@ static int get_space(void){ if(vo_pts) - return ao_data.pts < vo_pts ? ao_data.outburst : 0; + return ao_data.pts < vo_pts + fast * 30000 ? ao_data.outburst : 0; return ao_data.outburst; }