gst_opus_enc_setup (GstOpusEnc * enc)
{
int error = OPUS_OK;
+ GstCaps *caps;
+ gboolean ret;
#ifndef GST_DISABLE_GST_DEBUG
GST_DEBUG_OBJECT (enc,
GST_LOG_OBJECT (enc, "we have frame size %d", enc->frame_size);
- return TRUE;
+ gst_opus_header_create_caps (&caps, NULL, enc->n_channels,
+ enc->n_stereo_streams, enc->sample_rate, enc->channel_mapping_family,
+ enc->decoding_channel_mapping,
+ gst_tag_setter_get_tag_list (GST_TAG_SETTER (enc)));
+
+ /* negotiate with these caps */
+ GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps);
+
+ ret = gst_audio_encoder_set_output_format (GST_AUDIO_ENCODER (enc), caps);
+ gst_caps_unref (caps);
+
+ return ret;
encoder_creation_failed:
GST_ERROR_OBJECT (enc, "Encoder creation failed");
enc = GST_OPUS_ENC (benc);
GST_DEBUG_OBJECT (enc, "handle_frame");
-
- if (!gst_pad_has_current_caps (GST_AUDIO_ENCODER_SRC_PAD (benc))) {
- GstCaps *caps;
-
- gst_opus_header_create_caps (&caps, NULL, enc->n_channels,
- enc->n_stereo_streams, enc->sample_rate, enc->channel_mapping_family,
- enc->decoding_channel_mapping,
- gst_tag_setter_get_tag_list (GST_TAG_SETTER (enc)));
-
- /* negotiate with these caps */
- GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps);
-
- gst_audio_encoder_set_output_format (benc, caps);
- gst_caps_unref (caps);
- }
-
GST_DEBUG_OBJECT (enc, "received buffer %p of %" G_GSIZE_FORMAT " bytes", buf,
buf ? gst_buffer_get_size (buf) : 0);