Allow disabling phase inversion for multistream

Also clarify in doc that conformance issue relates to decoder only.
This commit is contained in:
Mark Harris 2016-09-03 10:42:19 -07:00
parent f25b46a303
commit 691d49355f
No known key found for this signature in database
GPG key ID: 92293B4D0118BDB0
3 changed files with 10 additions and 5 deletions

View file

@ -682,11 +682,12 @@ extern "C" {
*/ */
#define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x) #define OPUS_GET_SAMPLE_RATE(x) OPUS_GET_SAMPLE_RATE_REQUEST, __opus_check_int_ptr(x)
/** If set to 1, disables the use of phase inversion for intensity stereo, improving the /** If set to 1, disables the use of phase inversion for intensity stereo,
* quality of mono downmixes, but slightly reducing normal stereo quality. Disabling phase * improving the quality of mono downmixes, but slightly reducing normal
* inversion does not comply with RFC6716, even though it does not cause any * stereo quality. Disabling phase inversion in the decoder does not comply
* interoperability issue. It will become part of the Opus standard once RFC6716 gets * with RFC 6716, although it does not cause any interoperability issue and
* updated with draft-ietf-codec-opus-update. * is expected to become part of the Opus standard once RFC 6716 is updated
* by draft-ietf-codec-opus-update.
* @see OPUS_GET_PHASE_INVERSION_DISABLED * @see OPUS_GET_PHASE_INVERSION_DISABLED
* @param[in] x <tt>opus_int32</tt>: Allowed values: * @param[in] x <tt>opus_int32</tt>: Allowed values:
* <dl> * <dl>

View file

@ -425,6 +425,7 @@ int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...)
case OPUS_GET_SAMPLE_RATE_REQUEST: case OPUS_GET_SAMPLE_RATE_REQUEST:
case OPUS_GET_GAIN_REQUEST: case OPUS_GET_GAIN_REQUEST:
case OPUS_GET_LAST_PACKET_DURATION_REQUEST: case OPUS_GET_LAST_PACKET_DURATION_REQUEST:
case OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST:
{ {
OpusDecoder *dec; OpusDecoder *dec;
/* For int32* GET params, just query the first stream */ /* For int32* GET params, just query the first stream */
@ -499,6 +500,7 @@ int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...)
} }
break; break;
case OPUS_SET_GAIN_REQUEST: case OPUS_SET_GAIN_REQUEST:
case OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST:
{ {
int s; int s;
/* This works for int32 params */ /* This works for int32 params */

View file

@ -1204,6 +1204,7 @@ int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...)
case OPUS_GET_INBAND_FEC_REQUEST: case OPUS_GET_INBAND_FEC_REQUEST:
case OPUS_GET_FORCE_CHANNELS_REQUEST: case OPUS_GET_FORCE_CHANNELS_REQUEST:
case OPUS_GET_PREDICTION_DISABLED_REQUEST: case OPUS_GET_PREDICTION_DISABLED_REQUEST:
case OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST:
{ {
OpusEncoder *enc; OpusEncoder *enc;
/* For int32* GET params, just query the first stream */ /* For int32* GET params, just query the first stream */
@ -1250,6 +1251,7 @@ int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...)
case OPUS_SET_FORCE_MODE_REQUEST: case OPUS_SET_FORCE_MODE_REQUEST:
case OPUS_SET_FORCE_CHANNELS_REQUEST: case OPUS_SET_FORCE_CHANNELS_REQUEST:
case OPUS_SET_PREDICTION_DISABLED_REQUEST: case OPUS_SET_PREDICTION_DISABLED_REQUEST:
case OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST:
{ {
int s; int s;
/* This works for int32 params */ /* This works for int32 params */