After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 673986 - [hlsdemux] port to 0.11
[hlsdemux] port to 0.11
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other All
: Normal enhancement
: 0.11.x
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2012-04-12 12:21 UTC by Gil Pedersen
Modified: 2012-04-26 10:02 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
port to 0.11 patch (33.10 KB, patch)
2012-04-12 13:40 UTC, Gil Pedersen
none Details | Review
port to 0.11 patch v2 (33.20 KB, patch)
2012-04-17 14:54 UTC, Gil Pedersen
none Details | Review
port to hlsdemux 0.11 patch v3 (33.75 KB, patch)
2012-04-20 09:52 UTC, Gil Pedersen
committed Details | Review
backport to 0.10 (9.31 KB, patch)
2012-04-26 09:24 UTC, Gil Pedersen
committed Details | Review

Description Gil Pedersen 2012-04-12 12:21:17 UTC
The hlsdemux plugin should be updated for inclusion in 0.11.

The process is complicated by the decoupling of caps from buffers, which the plugin relies on using buffer lists in an internal processing queue.
Comment 1 Gil Pedersen 2012-04-12 13:40:55 UTC
Created attachment 211929 [details] [review]
port to 0.11 patch

Besides updating to use the new API's I have made a few changes to make it work.

GstFragment:
 * Changed buffer list to plain buffer .
 * Added a caps property with type find functionality.
 * Removed unused headers functionality.

GstHLSDemux:
 * Changed processing queue to use GstFragment's instead of buffer lists.
 * Removed comment + code which says it shouldn't be required in 0.11 (untested).
 * Adapted to GstFragment returning buffers instead of buffer lists.
 * Fixed potential leak in gst_hls_src_buf_to_utf8_playlist().
 * Fixed leaking caps after type switching.

GstURIDownloader:
 * Fixed incorrect use of gst_pad_activate_mode() (was gst_pad_activate_push()).
 * Added missing gst_pad_event_default() to gst_uri_downloader_sink_event().

Since there is no compatible MPEG-TS demuxer I have only tested it using filesink and fakesink.
Example: gst-launch-1.0 souphttpsrc location=http://devimages.apple.com/iphone/samples/bipbop/gear4/prog_index.m3u8 ! hlsdemux ! fakesink sync=true -v
Comment 2 Gil Pedersen 2012-04-17 14:54:39 UTC
Created attachment 212215 [details] [review]
port to 0.11 patch v2

Revised patch to also send stream-start events.
Comment 3 Gil Pedersen 2012-04-20 09:52:56 UTC
Created attachment 212410 [details] [review]
port to hlsdemux 0.11 patch v3

Revised patch to use parent object where applicable.
Comment 4 Wim Taymans 2012-04-20 13:43:13 UTC
commit 1fa5624762c49261bc69dadc06486cac7f70233b
Author: Gil Pedersen <git@gpost.dk>
Date:   Thu Apr 12 14:17:14 2012 +0200

    hlsdemux: port to 0.11
Comment 5 Gil Pedersen 2012-04-26 09:24:43 UTC
Created attachment 212860 [details] [review]
backport to 0.10

I have backported the functional changes to 0.10.

GstFragment:
 * Removed unused headers functionality.

GstHLSDemux:
 * Changed processing queue to use GstFragment's instead of buffer lists.
 * Fixed potential leak in gst_hls_src_buf_to_utf8_playlist().
 * Fixed leaking caps after type switching.

GstURIDownloader:
 * Fixed incorrect use of gst_pad_activate_mode().
 * Added missing gst_pad_event_default() to gst_uri_downloader_sink_event().