{
GstAudioChannelPosition pos[64];
const GstAudioChannelPosition *posn = NULL;
+ guint8 n_channels;
if (!gst_opus_header_is_id_header (buf)) {
GST_ELEMENT_ERROR (dec, STREAM, FORMAT, (NULL),
if (!gst_codec_utils_opus_parse_header (buf,
&dec->sample_rate,
- (guint8 *) & dec->n_channels,
+ &n_channels,
&dec->channel_mapping_family,
&dec->n_streams,
&dec->n_stereo_streams,
("Failed to parse Opus ID header"));
return GST_FLOW_ERROR;
}
+ dec->n_channels = n_channels;
dec->r128_gain_volume = gst_opus_dec_get_r128_volume (dec->r128_gain);
GST_INFO_OBJECT (dec,
}
} else {
const GstAudioChannelPosition *posn = NULL;
+ guint8 n_channels;
if (!gst_codec_utils_opus_parse_caps (caps, &dec->sample_rate,
- (guint8 *) & dec->n_channels, &dec->channel_mapping_family,
+ &n_channels, &dec->channel_mapping_family,
&dec->n_streams, &dec->n_stereo_streams, dec->channel_mapping)) {
ret = FALSE;
goto done;
}
+ dec->n_channels = n_channels;
if (dec->channel_mapping_family == 1 && dec->n_channels <= 8)
posn = gst_opus_channel_positions[dec->n_channels - 1];