Some initial work on stereo support (not complete)
authorJean-Marc Valin <jean-marc.valin@octasic.com>
Mon, 31 Jan 2011 16:34:57 +0000 (11:34 -0500)
committerJean-Marc Valin <jean-marc.valin@octasic.com>
Mon, 31 Jan 2011 16:34:57 +0000 (11:34 -0500)
src/opus.h
src/opus_decoder.c
src/opus_encoder.c
src/test_opus.c

index 85578fa..26f4725 100644 (file)
@@ -77,7 +77,7 @@ extern "C" {
 typedef struct OpusEncoder OpusEncoder;
 typedef struct OpusDecoder OpusDecoder;
 
-OpusEncoder *opus_encoder_create(int Fs);
+OpusEncoder *opus_encoder_create(int Fs, int channels);
 
 int opus_encode(OpusEncoder *st, const short *pcm, int frame_size,
                unsigned char *data, int bytes_per_packet);
@@ -86,7 +86,7 @@ void opus_encoder_destroy(OpusEncoder *st);
 
 void opus_encoder_ctl(OpusEncoder *st, int request, ...);
 
-OpusDecoder *opus_decoder_create(int Fs);
+OpusDecoder *opus_decoder_create(int Fs, int channels);
 
 int opus_decode(OpusDecoder *st, const unsigned char *data, int len,
                short *pcm, int frame_size);
index d15c976..52d044a 100644 (file)
@@ -42,7 +42,7 @@
 #include "SKP_Silk_SDK_API.h"
 
 
-OpusDecoder *opus_decoder_create(int Fs)
+OpusDecoder *opus_decoder_create(int Fs, int channels)
 {
     char *raw_state;
        int ret, silkDecSizeBytes, celtDecSizeBytes;
@@ -68,7 +68,7 @@ OpusDecoder *opus_decoder_create(int Fs)
     }
 
        /* Initialize CELT decoder */
-       st->celt_dec = celt_decoder_init(st->celt_dec, 48000, 1, NULL);
+       st->celt_dec = celt_decoder_init(st->celt_dec, 48000, channels, NULL);
 
        return st;
 
index 7de1b21..54a5c3d 100644 (file)
@@ -41,7 +41,7 @@
 #include "modes.h"
 #include "SKP_Silk_SDK_API.h"
 
-OpusEncoder *opus_encoder_create(int Fs)
+OpusEncoder *opus_encoder_create(int Fs, int channels)
 {
     char *raw_state;
        OpusEncoder *st;
@@ -73,7 +73,7 @@ OpusEncoder *opus_encoder_create(int Fs)
 
     /* Create CELT encoder */
        /* Initialize CELT encoder */
-       st->celt_enc = celt_encoder_init(st->celt_enc, Fs, 1, NULL);
+       st->celt_enc = celt_encoder_init(st->celt_enc, Fs, channels, NULL);
 
        st->mode = MODE_HYBRID;
        st->bandwidth = BANDWIDTH_FULLBAND;
index 5dbca20..c7d6cbb 100644 (file)
@@ -105,8 +105,8 @@ int main(int argc, char *argv[])
       return 1;
    }
 
-   enc = opus_encoder_create(rate);
-   dec = opus_decoder_create(rate);
+   enc = opus_encoder_create(rate, channels);
+   dec = opus_decoder_create(rate, channels);
 
    mode = MODE_HYBRID;
    opus_encoder_ctl(enc, OPUS_SET_BANDWIDTH(BANDWIDTH_FULLBAND));