mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
faad: remove defunct and otherwise obsolete code
This commit is contained in:
parent
94928e44a4
commit
50e4914edc
2 changed files with 1 additions and 293 deletions
|
@ -139,7 +139,6 @@ static void gst_faad_reset (GstFaad * faad);
|
|||
static void clear_queued (GstFaad * faad);
|
||||
|
||||
static gboolean gst_faad_setcaps (GstPad * pad, GstCaps * caps);
|
||||
static GstCaps *gst_faad_srcgetcaps (GstPad * pad);
|
||||
static gboolean gst_faad_src_event (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_faad_sink_event (GstPad * pad, GstEvent * event);
|
||||
static gboolean gst_faad_src_query (GstPad * pad, GstQuery * query);
|
||||
|
@ -217,8 +216,6 @@ gst_faad_init (GstFaad * faad)
|
|||
|
||||
faad->srcpad = gst_pad_new_from_static_template (&src_template, "src");
|
||||
gst_pad_use_fixed_caps (faad->srcpad);
|
||||
gst_pad_set_getcaps_function (faad->srcpad,
|
||||
GST_DEBUG_FUNCPTR (gst_faad_srcgetcaps));
|
||||
gst_pad_set_query_function (faad->srcpad,
|
||||
GST_DEBUG_FUNCPTR (gst_faad_src_query));
|
||||
gst_pad_set_event_function (faad->srcpad,
|
||||
|
@ -234,7 +231,6 @@ gst_faad_reset (GstFaad * faad)
|
|||
gst_segment_init (&faad->segment, GST_FORMAT_TIME);
|
||||
faad->samplerate = -1;
|
||||
faad->channels = -1;
|
||||
faad->need_channel_setup = TRUE;
|
||||
faad->init = FALSE;
|
||||
faad->packetised = FALSE;
|
||||
g_free (faad->channel_positions);
|
||||
|
@ -384,8 +380,6 @@ gst_faad_setcaps (GstPad * pad, GstCaps * caps)
|
|||
}
|
||||
}
|
||||
|
||||
faad->need_channel_setup = TRUE;
|
||||
|
||||
if (!faad->packetised)
|
||||
gst_faad_send_tags (faad);
|
||||
|
||||
|
@ -407,59 +401,6 @@ init_failed:
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Channel identifier conversion - caller g_free()s result!
|
||||
*/
|
||||
/*
|
||||
static guchar *
|
||||
gst_faad_chanpos_from_gst (GstAudioChannelPosition * pos, guint num)
|
||||
{
|
||||
guchar *fpos = g_new (guchar, num);
|
||||
guint n;
|
||||
|
||||
for (n = 0; n < num; n++) {
|
||||
switch (pos[n]) {
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT:
|
||||
fpos[n] = FRONT_CHANNEL_LEFT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT:
|
||||
fpos[n] = FRONT_CHANNEL_RIGHT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER:
|
||||
case GST_AUDIO_CHANNEL_POSITION_FRONT_MONO:
|
||||
fpos[n] = FRONT_CHANNEL_CENTER;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT:
|
||||
fpos[n] = SIDE_CHANNEL_LEFT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT:
|
||||
fpos[n] = SIDE_CHANNEL_RIGHT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_LEFT:
|
||||
fpos[n] = BACK_CHANNEL_LEFT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT:
|
||||
fpos[n] = BACK_CHANNEL_RIGHT;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_REAR_CENTER:
|
||||
fpos[n] = BACK_CHANNEL_CENTER;
|
||||
break;
|
||||
case GST_AUDIO_CHANNEL_POSITION_LFE:
|
||||
fpos[n] = LFE_CHANNEL;
|
||||
break;
|
||||
default:
|
||||
GST_WARNING ("Unsupported GST channel position 0x%x encountered",
|
||||
pos[n]);
|
||||
g_free (fpos);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
return fpos;
|
||||
}
|
||||
*/
|
||||
|
||||
static GstAudioChannelPosition *
|
||||
gst_faad_chanpos_to_gst (GstFaad * faad, guchar * fpos, guint num,
|
||||
gboolean * channel_map_failed)
|
||||
|
@ -547,237 +488,6 @@ gst_faad_chanpos_to_gst (GstFaad * faad, guchar * fpos, guint num,
|
|||
return pos;
|
||||
}
|
||||
|
||||
static GstCaps *
|
||||
gst_faad_srcgetcaps (GstPad * pad)
|
||||
{
|
||||
GstFaad *faad = GST_FAAD (gst_pad_get_parent (pad));
|
||||
static GstAudioChannelPosition *supported_positions = NULL;
|
||||
static gint num_supported_positions = LFE_CHANNEL - FRONT_CHANNEL_CENTER + 1;
|
||||
GstCaps *templ;
|
||||
|
||||
if (!supported_positions) {
|
||||
guchar *supported_fpos = g_new0 (guchar, num_supported_positions);
|
||||
gint n;
|
||||
gboolean map_failed;
|
||||
|
||||
for (n = 0; n < num_supported_positions; n++) {
|
||||
supported_fpos[n] = n + FRONT_CHANNEL_CENTER;
|
||||
}
|
||||
supported_positions = gst_faad_chanpos_to_gst (faad, supported_fpos,
|
||||
num_supported_positions, &map_failed);
|
||||
g_free (supported_fpos);
|
||||
}
|
||||
|
||||
if (faad->handle != NULL && faad->channels != -1 && faad->samplerate != -1) {
|
||||
GstCaps *caps = gst_caps_new_empty ();
|
||||
GstStructure *str;
|
||||
gint fmt[] = {
|
||||
FAAD_FMT_16BIT,
|
||||
#if 0
|
||||
FAAD_FMT_24BIT,
|
||||
FAAD_FMT_32BIT,
|
||||
FAAD_FMT_FLOAT,
|
||||
FAAD_FMT_DOUBLE,
|
||||
#endif
|
||||
-1
|
||||
}
|
||||
, n;
|
||||
|
||||
for (n = 0; fmt[n] != -1; n++) {
|
||||
switch (fmt[n]) {
|
||||
case FAAD_FMT_16BIT:
|
||||
str = gst_structure_new ("audio/x-raw-int",
|
||||
"signed", G_TYPE_BOOLEAN, TRUE,
|
||||
"width", G_TYPE_INT, 16, "depth", G_TYPE_INT, 16, NULL);
|
||||
break;
|
||||
#if 0
|
||||
case FAAD_FMT_24BIT:
|
||||
str = gst_structure_new ("audio/x-raw-int",
|
||||
"signed", G_TYPE_BOOLEAN, TRUE,
|
||||
"width", G_TYPE_INT, 24, "depth", G_TYPE_INT, 24, NULL);
|
||||
break;
|
||||
case FAAD_FMT_32BIT:
|
||||
str = gst_structure_new ("audio/x-raw-int",
|
||||
"signed", G_TYPE_BOOLEAN, TRUE,
|
||||
"width", G_TYPE_INT, 32, "depth", G_TYPE_INT, 32, NULL);
|
||||
break;
|
||||
case FAAD_FMT_FLOAT:
|
||||
str = gst_structure_new ("audio/x-raw-float",
|
||||
"depth", G_TYPE_INT, 32, NULL);
|
||||
break;
|
||||
case FAAD_FMT_DOUBLE:
|
||||
str = gst_structure_new ("audio/x-raw-float",
|
||||
"depth", G_TYPE_INT, 64, NULL);
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
str = NULL;
|
||||
break;
|
||||
}
|
||||
if (!str)
|
||||
continue;
|
||||
|
||||
if (faad->samplerate > 0) {
|
||||
gst_structure_set (str, "rate", G_TYPE_INT, faad->samplerate, NULL);
|
||||
} else {
|
||||
gst_structure_set (str, "rate", GST_TYPE_INT_RANGE, 8000, 96000, NULL);
|
||||
}
|
||||
|
||||
if (faad->channels > 0) {
|
||||
gst_structure_set (str, "channels", G_TYPE_INT, faad->channels, NULL);
|
||||
|
||||
/* put channel information here */
|
||||
if (faad->channel_positions) {
|
||||
GstAudioChannelPosition *pos;
|
||||
gboolean map_failed;
|
||||
|
||||
pos = gst_faad_chanpos_to_gst (faad, faad->channel_positions,
|
||||
faad->channels, &map_failed);
|
||||
if (map_failed) {
|
||||
gst_structure_free (str);
|
||||
continue;
|
||||
}
|
||||
if (pos) {
|
||||
gst_audio_set_channel_positions (str, pos);
|
||||
g_free (pos);
|
||||
}
|
||||
} else {
|
||||
gst_audio_set_structure_channel_positions_list (str,
|
||||
supported_positions, num_supported_positions);
|
||||
}
|
||||
} else {
|
||||
gst_structure_set (str, "channels", GST_TYPE_INT_RANGE, 1, 8, NULL);
|
||||
/* we set channel positions later */
|
||||
}
|
||||
|
||||
gst_structure_set (str, "endianness", G_TYPE_INT, G_BYTE_ORDER, NULL);
|
||||
|
||||
gst_caps_append_structure (caps, str);
|
||||
}
|
||||
|
||||
if (faad->channels == -1) {
|
||||
gst_audio_set_caps_channel_positions_list (caps,
|
||||
supported_positions, num_supported_positions);
|
||||
}
|
||||
gst_object_unref (faad);
|
||||
return caps;
|
||||
}
|
||||
|
||||
/* template with channel positions */
|
||||
templ = gst_caps_copy (GST_PAD_TEMPLATE_CAPS (GST_PAD_PAD_TEMPLATE (pad)));
|
||||
gst_audio_set_caps_channel_positions_list (templ,
|
||||
supported_positions, num_supported_positions);
|
||||
|
||||
gst_object_unref (faad);
|
||||
return templ;
|
||||
}
|
||||
|
||||
/*
|
||||
static GstPadLinkReturn
|
||||
gst_faad_srcconnect (GstPad * pad, const GstCaps * caps)
|
||||
{
|
||||
GstStructure *structure;
|
||||
const gchar *mimetype;
|
||||
gint fmt = -1;
|
||||
gint depth, rate, channels;
|
||||
GstFaad *faad = GST_FAAD (gst_pad_get_parent (pad));
|
||||
|
||||
structure = gst_caps_get_structure (caps, 0);
|
||||
|
||||
if (!faad->handle || (faad->samplerate == -1 || faad->channels == -1) ||
|
||||
!faad->channel_positions) {
|
||||
return GST_PAD_LINK_DELAYED;
|
||||
}
|
||||
|
||||
mimetype = gst_structure_get_name (structure);
|
||||
|
||||
// Samplerate and channels are normally provided through
|
||||
// * the getcaps function
|
||||
if (!gst_structure_get_int (structure, "channels", &channels) ||
|
||||
!gst_structure_get_int (structure, "rate", &rate) ||
|
||||
rate != faad->samplerate || channels != faad->channels) {
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
}
|
||||
|
||||
// Another internal checkup.
|
||||
if (faad->need_channel_setup) {
|
||||
GstAudioChannelPosition *pos;
|
||||
guchar *fpos;
|
||||
guint i;
|
||||
|
||||
pos = gst_audio_get_channel_positions (structure);
|
||||
if (!pos) {
|
||||
return GST_PAD_LINK_DELAYED;
|
||||
}
|
||||
fpos = gst_faad_chanpos_from_gst (pos, faad->channels);
|
||||
g_free (pos);
|
||||
if (!fpos)
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
|
||||
for (i = 0; i < faad->channels; i++) {
|
||||
if (fpos[i] != faad->channel_positions[i]) {
|
||||
g_free (fpos);
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
}
|
||||
}
|
||||
g_free (fpos);
|
||||
}
|
||||
|
||||
if (!strcmp (mimetype, "audio/x-raw-int")) {
|
||||
gint width;
|
||||
|
||||
if (!gst_structure_get_int (structure, "depth", &depth) ||
|
||||
!gst_structure_get_int (structure, "width", &width))
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
if (depth != width)
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
|
||||
switch (depth) {
|
||||
case 16:
|
||||
fmt = FAAD_FMT_16BIT;
|
||||
break;
|
||||
#if 0
|
||||
case 24:
|
||||
fmt = FAAD_FMT_24BIT;
|
||||
break;
|
||||
case 32:
|
||||
fmt = FAAD_FMT_32BIT;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
} else {
|
||||
if (!gst_structure_get_int (structure, "depth", &depth))
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
|
||||
switch (depth) {
|
||||
#if 0
|
||||
case 32:
|
||||
fmt = FAAD_FMT_FLOAT;
|
||||
break;
|
||||
case 64:
|
||||
fmt = FAAD_FMT_DOUBLE;
|
||||
break;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
if (fmt != -1) {
|
||||
faacDecConfiguration *conf;
|
||||
|
||||
conf = faacDecGetCurrentConfiguration (faad->handle);
|
||||
conf->outputFormat = fmt;
|
||||
if (faacDecSetConfiguration (faad->handle, conf) == 0)
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
|
||||
// FIXME: handle return value, how?
|
||||
faad->bps = depth / 8;
|
||||
|
||||
return GST_PAD_LINK_OK;
|
||||
}
|
||||
|
||||
return GST_PAD_LINK_REFUSED;
|
||||
}*/
|
||||
|
||||
static void
|
||||
clear_queued (GstFaad * faad)
|
||||
{
|
||||
|
|
|
@ -49,6 +49,7 @@ typedef struct _GstFaad {
|
|||
guint samplerate; /* sample rate of the last MPEG frame */
|
||||
guint channels; /* number of channels of the last frame */
|
||||
guint bps; /* bytes per sample */
|
||||
guchar *channel_positions;
|
||||
|
||||
guint8 fake_codec_data[2];
|
||||
|
||||
|
@ -58,9 +59,6 @@ typedef struct _GstFaad {
|
|||
faacDecHandle handle;
|
||||
gboolean init;
|
||||
|
||||
/* FAAD channel setup */
|
||||
guchar *channel_positions;
|
||||
gboolean need_channel_setup;
|
||||
gboolean packetised; /* We must differentiate between raw and packetised streams */
|
||||
|
||||
gint64 prev_ts; /* timestamp of previous buffer */
|
||||
|
|
Loading…
Reference in a new issue