Opus: Generic CTLs

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

- Main Page
- Modules
- Files

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

#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

#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

#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.

#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. |