Opus audio codec (RFC 6716): API and operations manual
1.1.2

Macros
Generic CTLs

These macros are used with the `opus_decoder_ctl` and `opus_encoder_ctl` calls to generate a particular request. More...

## Macros

#define | OPUS_RESET_STATE
| Resets the codec state to be equivalent to a freshly initialized state. More...
#define | OPUS_GET_FINAL_RANGE(x)
| Gets the final state of the codec's entropy coder. More...
#define | OPUS_GET_BANDWIDTH(x)
| Gets the encoder's configured bandpass or the decoder's last bandpass. More...
#define | OPUS_GET_SAMPLE_RATE(x)
| Gets the sampling rate the encoder or decoder was initialized with. More...

## Detailed Description

These macros are used with the `opus_decoder_ctl` and `opus_encoder_ctl` calls to generate a particular request.

When called on an `OpusDecoder` they apply to that particular decoder instance. When called on an `OpusEncoder` they apply to the corresponding setting on that encoder instance, if present.

Some usage examples:

int ret;
opus_int32 pitch;
ret = opus_decoder_ctl(dec_ctx, OPUS_GET_PITCH(&pitch));
if (ret == OPUS_OK) return ret;
opus_encoder_ctl(enc_ctx, OPUS_RESET_STATE);
opus_decoder_ctl(dec_ctx, OPUS_RESET_STATE);
opus_int32 enc_bw, dec_bw;
opus_encoder_ctl(enc_ctx, OPUS_GET_BANDWIDTH(&enc_bw));
opus_decoder_ctl(dec_ctx, OPUS_GET_BANDWIDTH(&dec_bw));
if (enc_bw != dec_bw) {
printf("packet bandwidth mismatch!\n");
}

See also
  Opus Encoder, opus_decoder_ctl, opus_encoder_ctl, Decoder related CTLs, Encoder related CTLs

## Macro Definition Documentation

## § OPUS_GET_BANDWIDTH

#define OPUS_GET_BANDWIDTH | ( |  | x | ) |

Gets the encoder's configured bandpass or the decoder's last bandpass.

See also
  OPUS_SET_BANDWIDTH

Parameters

  [out]

  x

  `opus_int32 *`: Returns one of the following values:
  OPUS_AUTO
    (default)
  OPUS_BANDWIDTH_NARROWBAND
    4 kHz passband
  OPUS_BANDWIDTH_MEDIUMBAND
    6 kHz passband
  OPUS_BANDWIDTH_WIDEBAND
    8 kHz passband
  OPUS_BANDWIDTH_SUPERWIDEBAND
    12 kHz passband
  OPUS_BANDWIDTH_FULLBAND
    20 kHz passband

## § OPUS_GET_FINAL_RANGE

#define OPUS_GET_FINAL_RANGE | ( |  | x | ) |

Gets the final state of the codec's entropy coder.

This is used for testing purposes, The encoder and decoder state should be identical after coding a payload (assuming no data corruption or software bugs)

Parameters

  [out] | x | `opus_uint32 *`: Entropy coder state

## § OPUS_GET_SAMPLE_RATE

#define OPUS_GET_SAMPLE_RATE | ( |  | x | ) |

Gets the sampling rate the encoder or decoder was initialized with.

This simply returns the `Fs` value passed to opus_encoder_init() or opus_decoder_init().

Parameters

  [out] | x | `opus_int32 *`: Sampling rate of encoder or decoder.

## § OPUS_RESET_STATE

#define OPUS_RESET_STATE

Resets the codec state to be equivalent to a freshly initialized state.

This should be called when switching streams in order to prevent the back to back decoding from giving different results from one at a time decoding.

For more information visit the Opus Website. |