diff options
Diffstat (limited to 'gst/multipart/multipartmux.c')
-rw-r--r-- | gst/multipart/multipartmux.c | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c index a4a1300f..45bc4bd7 100644 --- a/gst/multipart/multipartmux.c +++ b/gst/multipart/multipartmux.c @@ -293,6 +293,7 @@ gst_multipart_mux_get_mime (GstMultipartMux * mux, GstStructure * s) const gchar *name; gint rate; gint channels; + gint bitrate = 0; klass = GST_MULTIPART_MUX_GET_CLASS (mux); @@ -301,8 +302,27 @@ gst_multipart_mux_get_mime (GstMultipartMux * mux, GstStructure * s) /* use hashtable to convert to mime type */ mime = g_hash_table_lookup (klass->mimetypes, name); if (mime == NULL) { - /* no mime type mapping, use name */ - mime = name; + if (!strcmp (name, "audio/x-adpcm")) + gst_structure_get_int (s, "bitrate", &bitrate); + + switch (bitrate) { + case 16000: + mime = "audio/G726-16"; + break; + case 24000: + mime = "audio/G726-24"; + break; + case 32000: + mime = "audio/G726-32"; + break; + case 40000: + mime = "audio/G726-40"; + break; + default: + /* no mime type mapping, use name */ + mime = name; + break; + } } /* RFC2046 requires audio/basic to be mulaw 8000Hz mono */ if (g_ascii_strcasecmp (mime, "audio/basic") == 0) { |