gst/rtp/gstrtpchannels.*: Add method to get possible channel positions.
authorWim Taymans <wim.taymans@gmail.com>
Tue, 28 Oct 2008 17:42:02 +0000 (17:42 +0000)
committerWim Taymans <wim.taymans@gmail.com>
Tue, 28 Oct 2008 17:42:02 +0000 (17:42 +0000)
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.

ChangeLog
gst/rtp/gstrtpchannels.c
gst/rtp/gstrtpchannels.h

index 22672e9..c3fce95 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
 2008-10-28  Wim Taymans  <wim.taymans@collabora.co.uk>
 
+       * gst/rtp/gstrtpchannels.c: (gst_rtp_channels_get_by_index):
+       * gst/rtp/gstrtpchannels.h:
+       Add method to get possible channel positions.
+
+2008-10-28  Wim Taymans  <wim.taymans@collabora.co.uk>
+
        * gst/rtp/Makefile.am:
        Also commit updated makefile
 
index 05100f0..2ce4280 100644 (file)
@@ -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
  *
index 2c9efe3..591eb05 100644 (file)
@@ -181,5 +181,6 @@ const GstRTPChannelOrder *   gst_rtp_channels_get_by_pos     (gint channels,
                                                               const GstAudioChannelPosition *pos);
 const GstRTPChannelOrder *   gst_rtp_channels_get_by_order   (gint channels,
                                                               const gchar *order);
+const GstRTPChannelOrder *   gst_rtp_channels_get_by_index   (gint channels, guint idx);
 
 GstAudioChannelPosition *    gst_rtp_channels_create_default (gint channels);