diff options
author | rfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-04-26 03:11:08 +0000 |
---|---|---|
committer | rfelker <rfelker@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2004-04-26 03:11:08 +0000 |
commit | 7c726367e6fd6dbdbff0e56be00047c39a4b24bd (patch) | |
tree | a84ee5af924980287c406907338b4c04651cb663 /libmpdemux/demux_rawaudio.c | |
parent | 1162cbf129d9e73a27cd6bdf2366bbfb3262f66d (diff) | |
download | mpv-7c726367e6fd6dbdbff0e56be00047c39a4b24bd.tar.bz2 mpv-7c726367e6fd6dbdbff0e56be00047c39a4b24bd.tar.xz |
needed for a/v sync with compressed audio (e.g. raw .mp2 or .ac3 file)
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@12282 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpdemux/demux_rawaudio.c')
-rw-r--r-- | libmpdemux/demux_rawaudio.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libmpdemux/demux_rawaudio.c b/libmpdemux/demux_rawaudio.c index 9f23eb4391..ac31c9426d 100644 --- a/libmpdemux/demux_rawaudio.c +++ b/libmpdemux/demux_rawaudio.c @@ -17,6 +17,7 @@ extern int demuxer_type; static int channels = 2; static int samplerate = 44100; static int samplesize = 2; +static int bitrate = 0; static int format = 0x1; // Raw PCM m_option_t demux_rawaudio_opts[] = { @@ -24,6 +25,7 @@ m_option_t demux_rawaudio_opts[] = { { "channels", &channels, CONF_TYPE_INT,CONF_RANGE,1,8, NULL }, { "rate", &samplerate, CONF_TYPE_INT,CONF_RANGE,1000,8*48000, NULL }, { "samplesize", &samplesize, CONF_TYPE_INT,CONF_RANGE,1,8, NULL }, + { "bitrate", &bitrate, CONF_TYPE_INT,CONF_MIN,0,0, NULL }, { "format", &format, CONF_TYPE_INT, CONF_MIN, 0 , 0, NULL }, {NULL, NULL, 0, 0, 0, 0, NULL} }; @@ -40,7 +42,12 @@ int demux_rawaudio_open(demuxer_t* demuxer) { w->wFormatTag = sh_audio->format = format; w->nChannels = sh_audio->channels = channels; w->nSamplesPerSec = sh_audio->samplerate = samplerate; - w->nAvgBytesPerSec = samplerate*samplesize*channels; + if (bitrate > 999) + w->nAvgBytesPerSec = bitrate/8; + else if (bitrate > 0) + w->nAvgBytesPerSec = bitrate*125; + else + w->nAvgBytesPerSec = samplerate*samplesize*channels; w->nBlockAlign = channels*samplesize; sh_audio->samplesize = samplesize; w->wBitsPerSample = 8*samplesize; |