diff options
author | Sebastian Dröge <sebastian@centricular.com> | 2014-03-05 10:47:01 +0100 |
---|---|---|
committer | Sebastian Dröge <sebastian@centricular.com> | 2014-03-06 16:36:10 +0100 |
commit | cd02546089e5ae0e53e3e18ab33a4b6a6c2d5d7a (patch) | |
tree | da10bd04b6228381eaa16baa426fb39c80d8eff9 /gst-libs/gst/uridownloader | |
parent | 7ed08a132663eba4b6ec86a08c31200c874ce1a4 (diff) | |
download | gstreamer-plugins-bad-cd02546089e5ae0e53e3e18ab33a4b6a6c2d5d7a.tar.gz |
hlsdemux: Implement handling of byte ranges
Diffstat (limited to 'gst-libs/gst/uridownloader')
-rw-r--r-- | gst-libs/gst/uridownloader/gstfragment.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/gst-libs/gst/uridownloader/gstfragment.c b/gst-libs/gst/uridownloader/gstfragment.c index 452456a49..d595e8253 100644 --- a/gst-libs/gst/uridownloader/gstfragment.c +++ b/gst-libs/gst/uridownloader/gstfragment.c @@ -235,9 +235,21 @@ gst_fragment_get_caps (GstFragment * fragment) return NULL; g_mutex_lock (&fragment->priv->lock); - if (fragment->priv->caps == NULL) + if (fragment->priv->caps == NULL) { + guint64 offset, offset_end; + + /* FIXME: This is currently necessary as typefinding only + * works with 0 offsets... need to find a better way to + * do that */ + offset = GST_BUFFER_OFFSET (fragment->priv->buffer); + offset_end = GST_BUFFER_OFFSET_END (fragment->priv->buffer); + GST_BUFFER_OFFSET (fragment->priv->buffer) = GST_BUFFER_OFFSET_NONE; + GST_BUFFER_OFFSET_END (fragment->priv->buffer) = GST_BUFFER_OFFSET_NONE; fragment->priv->caps = gst_type_find_helper_for_buffer (NULL, fragment->priv->buffer, NULL); + GST_BUFFER_OFFSET (fragment->priv->buffer) = offset; + GST_BUFFER_OFFSET_END (fragment->priv->buffer) = offset_end; + } gst_caps_ref (fragment->priv->caps); g_mutex_unlock (&fragment->priv->lock); |