From ae510870e9aa42ce22c553363a76f5b710ade828 Mon Sep 17 00:00:00 2001 From: Vincent Penquerc'h Date: Wed, 28 Sep 2011 13:24:21 +0100 Subject: [PATCH] opus: make it build against current, and remove cruft https://bugzilla.gnome.org/show_bug.cgi?id=660364 --- ext/opus/gstopusdec.c | 48 +++++++++----------------------------- ext/opus/gstopusenc.c | 54 +++++++------------------------------------ 2 files changed, 19 insertions(+), 83 deletions(-) diff --git a/ext/opus/gstopusdec.c b/ext/opus/gstopusdec.c index 47c06cec0a..aff4eb9346 100644 --- a/ext/opus/gstopusdec.c +++ b/ext/opus/gstopusdec.c @@ -566,7 +566,7 @@ static GstFlowReturn opus_dec_chain_parse_header (GstOpusDec * dec, GstBuffer * buf) { GstCaps *caps; - //gint error = OPUS_OK; + int err; #if 0 dec->samples_per_frame = opus_packet_get_samples_per_frame ( @@ -578,42 +578,10 @@ opus_dec_chain_parse_header (GstOpusDec * dec, GstBuffer * buf) goto invalid_header; #endif -#if 0 -#ifdef HAVE_OPUS_0_7 - dec->mode = - opus_mode_create (dec->sample_rate, dec->header.frame_size, &error); -#else - dec->mode = - opus_mode_create (dec->sample_rate, dec->header.nb_channels, - dec->header.frame_size, &error); -#endif - if (!dec->mode) - goto mode_init_failed; - - /* initialize the decoder */ -#ifdef HAVE_OPUS_0_11 - dec->state = - opus_decoder_create_custom (dec->mode, dec->header.nb_channels, &error); -#else -#ifdef HAVE_OPUS_0_7 - dec->state = opus_decoder_create (dec->mode, dec->header.nb_channels, &error); -#else - dec->state = opus_decoder_create (dec->mode); -#endif -#endif -#endif - dec->state = opus_decoder_create (dec->sample_rate, dec->n_channels); - if (!dec->state) + dec->state = opus_decoder_create (dec->sample_rate, dec->n_channels, &err); + if (!dec->state || err != OPUS_OK) goto init_failed; -#if 0 -#ifdef HAVE_OPUS_0_8 - dec->frame_size = dec->header.frame_size; -#else - opus_mode_info (dec->mode, OPUS_GET_FRAME_SIZE, &dec->frame_size); -#endif -#endif - dec->frame_duration = gst_util_uint64_scale_int (dec->frame_size, GST_SECOND, dec->sample_rate); @@ -711,7 +679,7 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buf, guint8 *data; GstBuffer *outbuf; gint16 *out_data; - int n; + int n, err; if (timestamp != -1) { dec->segment.last_stop = timestamp; @@ -721,7 +689,9 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buf, if (dec->state == NULL) { GstCaps *caps; - dec->state = opus_decoder_create (dec->sample_rate, dec->n_channels); + dec->state = opus_decoder_create (dec->sample_rate, dec->n_channels, &err); + if (!dec->state || err != OPUS_OK) + goto creation_failed; /* set caps */ caps = gst_caps_new_simple ("audio/x-raw-int", @@ -805,6 +775,10 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buf, GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); return res; + +creation_failed: + GST_ERROR_OBJECT (dec, "Failed to create Opus decoder: %d", err); + return GST_FLOW_ERROR; } static GstFlowReturn diff --git a/ext/opus/gstopusenc.c b/ext/opus/gstopusenc.c index db57ff75d1..9d4fe12862 100644 --- a/ext/opus/gstopusenc.c +++ b/ext/opus/gstopusenc.c @@ -63,7 +63,7 @@ gst_opus_enc_bandwidth_get_type (void) {OPUS_BANDWIDTH_WIDEBAND, "Wide band", "wideband"}, {OPUS_BANDWIDTH_SUPERWIDEBAND, "Super wide band", "superwideband"}, {OPUS_BANDWIDTH_FULLBAND, "Full band", "fullband"}, - {OPUS_BANDWIDTH_AUTO, "Auto", "auto"}, + {OPUS_AUTO, "Auto", "auto"}, {0, NULL, NULL} }; static volatile GType id = 0; @@ -664,62 +664,24 @@ gst_opus_enc_create_metadata_buffer (GstOpusEnc * enc) static gboolean gst_opus_enc_setup (GstOpusEnc * enc) { - //gint error = OPUS_OK; + int error = OPUS_OK; enc->setup = FALSE; -#if 0 -#ifdef HAVE_OPUS_0_7 - enc->mode = opus_mode_create (enc->rate, enc->frame_size, &error); -#else - enc->mode = - opus_mode_create (enc->rate, enc->n_channels, enc->frame_size, &error); -#endif - if (!enc->mode) - goto mode_initialization_failed; - -#ifdef HAVE_OPUS_0_11 - opus_header_init (&enc->header, enc->mode, enc->frame_size, enc->n_channels); -#else -#ifdef HAVE_OPUS_0_7 - opus_header_init (&enc->header, enc->mode, enc->n_channels); -#else - opus_header_init (&enc->header, enc->mode); -#endif -#endif - enc->header.nb_channels = enc->n_channels; - -#ifdef HAVE_OPUS_0_8 - enc->frame_size = enc->header.frame_size; -#else - opus_mode_info (enc->mode, OPUS_GET_FRAME_SIZE, &enc->frame_size); -#endif -#endif - -#if 0 -#ifdef HAVE_OPUS_0_11 - enc->state = opus_encoder_create_custom (enc->mode, enc->n_channels, &error); -#else -#ifdef HAVE_OPUS_0_7 - enc->state = opus_encoder_create (enc->mode, enc->n_channels, &error); -#else - enc->state = opus_encoder_create (enc->mode); -#endif -#endif -#endif enc->state = opus_encoder_create (enc->sample_rate, enc->n_channels, - enc->audio_or_voip ? OPUS_APPLICATION_AUDIO : OPUS_APPLICATION_VOIP); - if (!enc->state) + enc->audio_or_voip ? OPUS_APPLICATION_AUDIO : OPUS_APPLICATION_VOIP, + &error); + if (!enc->state || error != OPUS_OK) goto encoder_creation_failed; opus_encoder_ctl (enc->state, OPUS_SET_BITRATE (enc->bitrate), 0); opus_encoder_ctl (enc->state, OPUS_SET_BANDWIDTH (enc->bandwidth), 0); - opus_encoder_ctl (enc->state, OPUS_SET_VBR_FLAG (!enc->cbr), 0); + opus_encoder_ctl (enc->state, OPUS_SET_VBR (!enc->cbr), 0); opus_encoder_ctl (enc->state, OPUS_SET_VBR_CONSTRAINT (enc->constrained_vbr), 0); opus_encoder_ctl (enc->state, OPUS_SET_COMPLEXITY (enc->complexity), 0); - opus_encoder_ctl (enc->state, OPUS_SET_INBAND_FEC_FLAG (enc->inband_fec), 0); - opus_encoder_ctl (enc->state, OPUS_SET_DTX_FLAG (enc->dtx), 0); + opus_encoder_ctl (enc->state, OPUS_SET_INBAND_FEC (enc->inband_fec), 0); + opus_encoder_ctl (enc->state, OPUS_SET_DTX (enc->dtx), 0); opus_encoder_ctl (enc->state, OPUS_SET_PACKET_LOSS_PERC (enc->packet_loss_percentage), 0);