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.
This commit is contained in:
Wim Taymans 2008-10-28 17:42:02 +00:00
parent 23f37b0179
commit b29385bd76
3 changed files with 38 additions and 0 deletions

View file

@ -1,3 +1,9 @@
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:

View file

@ -110,6 +110,37 @@ gst_rtp_channels_get_by_order (gint channels, const gchar * order)
return res;
}
/**
* 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

View 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);