res/res_format_attr_silk: Expose format attributes to other modules
[asterisk/asterisk.git] / res / res_format_attr_silk.c
index 3467f5a..f3f4382 100644 (file)
@@ -200,12 +200,36 @@ static struct ast_format *silk_set(const struct ast_format *format, const char *
        return cloned;
 }
 
+static const void *silk_get(const struct ast_format *format, const char *name)
+{
+       struct silk_attr *attr = ast_format_get_attribute_data(format);
+       unsigned int *val;
+
+       if (!strcasecmp(name, "sample_rate")) {
+               val = &attr->samplerate;
+       } else if (!strcasecmp(name, "max_bitrate")) {
+               val = &attr->maxbitrate;
+       } else if (!strcasecmp(name, "dtx")) {
+               val = &attr->dtx;
+       } else if (!strcasecmp(name, "fec")) {
+               val = &attr->fec;
+       } else if (!strcasecmp(name, "packetloss_percentage")) {
+               val = &attr->packetloss_percentage;
+       } else {
+               ast_log(LOG_WARNING, "unknown attribute type %s\n", name);
+               return NULL;
+       }
+
+       return val;
+}
+
 static struct ast_format_interface silk_interface = {
        .format_destroy = silk_destroy,
        .format_clone = silk_clone,
        .format_cmp = silk_cmp,
        .format_get_joint = silk_getjoint,
        .format_attribute_set = silk_set,
+       .format_attribute_get = silk_get,
        .format_parse_sdp_fmtp = silk_parse_sdp_fmtp,
        .format_generate_sdp_fmtp = silk_generate_sdp_fmtp,
 };