opus: make it build against current, and remove cruft

https://bugzilla.gnome.org/show_bug.cgi?id=660364
This commit is contained in:
Vincent Penquerc'h 2011-09-28 13:24:21 +01:00 committed by Sebastian Dröge
parent e4856a2965
commit ae510870e9
2 changed files with 19 additions and 83 deletions

View file

@ -566,7 +566,7 @@ static GstFlowReturn
opus_dec_chain_parse_header (GstOpusDec * dec, GstBuffer * buf) opus_dec_chain_parse_header (GstOpusDec * dec, GstBuffer * buf)
{ {
GstCaps *caps; GstCaps *caps;
//gint error = OPUS_OK; int err;
#if 0 #if 0
dec->samples_per_frame = opus_packet_get_samples_per_frame ( 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; goto invalid_header;
#endif #endif
#if 0 dec->state = opus_decoder_create (dec->sample_rate, dec->n_channels, &err);
#ifdef HAVE_OPUS_0_7 if (!dec->state || err != OPUS_OK)
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)
goto init_failed; 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, dec->frame_duration = gst_util_uint64_scale_int (dec->frame_size,
GST_SECOND, dec->sample_rate); GST_SECOND, dec->sample_rate);
@ -711,7 +679,7 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buf,
guint8 *data; guint8 *data;
GstBuffer *outbuf; GstBuffer *outbuf;
gint16 *out_data; gint16 *out_data;
int n; int n, err;
if (timestamp != -1) { if (timestamp != -1) {
dec->segment.last_stop = timestamp; dec->segment.last_stop = timestamp;
@ -721,7 +689,9 @@ opus_dec_chain_parse_data (GstOpusDec * dec, GstBuffer * buf,
if (dec->state == NULL) { if (dec->state == NULL) {
GstCaps *caps; 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 */ /* set caps */
caps = gst_caps_new_simple ("audio/x-raw-int", 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)); GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res));
return res; return res;
creation_failed:
GST_ERROR_OBJECT (dec, "Failed to create Opus decoder: %d", err);
return GST_FLOW_ERROR;
} }
static GstFlowReturn static GstFlowReturn

View file

@ -63,7 +63,7 @@ gst_opus_enc_bandwidth_get_type (void)
{OPUS_BANDWIDTH_WIDEBAND, "Wide band", "wideband"}, {OPUS_BANDWIDTH_WIDEBAND, "Wide band", "wideband"},
{OPUS_BANDWIDTH_SUPERWIDEBAND, "Super wide band", "superwideband"}, {OPUS_BANDWIDTH_SUPERWIDEBAND, "Super wide band", "superwideband"},
{OPUS_BANDWIDTH_FULLBAND, "Full band", "fullband"}, {OPUS_BANDWIDTH_FULLBAND, "Full band", "fullband"},
{OPUS_BANDWIDTH_AUTO, "Auto", "auto"}, {OPUS_AUTO, "Auto", "auto"},
{0, NULL, NULL} {0, NULL, NULL}
}; };
static volatile GType id = 0; static volatile GType id = 0;
@ -664,62 +664,24 @@ gst_opus_enc_create_metadata_buffer (GstOpusEnc * enc)
static gboolean static gboolean
gst_opus_enc_setup (GstOpusEnc * enc) gst_opus_enc_setup (GstOpusEnc * enc)
{ {
//gint error = OPUS_OK; int error = OPUS_OK;
enc->setup = FALSE; 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->state = opus_encoder_create (enc->sample_rate, enc->n_channels,
enc->audio_or_voip ? OPUS_APPLICATION_AUDIO : OPUS_APPLICATION_VOIP); enc->audio_or_voip ? OPUS_APPLICATION_AUDIO : OPUS_APPLICATION_VOIP,
if (!enc->state) &error);
if (!enc->state || error != OPUS_OK)
goto encoder_creation_failed; goto encoder_creation_failed;
opus_encoder_ctl (enc->state, OPUS_SET_BITRATE (enc->bitrate), 0); 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_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), opus_encoder_ctl (enc->state, OPUS_SET_VBR_CONSTRAINT (enc->constrained_vbr),
0); 0);
opus_encoder_ctl (enc->state, OPUS_SET_COMPLEXITY (enc->complexity), 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_INBAND_FEC (enc->inband_fec), 0);
opus_encoder_ctl (enc->state, OPUS_SET_DTX_FLAG (enc->dtx), 0); opus_encoder_ctl (enc->state, OPUS_SET_DTX (enc->dtx), 0);
opus_encoder_ctl (enc->state, opus_encoder_ctl (enc->state,
OPUS_SET_PACKET_LOSS_PERC (enc->packet_loss_percentage), 0); OPUS_SET_PACKET_LOSS_PERC (enc->packet_loss_percentage), 0);