summaryrefslogtreecommitdiffstats
path: root/audio/gstsbcutil.c
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2008-01-24 14:25:29 +0000
committerLuiz Augusto von Dentz <luiz.dentz@openbossa.org>2008-01-24 14:25:29 +0000
commit449c9728f515a3b1263f6961c608328b3ad582a9 (patch)
treece5f7affe29df1c19fa165ecf850fd181c1c586d /audio/gstsbcutil.c
parent6f15a199e037d789188b3b89e77ac78acee7812f (diff)
Fix gtreamer payloader sending fragmented frames.
Diffstat (limited to 'audio/gstsbcutil.c')
-rw-r--r--audio/gstsbcutil.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/audio/gstsbcutil.c b/audio/gstsbcutil.c
index 04b7217a..78024f7e 100644
--- a/audio/gstsbcutil.c
+++ b/audio/gstsbcutil.c
@@ -100,8 +100,8 @@ const gchar *gst_sbc_get_mode_from_list(const GValue *list)
for (i = 0; i < size; i++) {
value = gst_value_list_get_value(list, i);
aux = g_value_get_string(value);
- if (strcmp("stereo", aux) == 0) {
- return "stereo";
+ if (strcmp("joint", aux) == 0) {
+ return "joint";
}
}
return g_value_get_string(gst_value_list_get_value(list, size-1));
@@ -135,6 +135,19 @@ gint gst_sbc_get_mode_int(const gchar *mode)
return -1;
}
+/* FIXME add dual when sbc_t supports it */
+gboolean gst_sbc_get_mode_int_for_sbc_t(const gchar *mode)
+{
+ if (g_ascii_strcasecmp(mode, "joint") == 0)
+ return TRUE;
+ else if (g_ascii_strcasecmp(mode, "stereo") == 0)
+ return FALSE;
+ else if (g_ascii_strcasecmp(mode, "mono") == 0)
+ return FALSE;
+ else
+ return -1;
+}
+
const gchar *gst_sbc_get_mode_string(int joint)
{
switch (joint) {
@@ -183,6 +196,8 @@ const gchar *gst_sbc_get_mode_string_from_sbc_t(int channels, int joint)
return "joint";
else if (channels == 2 && joint == 0)
return "stereo";
+ else if (channels == 1 && joint == 0)
+ return "mono";
else
return NULL;
}
@@ -434,7 +449,7 @@ gboolean gst_sbc_util_fill_sbc_params(sbc_t *sbc, GstCaps *caps)
sbc->blocks = blocks;
sbc->subbands = subbands;
sbc->bitpool = bitpool;
- sbc->joint = gst_sbc_get_mode_int(mode);
+ sbc->joint = gst_sbc_get_mode_int_for_sbc_t(mode);
sbc->allocation = gst_sbc_get_allocation_mode_int(allocation);
return TRUE;