summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-07-17 21:00:30 +0000
committerMiguel Freitas <miguelfreitas@users.sourceforge.net>2004-07-17 21:00:30 +0000
commitcf502f850beaf31c6a0a32649ce53ab1cc998949 (patch)
treef1e18778bcb31fd38b3ae54425d055282a78e891
parenta5a1668a269cb142a7d250e97b4141207f15f5eb (diff)
downloadxine-lib-cf502f850beaf31c6a0a32649ce53ab1cc998949.tar.gz
xine-lib-cf502f850beaf31c6a0a32649ce53ab1cc998949.tar.bz2
Reinhard Nissl sample rate patch
CVS patchset: 6804 CVS date: 2004/07/17 21:00:30
-rw-r--r--src/liblpcm/xine_decoder.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/liblpcm/xine_decoder.c b/src/liblpcm/xine_decoder.c
index 93b0295f8..3799c9eca 100644
--- a/src/liblpcm/xine_decoder.c
+++ b/src/liblpcm/xine_decoder.c
@@ -17,7 +17,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*
- * $Id: xine_decoder.c,v 1.52 2004/05/15 20:27:51 jcdutton Exp $
+ * $Id: xine_decoder.c,v 1.53 2004/07/17 21:00:30 miguelfreitas Exp $
*
* 31-8-2001 Added LPCM rate sensing.
* (c) 2001 James Courtier-Dutton James@superbug.demon.co.uk
@@ -87,11 +87,16 @@ static void lpcm_decode_data (audio_decoder_t *this_gen, buf_element_t *buf) {
if ( (buf->decoder_flags & BUF_FLAG_SPECIAL) &&
buf->decoder_info[1] == BUF_SPECIAL_LPCM_CONFIG ) {
int bits_per_sample = 16;
- int sample_rate;
+ int sample_rate = 0;
int num_channels;
num_channels = (buf->decoder_info[2] & 0x7) + 1;
- sample_rate = buf->decoder_info[2] & 0x10 ? 96000 : 48000;
+ switch ((buf->decoder_info[2]>>4) & 3) {
+ case 0: sample_rate = 48000; break;
+ case 1: sample_rate = 96000; break;
+ case 2: sample_rate = 44100; break;
+ case 3: sample_rate = 32000; break;
+ }
switch ((buf->decoder_info[2]>>6) & 3) {
case 0: bits_per_sample = 16; break;
case 1: bits_per_sample = 20; break;