1 /* 2 * 3 * BlueZ - Bluetooth protocol stack for Linux 4 * 5 * Copyright (C) 2004-2010 Marcel Holtmann <marcel (at) holtmann.org> 6 * 7 * 8 * This library is free software; you can redistribute it and/or 9 * modify it under the terms of the GNU Lesser General Public 10 * License as published by the Free Software Foundation; either 11 * version 2.1 of the License, or (at your option) any later version. 12 * 13 * This library is distributed in the hope that it will be useful, 14 * but WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * Lesser General Public License for more details. 17 * 18 * You should have received a copy of the GNU Lesser General Public 19 * License along with this library; if not, write to the Free Software 20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA 21 * 22 */ 23 24 #include <gst/gst.h> 25 26 #include "sbc.h" 27 #include <string.h> 28 29 #define SBC_AM_AUTO 0x02 30 #define SBC_MODE_AUTO 0x04 31 32 gint gst_sbc_select_rate_from_list(const GValue *value); 33 34 gint gst_sbc_select_channels_from_range(const GValue *value); 35 36 gint gst_sbc_select_blocks_from_list(const GValue *value); 37 38 gint gst_sbc_select_subbands_from_list(const GValue *value); 39 40 gint gst_sbc_select_bitpool_from_range(const GValue *value); 41 42 const gchar *gst_sbc_get_allocation_from_list(const GValue *value); 43 44 const gchar *gst_sbc_get_mode_from_list(const GValue *value, gint channels); 45 46 gint gst_sbc_get_channel_number(gint mode); 47 gint gst_sbc_parse_rate_from_sbc(gint frequency); 48 gint gst_sbc_parse_rate_to_sbc(gint rate); 49 50 gint gst_sbc_parse_subbands_from_sbc(gint subbands); 51 gint gst_sbc_parse_subbands_to_sbc(gint subbands); 52 53 gint gst_sbc_parse_blocks_from_sbc(gint blocks); 54 gint gst_sbc_parse_blocks_to_sbc(gint blocks); 55 56 const gchar *gst_sbc_parse_mode_from_sbc(gint mode); 57 gint gst_sbc_parse_mode_to_sbc(const gchar *mode); 58 59 const gchar *gst_sbc_parse_allocation_from_sbc(gint alloc); 60 gint gst_sbc_parse_allocation_to_sbc(const gchar *allocation); 61 62 GstCaps* gst_sbc_parse_caps_from_sbc(sbc_t *sbc); 63 64 GstCaps* gst_sbc_util_caps_fixate(GstCaps *caps, gchar** error_message); 65 66 void gst_sbc_util_set_structure_int_param(GstStructure *structure, 67 const gchar* field, gint field_value, 68 GValue *value); 69 70 void gst_sbc_util_set_structure_string_param(GstStructure *structure, 71 const gchar* field, const gchar* field_value, 72 GValue *value); 73 74 gboolean gst_sbc_util_fill_sbc_params(sbc_t *sbc, GstCaps *caps); 75 76