summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGregory Maxwell <greg@xiph.org>2012-07-13 20:55:23 -0400
committerGregory Maxwell <greg@xiph.org>2012-07-13 20:55:23 -0400
commit39af83a96dc0b38a8e96925ceeac9e3b058f51a0 (patch)
treeda0188b4c601f537155c3e5cb2c4191e8e6b086e
parentedea41d29d5188673b3b2085ea7d39fa3ac07bef (diff)
downloadopus-exp_analysis6.tar.gz
OPUS_{GET,SET}_LSB_DEPTH for multichannel.exp_analysis6
-rw-r--r--src/opus_multistream.c21
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;