+ media = gst_structure_get_string (caps_s, "media");
+ encoding_name = gst_structure_get_string (caps_s, "encoding-name");
+ encoding_params = gst_structure_get_string (caps_s, "encoding-params");
+
+ if (media || encoding_name) {
+ gchar *mime_type;
+
+ mime_type = g_strdup_printf ("%s/%s", media ? media : "",
+ encoding_name ? encoding_name : "");
+ gst_structure_set (stats, "mime-type", G_TYPE_STRING, mime_type, NULL);
+ g_free (mime_type);
+ }
+
+ if (encoding_params)
+ channels = atoi (encoding_params);
+ if (channels)
+ gst_structure_set (stats, "channels", G_TYPE_UINT, channels, NULL);
+
+ if (gst_pad_get_direction (pad) == GST_PAD_SRC)
+ gst_structure_set (stats, "codec-type", G_TYPE_STRING, "decode", NULL);
+ else
+ gst_structure_set (stats, "codec-type", G_TYPE_STRING, "encode", NULL);
+
+ gst_sdp_media_init (&sdp_media);
+ if (gst_sdp_media_set_media_from_caps (caps, &sdp_media) == GST_SDP_OK) {
+ const gchar *fmtp = gst_sdp_media_get_attribute_val (&sdp_media, "fmtp");
+
+ if (fmtp) {
+ gst_structure_set (stats, "sdp-fmtp-line", G_TYPE_STRING, fmtp, NULL);
+ }
+ }
+ gst_sdp_media_uninit (&sdp_media);
+
+ /* FIXME: transportId */