GST_LOG_OBJECT (demux, "Ignoring not-selected stream");
return;
}
-
#ifdef TIZEN_FEATURE_UPSTREAM
GST_DEBUG_OBJECT (demux,
"is_primary_playlist:%d selected:%d playlist name '%s'",
}
if (G_UNLIKELY (!caps)) {
- /* Won't need this mapping any more all paths return inside this if() */
- gst_buffer_unmap (buffer, &info);
-
- /* Only fail typefinding if we already a good amount of data
- * and we still don't know the type */
- if (buffer_size > (2 * 1024 * 1024) || at_eos) {
- GST_ELEMENT_ERROR (hlsdemux, STREAM, TYPE_NOT_FOUND,
- ("Could not determine type of stream"), (NULL));
+#ifdef TIZEN_FEATURE_HLSDEMUX_EMPTY_VTT
+ if (at_eos && info.data
+ && g_strrstr ((const gchar *) info.data, "WEBVTT")) {
+ gchar *dummy =
+ g_strdup ("WEBVTT\nX-TIMESTAMP-MAP=LOCAL:00:00:00.000,MPEGTS:0");
+ GstBuffer *dummy_buffer =
+ gst_buffer_new_wrapped (dummy, strlen (dummy));
+
+ gst_buffer_unmap (buffer, &info);
gst_buffer_unref (buffer);
- return GST_FLOW_NOT_NEGOTIATED;
- }
- hls_stream->pending_typefind_buffer = buffer;
+ GST_WARNING_OBJECT (stream->pad,
+ "replace the empty VTT buffer with dummy");
- return GST_FLOW_OK;
- }
+ buffer = dummy_buffer;
+ gst_buffer_map (buffer, &info, GST_MAP_READ);
+
+ caps = gst_caps_new_simple ("application/x-subtitle-vtt",
+ "parsed", G_TYPE_BOOLEAN, FALSE, NULL);
+ } else
+#endif
+ {
+ /* Won't need this mapping any more all paths return inside this if() */
+ gst_buffer_unmap (buffer, &info);
+
+ /* Only fail typefinding if we already a good amount of data
+ * and we still don't know the type */
+ if (buffer_size > (2 * 1024 * 1024) || at_eos) {
+ GST_ELEMENT_ERROR (hlsdemux, STREAM, TYPE_NOT_FOUND,
+ ("Could not determine type of stream"), (NULL));
+ gst_buffer_unref (buffer);
+ return GST_FLOW_NOT_NEGOTIATED;
+ }
+ hls_stream->pending_typefind_buffer = buffer;
+ return GST_FLOW_OK;
+ }
+ }
#ifdef TIZEN_FEATURE_UPSTREAM
GST_DEBUG_OBJECT (stream->pad,
"Typefind result: %" GST_PTR_FORMAT " prob:%d", caps, prob);
}
return gst_hls_demux_change_playlist (demux, new_bandwidth - 1, changed);
}
-
#ifdef TIZEN_FEATURE_UPSTREAM
gst_hls_variant_stream_unref (previous_variant);
#endif