summaryrefslogtreecommitdiffstats
path: root/gst/rtp/gstrtpchannels.c
diff options
context:
space:
mode:
authorWim Taymans <wim.taymans@gmail.com>2008-10-28 17:42:02 +0000
committerWim Taymans <wim.taymans@gmail.com>2008-10-28 17:42:02 +0000
commitb29385bd76388904ba203360e1533c903a369ab4 (patch)
tree44610ba8e38561f7dad5350d9a95dd60fc517414 /gst/rtp/gstrtpchannels.c
parent23f37b0179ba14c4cac67b690b4c2e5e736c757e (diff)
gst/rtp/gstrtpchannels.*: Add method to get possible channel positions.
Original commit message from CVS: * gst/rtp/gstrtpchannels.c: (gst_rtp_channels_get_by_index): * gst/rtp/gstrtpchannels.h: Add method to get possible channel positions.
Diffstat (limited to 'gst/rtp/gstrtpchannels.c')
-rw-r--r--gst/rtp/gstrtpchannels.c31
1 files changed, 31 insertions, 0 deletions
diff --git a/gst/rtp/gstrtpchannels.c b/gst/rtp/gstrtpchannels.c
index 05100f0f..2ce42803 100644
--- a/gst/rtp/gstrtpchannels.c
+++ b/gst/rtp/gstrtpchannels.c
@@ -111,6 +111,37 @@ gst_rtp_channels_get_by_order (gint channels, const gchar * order)
}
/**
+ * gst_rtp_channels_get_by_index:
+ * @channels: the amount of channels
+ * @idx: the channel index to retrieve
+ *
+ * Get the allowed channel order descriptions for @channels. @idx can be used to
+ * retrieve the desired index.
+ *
+ * Returns: a #GstRTPChannelOrder at @idx, NULL when there are no valid channel
+ * orders.
+ */
+const GstRTPChannelOrder *
+gst_rtp_channels_get_by_index (gint channels, guint idx)
+{
+ gint i;
+ const GstRTPChannelOrder *res = NULL;
+
+ for (i = 0; channel_orders[i].pos; i++) {
+ if (channel_orders[i].channels != channels)
+ continue;
+
+ if (idx == 0) {
+ res = &channel_orders[i];
+ break;
+ }
+ idx--;
+ }
+ return res;
+}
+
+
+/**
* gst_rtp_channels_create_default:
* @channels: the amount of channels
*