GNOME Bugzilla – Bug 755098
uridecodebin: Smooth Streaming's media type does not match
Last modified: 2015-09-16 18:03:17 UTC
In gsturidecodebin.c, adaptive_media is judaged by following type: /* media types that use adaptive streaming */ static const gchar *adaptive_media[] = { "application/x-hls", "application/x-smoothstreaming-manifest", "application/dash+xml", NULL }; But in gsttypefindfunctions.c Smooth Streaming is as below: static GstStaticCaps mss_manifest_caps = GST_STATIC_CAPS ("application/vnd.ms-sstr+xml"); If we compare the flow betweeen DASH & MSS, from the graph dump we could see DASH does NOT have Queue2 but MMS has. It is because the following logic: if (decoder->is_adaptive) { src_elem = typefind; ==> DASH } else { if (do_download) { elem_name = "downloadbuffer"; } else { elem_name = "queue2"; ==> MSS } ... However, MSS indeed is a kind of "adaptive streaming" source. It is because the media type mis-match. We could fix it either by: /* media types that use adaptive streaming */ static const gchar *adaptive_media[] = { "application/x-hls", /*"application/x-smoothstreaming-manifest",*/ "application/dash+xml", "application/vnd.ms-sstr+xml", NULL }; or replace "application/vnd.ms-sstr+xml" by "application/x-smoothstreaming-manifest". It potentially mis-judge MSS as a "NON-adaptive-streaming" type.
Can you provide a patch (in git format-patch format) for gsturidecodebin.c to use the correct string?
commit 2a1e046dd9853fb13caf80e3b3bc11fbcae09d86 Author: Sebastian Dröge <sebastian@centricular.com> Date: Wed Sep 16 19:53:35 2015 +0200 uridecodebin: Use the correct caps name for MS Smooth Streaming manifests Thanks to John Chang <r97922153@gmail.com> for reporting. https://bugzilla.gnome.org/show_bug.cgi?id=755098