summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Kost <ensonic@users.sf.net>2009-11-15 21:46:01 +0200
committerStefan Kost <ensonic@users.sf.net>2009-11-16 10:20:31 +0200
commit38592a566dc83be99392488cc0e7cd01cbcffce7 (patch)
tree10cb9c75becc5febd2141ca130ace7a1a043e79e
parent6aedd998d81cc8a3aac7ae6900fc1dc72a022f85 (diff)
signalprocessor: don't set channel positions in template-caps, Fixes #601775
Revert the changes that added audio positions to template caps. We have an un- fortunate limitation in core that does not allow to do it. Keep a few things commented out, so that the channel position can later on be set in setcaps.
-rw-r--r--ext/ladspa/gstladspa.c5
-rw-r--r--ext/lv2/gstlv2.c18
-rw-r--r--gst-libs/gst/signalprocessor/gstsignalprocessor.c8
-rw-r--r--gst-libs/gst/signalprocessor/gstsignalprocessor.h3
4 files changed, 18 insertions, 16 deletions
diff --git a/ext/ladspa/gstladspa.c b/ext/ladspa/gstladspa.c
index ea282bb44f..c01e29f457 100644
--- a/ext/ladspa/gstladspa.c
+++ b/ext/ladspa/gstladspa.c
@@ -82,7 +82,6 @@ gst_ladspa_base_init (gpointer g_class)
GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
GstSignalProcessorClass *gsp_class = GST_SIGNAL_PROCESSOR_CLASS (g_class);
GstElementDetails *details;
- GstAudioChannelPosition mono_position = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO;
LADSPA_Descriptor *desc;
guint j, audio_in_count, audio_out_count, control_in_count, control_out_count;
gchar *klass_tags;
@@ -126,10 +125,10 @@ gst_ladspa_base_init (gpointer g_class)
if (LADSPA_IS_PORT_INPUT (p))
gst_signal_processor_class_add_pad_template (gsp_class, name,
- GST_PAD_SINK, gsp_class->num_audio_in++, 1, &mono_position);
+ GST_PAD_SINK, gsp_class->num_audio_in++, 1);
else
gst_signal_processor_class_add_pad_template (gsp_class, name,
- GST_PAD_SRC, gsp_class->num_audio_out++, 1, &mono_position);
+ GST_PAD_SRC, gsp_class->num_audio_out++, 1);
g_free (name);
} else if (LADSPA_IS_PORT_CONTROL (p)) {
diff --git a/ext/lv2/gstlv2.c b/ext/lv2/gstlv2.c
index 7610cd8450..4f6ffe05af 100644
--- a/ext/lv2/gstlv2.c
+++ b/ext/lv2/gstlv2.c
@@ -179,7 +179,6 @@ gst_lv2_base_init (gpointer g_class)
SLV2Values values, sub_values;
GstLV2Group *group = NULL;
GstAudioChannelPosition position = GST_AUDIO_CHANNEL_POSITION_INVALID;
- GstAudioChannelPosition mono_position = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO;
GstAudioChannelPosition *positions = NULL;
guint j, in_pad_index = 0, out_pad_index = 0;
gchar *klass_tags;
@@ -296,6 +295,11 @@ gst_lv2_base_init (gpointer g_class)
gsp_class->num_control_in = klass->control_in_ports->len;
gsp_class->num_control_out = klass->control_out_ports->len;
+ /* FIXME: see bug #601775
+ * we should set the positions in gst_signal_processor_setup vmethod
+ * but this should pass the caps then as a parameter
+ */
+
/* add input group pad templates */
for (j = 0; j < gsp_class->num_group_in; ++j) {
group = &g_array_index (klass->in_groups, GstLV2Group, j);
@@ -304,8 +308,8 @@ gst_lv2_base_init (gpointer g_class)
}
gst_signal_processor_class_add_pad_template (gsp_class,
- slv2_value_as_string (group->symbol),
- GST_PAD_SINK, j, group->ports->len, positions);
+ slv2_value_as_string (group->symbol), GST_PAD_SINK, j, group->ports->len
+ /*, positions */ );
if (group->has_roles) {
free (positions);
@@ -321,8 +325,8 @@ gst_lv2_base_init (gpointer g_class)
}
gst_signal_processor_class_add_pad_template (gsp_class,
- slv2_value_as_string (group->symbol),
- GST_PAD_SRC, j, group->ports->len, positions);
+ slv2_value_as_string (group->symbol), GST_PAD_SRC, j, group->ports->len
+ /*, positions */ );
if (group->has_roles) {
free (positions);
@@ -338,7 +342,7 @@ gst_lv2_base_init (gpointer g_class)
const gchar *name =
slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port));
gst_signal_processor_class_add_pad_template (gsp_class, name, GST_PAD_SINK,
- j, 1, &mono_position);
+ j, 1);
}
/* add non-grouped output port pad templates */
@@ -349,7 +353,7 @@ gst_lv2_base_init (gpointer g_class)
const gchar *name =
slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port));
gst_signal_processor_class_add_pad_template (gsp_class, name, GST_PAD_SRC,
- j, 1, &mono_position);
+ j, 1);
}
/* construct the element details struct */
diff --git a/gst-libs/gst/signalprocessor/gstsignalprocessor.c b/gst-libs/gst/signalprocessor/gstsignalprocessor.c
index 299f8b303f..b474f0578a 100644
--- a/gst-libs/gst/signalprocessor/gstsignalprocessor.c
+++ b/gst-libs/gst/signalprocessor/gstsignalprocessor.c
@@ -96,8 +96,7 @@ gst_signal_processor_pad_template_get_type (void)
*/
void
gst_signal_processor_class_add_pad_template (GstSignalProcessorClass * klass,
- const gchar * name, GstPadDirection direction, guint index, guint channels,
- const GstAudioChannelPosition * pos)
+ const gchar * name, GstPadDirection direction, guint index, guint channels)
{
GstPadTemplate *new;
GstCaps *caps;
@@ -110,8 +109,9 @@ gst_signal_processor_class_add_pad_template (GstSignalProcessorClass * klass,
"endianness", G_TYPE_INT, G_BYTE_ORDER,
"width", G_TYPE_INT, 32, "channels", G_TYPE_INT, channels, NULL);
- if (pos)
- gst_audio_set_caps_channel_positions_list (caps, pos, channels);
+ /*if (pos)
+ gst_audio_set_caps_channel_positions_list (caps, pos, channels);
+ */
new = g_object_new (GST_TYPE_SIGNAL_PROCESSOR_PAD_TEMPLATE,
"name", name, "name-template", name,
diff --git a/gst-libs/gst/signalprocessor/gstsignalprocessor.h b/gst-libs/gst/signalprocessor/gstsignalprocessor.h
index e2e616166b..b5753b47a5 100644
--- a/gst-libs/gst/signalprocessor/gstsignalprocessor.h
+++ b/gst-libs/gst/signalprocessor/gstsignalprocessor.h
@@ -132,8 +132,7 @@ struct _GstSignalProcessorClass {
GType gst_signal_processor_get_type (void);
void gst_signal_processor_class_add_pad_template (GstSignalProcessorClass *klass,
- const gchar *name, GstPadDirection direction, guint index, guint channels,
- const GstAudioChannelPosition *pos);
+ const gchar *name, GstPadDirection direction, guint index, guint channels);