From 9b092dd388a98f8ceb8ec703fe2b757e88e96ec0 Mon Sep 17 00:00:00 2001 From: Andrew Allen Date: Mon, 19 Mar 2018 14:55:24 -0700 Subject: Support for Ambisonics. Signed-off-by: Jean-Marc Valin --- src/opus_projection_decoder.c | 101 ++++++++++++++++++++++++++++++++++++++++++ src/opus_projection_encoder.c | 89 +++++++++++++++++++++++++++++++++++++ 2 files changed, 190 insertions(+) (limited to 'src') diff --git a/src/opus_projection_decoder.c b/src/opus_projection_decoder.c index d39cb834..c879ead7 100644 --- a/src/opus_projection_decoder.c +++ b/src/opus_projection_decoder.c @@ -254,4 +254,105 @@ void opus_projection_decoder_destroy(OpusProjectionDecoder *st) opus_free(st); } +#else /* ENABLE_EXPERIMENTAL_AMBISONICS */ + +opus_int32 opus_projection_decoder_get_size( + int channels, + int streams, + int coupled_streams) +{ + (void)channels; + (void)streams; + (void)coupled_streams; + return OPUS_UNIMPLEMENTED; +} + +OpusProjectionDecoder *opus_projection_decoder_create( + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size, + int *error) +{ + (void)Fs; + (void)channels; + (void)streams; + (void)coupled_streams; + (void)demixing_matrix; + (void)demixing_matrix_size; + if (error) *error = OPUS_UNIMPLEMENTED; + return NULL; +} + +int opus_projection_decoder_init( + OpusProjectionDecoder *st, + opus_int32 Fs, + int channels, + int streams, + int coupled_streams, + unsigned char *demixing_matrix, + opus_int32 demixing_matrix_size) +{ + (void)st; + (void)Fs; + (void)channels; + (void)streams; + (void)coupled_streams; + (void)demixing_matrix; + (void)demixing_matrix_size; + return OPUS_UNIMPLEMENTED; +} + +int opus_projection_decode( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + opus_int16 *pcm, + int frame_size, + int decode_fec) +{ + (void)st; + (void)data; + (void)len; + (void)pcm; + (void)frame_size; + (void)decode_fec; + return OPUS_UNIMPLEMENTED; +} + +int opus_projection_decode_float( + OpusProjectionDecoder *st, + const unsigned char *data, + opus_int32 len, + float *pcm, + int frame_size, + int decode_fec) +{ + (void)st; + (void)data; + (void)len; + (void)pcm; + (void)frame_size; + (void)decode_fec; + return OPUS_UNIMPLEMENTED; +} + +int opus_projection_decoder_ctl( + OpusProjectionDecoder *st, + int request, + ...) +{ + (void)st; + (void)request; + return OPUS_UNIMPLEMENTED; +} + +void opus_projection_decoder_destroy( + OpusProjectionDecoder *st) +{ + (void)st; +} + #endif /* ENABLE_EXPERIMENTAL_AMBISONICS */ diff --git a/src/opus_projection_encoder.c b/src/opus_projection_encoder.c index ea2a26ba..1c403c31 100644 --- a/src/opus_projection_encoder.c +++ b/src/opus_projection_encoder.c @@ -459,4 +459,93 @@ bad_arg: return OPUS_BAD_ARG; } +#else /* ENABLE_EXPERIMENTAL_AMBISONICS */ + +opus_int32 opus_projection_ambisonics_encoder_get_size( + int channels, int mapping_family) +{ + (void)channels; + (void)mapping_family; + return OPUS_UNIMPLEMENTED; +} + +OpusProjectionEncoder *opus_projection_ambisonics_encoder_create( + opus_int32 Fs, int channels, int mapping_family, int *streams, + int *coupled_streams, int application, int *error) +{ + (void)Fs; + (void)channels; + (void)mapping_family; + (void)streams; + (void)coupled_streams; + (void)application; + if (error) *error = OPUS_UNIMPLEMENTED; + return NULL; +} + +int opus_projection_ambisonics_encoder_init( + OpusProjectionEncoder *st, + opus_int32 Fs, + int channels, + int mapping_family, + int *streams, + int *coupled_streams, + int application) +{ + (void)st; + (void)Fs; + (void)channels; + (void)mapping_family; + (void)streams; + (void)coupled_streams; + (void)application; + return OPUS_UNIMPLEMENTED; +} + +int opus_projection_encode( + OpusProjectionEncoder *st, + const opus_int16 *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes) +{ + (void)st; + (void)pcm; + (void)frame_size; + (void)data; + (void)max_data_bytes; + return OPUS_UNIMPLEMENTED; +} + +int opus_projection_encode_float( + OpusProjectionEncoder *st, + const float *pcm, + int frame_size, + unsigned char *data, + opus_int32 max_data_bytes) +{ + (void)st; + (void)pcm; + (void)frame_size; + (void)data; + (void)max_data_bytes; + return OPUS_UNIMPLEMENTED; +} + +void opus_projection_encoder_destroy( + OpusProjectionEncoder *st) +{ + (void)st; +} + +int opus_projection_encoder_ctl( + OpusProjectionEncoder *st, + int request, + ...) +{ + (void)st; + (void)request; + return OPUS_UNIMPLEMENTED; +} + #endif /* ENABLE_EXPERIMENTAL_AMBISONICS */ -- cgit v1.2.3