From 691d49355f83a220d35f129f12471c8ab5a62084 Mon Sep 17 00:00:00 2001 From: Mark Harris <mark.hsj@gmail.com> Date: Sat, 3 Sep 2016 10:42:19 -0700 Subject: [PATCH] Allow disabling phase inversion for multistream Also clarify in doc that conformance issue relates to decoder only. --- include/opus_defines.h | 11 ++++++----- src/opus_multistream_decoder.c | 2 ++ src/opus_multistream_encoder.c | 2 ++ 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/include/opus_defines.h b/include/opus_defines.h index 0d9aab087..140c5629c 100644 --- a/include/opus_defines.h +++ b/include/opus_defines.h @@ -682,11 +682,12 @@ extern "C" { */ #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 - * quality of mono downmixes, but slightly reducing normal stereo quality. Disabling phase - * inversion does not comply with RFC6716, even though it does not cause any - * interoperability issue. It will become part of the Opus standard once RFC6716 gets - * updated with draft-ietf-codec-opus-update. +/** If set to 1, disables the use of phase inversion for intensity stereo, + * improving the quality of mono downmixes, but slightly reducing normal + * stereo quality. Disabling phase inversion in the decoder does not comply + * with RFC 6716, although it does not cause any interoperability issue and + * 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 * @param[in] x <tt>opus_int32</tt>: Allowed values: * <dl> diff --git a/src/opus_multistream_decoder.c b/src/opus_multistream_decoder.c index b95eaa6ea..30cc54b24 100644 --- a/src/opus_multistream_decoder.c +++ b/src/opus_multistream_decoder.c @@ -425,6 +425,7 @@ int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) case OPUS_GET_SAMPLE_RATE_REQUEST: case OPUS_GET_GAIN_REQUEST: case OPUS_GET_LAST_PACKET_DURATION_REQUEST: + case OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST: { OpusDecoder *dec; /* For int32* GET params, just query the first stream */ @@ -499,6 +500,7 @@ int opus_multistream_decoder_ctl(OpusMSDecoder *st, int request, ...) } break; case OPUS_SET_GAIN_REQUEST: + case OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST: { int s; /* This works for int32 params */ diff --git a/src/opus_multistream_encoder.c b/src/opus_multistream_encoder.c index f4e00fe5c..b9d60c88c 100644 --- a/src/opus_multistream_encoder.c +++ b/src/opus_multistream_encoder.c @@ -1204,6 +1204,7 @@ int opus_multistream_encoder_ctl(OpusMSEncoder *st, int request, ...) case OPUS_GET_INBAND_FEC_REQUEST: case OPUS_GET_FORCE_CHANNELS_REQUEST: case OPUS_GET_PREDICTION_DISABLED_REQUEST: + case OPUS_GET_PHASE_INVERSION_DISABLED_REQUEST: { OpusEncoder *enc; /* 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_CHANNELS_REQUEST: case OPUS_SET_PREDICTION_DISABLED_REQUEST: + case OPUS_SET_PHASE_INVERSION_DISABLED_REQUEST: { int s; /* This works for int32 params */ -- GitLab