Opus: Generic CTLs

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

- Main Page
- Modules
- Files

Defines
Generic CTLs

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

## Defines

#define | OPUS_RESET_STATE
| Resets the codec state to be equivalent to a freshly initialized state.
#define | OPUS_GET_FINAL_RANGE(x)
| Gets the final state of the codec's entropy coder.
#define | OPUS_GET_PITCH(x)
| Gets the pitch of the last decoded frame, if available.
#define | OPUS_GET_BANDWIDTH(x)
| Gets the encoder's configured bandpass or the decoder's last bandpass.

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

## Define 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_PITCH | ( |  | x | ) |

Gets the pitch of the last decoded frame, if available.

This can be used for any post-processing algorithm requiring the use of pitch, e.g. time stretching/shortening. If the last frame was not voiced, or if the pitch was not coded in the frame, then zero is returned.

This CTL is only implemented for decoder instances.

Parameters:

  [out] | x | `opus_int32 *`: pitch period at 48 kHz (or 0 if not available)

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

All Files Functions Typedefs Defines

For more information visit the Opus Website. |