diff options
Diffstat (limited to 'gst/multipart/multipartmux.c')
-rw-r--r-- | gst/multipart/multipartmux.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gst/multipart/multipartmux.c b/gst/multipart/multipartmux.c index 498f8252..a4a1300f 100644 --- a/gst/multipart/multipartmux.c +++ b/gst/multipart/multipartmux.c @@ -291,6 +291,8 @@ gst_multipart_mux_get_mime (GstMultipartMux * mux, GstStructure * s) GstMultipartMuxClass *klass; const gchar *mime; const gchar *name; + gint rate; + gint channels; klass = GST_MULTIPART_MUX_GET_CLASS (mux); @@ -302,6 +304,17 @@ gst_multipart_mux_get_mime (GstMultipartMux * mux, GstStructure * s) /* no mime type mapping, use name */ mime = name; } + /* RFC2046 requires audio/basic to be mulaw 8000Hz mono */ + if (g_ascii_strcasecmp (mime, "audio/basic") == 0) { + if (gst_structure_get_int (s, "rate", &rate) && + gst_structure_get_int (s, "channels", &channels)) { + if (rate != 8000 || channels != 1) { + mime = name; + } + } else { + mime = name; + } + } return mime; } |