#define SBC_ENC_DEFAULT_MODE CFG_MODE_AUTO
#define SBC_ENC_DEFAULT_BLOCKS 16
#define SBC_ENC_DEFAULT_SUB_BANDS 8
+#define SBC_ENC_DEFAULT_BITPOOL 53
#define SBC_ENC_DEFAULT_ALLOCATION CFG_ALLOCATION_AUTO
GST_DEBUG_CATEGORY_STATIC (sbc_enc_debug);
"mode = (string) { mono, dual, stereo, joint }, "
"blocks = (int) { 4, 8, 12, 16 }, "
"subbands = (int) { 4, 8 }, "
- "allocation = (string) { snr, loudness }"));
+ "allocation = (string) { snr, loudness },"
+ "bitpool = (int) [ 2, 64 ]"));
static GstCaps *
else
enc->sbc.allocation = enc->allocation;
+ enc->sbc.bitpool = SBC_ENC_DEFAULT_BITPOOL;
+
mode = gst_sbc_get_mode_string (enc->sbc.joint);
allocation = gst_sbc_get_allocation_string (enc->sbc.allocation);
"mode", G_TYPE_STRING, mode,
"subbands", G_TYPE_INT, enc->sbc.subbands,
"blocks", G_TYPE_INT, enc->sbc.blocks,
- "allocation", G_TYPE_STRING, allocation, NULL);
+ "allocation", G_TYPE_STRING, allocation,
+ "bitpool", G_TYPE_INT, enc->sbc.bitpool, NULL);
return src_caps;
}
"mode = (string) { mono, dual, stereo, joint }, "
"blocks = (int) { 4, 8, 12, 16 }, "
"subbands = (int) { 4, 8 }, "
- "allocation = (string) { snr, loudness }"));
+ "allocation = (string) { snr, loudness },"
+ "bitpool = (int) [ 2, 64 ]"));
-/* reates a fixed caps from the caps given. */
+/* Creates a fixed caps from the caps given. */
static GstCaps *
sbc_parse_select_caps (GstSbcParse * parse, GstCaps * caps)
{
GstStructure *structure;
const GValue *value;
gboolean error = FALSE;
- gint temp, rate, channels, blocks, subbands;
+ gint temp, rate, channels, blocks, subbands, bitpool;
const gchar *allocation = NULL;
const gchar *mode = NULL;
const gchar *error_message = NULL;
subbands = temp;
}
+ if (!gst_structure_has_field (structure, "bitpool")) {
+ error = TRUE;
+ error_message = "no bitpool";
+ goto error;
+ } else {
+ value = gst_structure_get_value (structure, "bitpool");
+ if (GST_VALUE_HOLDS_INT_RANGE (value)) {
+ temp = gst_sbc_select_bitpool_from_range (value);
+ } else {
+ temp = g_value_get_int (value);
+ }
+ bitpool = temp;
+ }
+
if (!gst_structure_has_field (structure, "allocation")) {
error = TRUE;
error_message = "no allocation.";
"mode", G_TYPE_STRING, mode,
"blocks", G_TYPE_INT, blocks,
"subbands", G_TYPE_INT, subbands,
- "allocation", G_TYPE_STRING, allocation, NULL);
+ "allocation", G_TYPE_STRING, allocation,
+ "bitpool", G_TYPE_INT, bitpool, NULL);
parse->sbc.rate = rate;
parse->sbc.channels = channels;
parse->sbc.blocks = blocks;
parse->sbc.subbands = subbands;
+ parse->sbc.bitpool = bitpool;
parse->sbc.joint = gst_sbc_get_mode_int (mode);
parse->sbc.allocation = gst_sbc_get_allocation_mode_int (allocation);