diff options
author | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-07-17 21:00:30 +0000 |
---|---|---|
committer | Miguel Freitas <miguelfreitas@users.sourceforge.net> | 2004-07-17 21:00:30 +0000 |
commit | cf502f850beaf31c6a0a32649ce53ab1cc998949 (patch) | |
tree | f1e18778bcb31fd38b3ae54425d055282a78e891 | |
parent | a5a1668a269cb142a7d250e97b4141207f15f5eb (diff) | |
download | xine-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.c | 11 |
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; |