diff options
author | Gregory Maxwell <greg@xiph.org> | 2012-07-13 20:55:23 -0400 |
---|---|---|
committer | Gregory Maxwell <greg@xiph.org> | 2012-07-13 20:55:23 -0400 |
commit | 39af83a96dc0b38a8e96925ceeac9e3b058f51a0 (patch) | |
tree | da0188b4c601f537155c3e5cb2c4191e8e6b086e | |
parent | edea41d29d5188673b3b2085ea7d39fa3ac07bef (diff) | |
download | opus-exp_analysis6.tar.gz |
OPUS_{GET,SET}_LSB_DEPTH for multichannel.exp_analysis6
-rw-r--r-- | src/opus_multistream.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/opus_multistream.c b/src/opus_multistream.c index b593bf32..6713945a 100644 --- a/src/opus_multistream.c +++ b/src/opus_multistream.c @@ -442,6 +442,7 @@ int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) } } break; + case OPUS_SET_LSB_DEPTH_REQUEST: case OPUS_SET_COMPLEXITY_REQUEST: case OPUS_SET_VBR_REQUEST: case OPUS_SET_VBR_CONSTRAINT_REQUEST: @@ -846,6 +847,26 @@ int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) *value = (OpusDecoder*)ptr; } break; + case OPUS_GET_LSB_DEPTH_REQUEST: + { + int s; + /* This works for int32 params */ + opus_int32 value = va_arg(ap, opus_int32); + for (s=0;s<st->layout.nb_streams;s++) + { + OpusDecoder *dec; + + dec = (OpusDecoder*)ptr; + if (s < st->layout.nb_coupled_streams) + ptr += align(coupled_size); + else + ptr += align(mono_size); + ret = opus_decoder_ctl(dec, request, value); + if (ret != OPUS_OK) + break; + } + } + break; default: ret = OPUS_UNIMPLEMENTED; break; |