George Kiagiadakis [Fri, 6 Jun 2014 10:10:24 +0000 (12:10 +0200)]
waylandsink: protect access to properties with the OBJECT_LOCK
George Kiagiadakis [Fri, 6 Jun 2014 10:04:44 +0000 (12:04 +0200)]
waylandsink: protect access to the display with a new display_lock
Access is protected only for setting/creating/destroying the display
handle. set_caps() for example is not protected because it cannot be
called before changing state to READY, at which point there will be
a display handle available and which cannot change by any thread at
that point
George Kiagiadakis [Fri, 6 Jun 2014 08:35:20 +0000 (10:35 +0200)]
waylandsink: remove the OBJECT_LOCK from set_caps()
It's not really necessary, this method is protected from GstBaseSink with the PREROLL_LOCK
George Kiagiadakis [Wed, 28 May 2014 10:10:43 +0000 (13:10 +0300)]
waylandsink: Replace the OBJECT_LOCK with a private render_lock to lock render operations
This is because:
* GST_ELEMENT_WARNING/ERROR do lock the OBJECT_LOCK and we deadlock instantly
* In future commits I want to make use of GstBaseSink functions that also
lock the OBJECT_LOCK inside this code
George Kiagiadakis [Mon, 26 May 2014 11:13:56 +0000 (14:13 +0300)]
waylandsink: move surface resizing logic to the GstWlWindow and make it be called from the main thread
George Kiagiadakis [Mon, 26 May 2014 09:54:10 +0000 (12:54 +0300)]
waylandsink: cleanup GstWlWindow a bit after the overlaying semantics change
* own_surface is not needed anymore
* gst_wl_window_from_surface is not used externally anymore
* many initializations to 0 are not needed (GObject does them)
George Kiagiadakis [Mon, 26 May 2014 08:34:51 +0000 (11:34 +0300)]
wayland: remove gst_wayland_video_set_surface_size()
Not needed anymore, since we use gst_video_overlay_set_render_rectangle()
George Kiagiadakis [Fri, 23 May 2014 15:18:32 +0000 (18:18 +0300)]
waylandsink: create and maintain the subsurface inside the sink
This means that the given surface in set_window_handle can now be
the window's top-level surface on top of which waylandsink creates
its own subsurface for rendering the video.
This has many advantages:
* We can maintain aspect ratio by overlaying the subsurface in
the center of the given area and fill the parent surface's area
black in case we need to draw borders (instead of adding another
subsurface inside the subsurface given from the application,
so, less subsurfaces)
* We can more easily support toolkits without subsurfaces (see gtk)
* We can get properly use gst_video_overlay_set_render_rectangle
as our api to set the video area size from the application and
therefore remove gst_wayland_video_set_surface_size.
George Kiagiadakis [Fri, 23 May 2014 10:09:27 +0000 (13:09 +0300)]
wayland: add public API for creating & using the display handle GstContext
George Kiagiadakis [Wed, 21 May 2014 15:27:28 +0000 (18:27 +0300)]
waylandsink: get the external display handle using GstContext
This drops the ugly GstWaylandWindowHandle structure and is much
more elegant because we can now request the display separately
from the window handle. Therefore the window handle can be requested
in render(), i.e. when it is really needed and we can still open
the correct display for getting caps and creating the pool earlier.
This change also separates setting the wl_surface from setting its size.
Applications should do that by calling two functions in sequence:
gst_video_overlay_set_window_handle (overlay, surface);
gst_wayland_video_set_surface_size (overlay, w, h);
George Kiagiadakis [Wed, 21 May 2014 10:14:15 +0000 (13:14 +0300)]
waylandsink: drop width/height arguments from gst_wl_window_new_from_surface()
George Kiagiadakis [Thu, 22 May 2014 07:10:51 +0000 (10:10 +0300)]
waylandsink: add G_BEGIN/END_DECLS on all headers for consistency
George Kiagiadakis [Wed, 21 May 2014 09:58:10 +0000 (12:58 +0300)]
waylandsink: fix assertion failure when stopping immediately after starting, without displaying anything
This was triggered in scenarios like
filesrc location=nonexistent_file ! decodebin ! waylandsink
George Kiagiadakis [Wed, 21 May 2014 08:55:45 +0000 (11:55 +0300)]
waylandsink: Update wl_scaler to version 2
George Kiagiadakis [Tue, 20 May 2014 16:04:16 +0000 (19:04 +0300)]
wayland/Makefile.am: link with gstvideo to avoid introspection errors
George Kiagiadakis [Tue, 20 May 2014 16:03:39 +0000 (19:03 +0300)]
waylandsink/Makefile.am: Fix scaler-client-protocol.h generation
George Kiagiadakis [Thu, 13 Mar 2014 11:13:08 +0000 (13:13 +0200)]
waylandsink: remove unused functions
George Kiagiadakis [Wed, 12 Mar 2014 17:25:06 +0000 (19:25 +0200)]
waylandsink: Add myself to the authors list
George Kiagiadakis [Wed, 12 Mar 2014 15:03:10 +0000 (17:03 +0200)]
waylandsink/wldisplay: bind to the latest available wl_compositor version
George Kiagiadakis [Wed, 12 Mar 2014 12:28:44 +0000 (14:28 +0200)]
waylandsink: create/destroy the display when entering/leaving the READY state instead of PAUSED
This is the only way to get the negotiation working with the dynamic
detection of formats from the display, because the pipeline needs
to know the supported formats in the READY state and the supported
formats can only be known if we open the display.
Unfortunately,in wayland we cannot have a separate connection to
the display from the rest of the application, so we need to ask for a
window handle when going to READY in order to get the display from it.
And since it's too early to create a top level window from the state
change to READY, create it in render() when there is no other window.
This also changes set_window_handle() to not support window handle
changes in PAUSED/PLAYING (because it's complex to handle and useless
in practice) and make sure that there is always a valid display pointer
around in the READY state.
George Kiagiadakis [Wed, 12 Mar 2014 12:13:49 +0000 (14:13 +0200)]
waylandsink: Support all video formats supported by the display
George Kiagiadakis [Wed, 12 Mar 2014 11:54:44 +0000 (13:54 +0200)]
waylandsink: fix crash in case there is no pool because of a caps negotiation error
George Kiagiadakis [Tue, 11 Mar 2014 17:47:52 +0000 (19:47 +0200)]
waylandsink: set an empty input region on the video surface
George Kiagiadakis [Tue, 11 Mar 2014 17:46:56 +0000 (19:46 +0200)]
waylandsink/wlwindow: reuse code between the two constructors
George Kiagiadakis [Tue, 11 Mar 2014 16:45:23 +0000 (18:45 +0200)]
waylandsink: increase debug messages
George Kiagiadakis [Tue, 11 Mar 2014 15:48:46 +0000 (17:48 +0200)]
waylandsink: Use a boolean in combination with render_cond to comply with GCond's usage documentation
George Kiagiadakis [Tue, 11 Mar 2014 15:45:05 +0000 (17:45 +0200)]
waylandsink: Implement expose() and handle resizing properly in non-PLAYING states
George Kiagiadakis [Tue, 11 Mar 2014 11:14:00 +0000 (13:14 +0200)]
waylandsink: Use wl_scaler/wl_viewport to scale the surface in the compositor/hardware
George Kiagiadakis [Tue, 11 Mar 2014 11:05:56 +0000 (13:05 +0200)]
waylandsink: Build bindings for the unstable wl_scaler spec
George Kiagiadakis [Mon, 10 Mar 2014 11:50:06 +0000 (13:50 +0200)]
waylandsink: Set external surfaces and their child objects to use our own event queue
This fixes weird freezes because of frame_redraw_callback() not being
called from the main thread when it should with weston's toy toolkit.
It's also safer to know that frame_redraw_callback() will always be
called from our display thread... Otherwise it could be called after
the sink has been destroyed for example.
George Kiagiadakis [Fri, 7 Mar 2014 15:25:00 +0000 (17:25 +0200)]
waylandsink: Wait for the frame_cb to redraw and drop frames meanwhile
We are not supposed to redraw until we receive a frame callback and this
is especially useful to avoid allocating too many buffers while the
window is not visible, because the compositor may not call wl_buffer.release
until the window becomes visible (ok, this is a wayland bug, but...).
George Kiagiadakis [Fri, 7 Mar 2014 14:16:30 +0000 (16:16 +0200)]
waylandsink: Handle wl_buffer::release and don't reuse buffers that are not released
This is achieved by adding an extra reference on the buffers, which does
not allow them to return to the pool. When they are released, this reference
is dropped.
The rest complexity of this patch (hash table, mutex, flag, explicit release calls)
merely exists to allow a safe, guaranteed and deadlock-free destruction sequence.
See the added comment on gstwaylandsink.c for details.
George Kiagiadakis [Thu, 6 Mar 2014 15:03:50 +0000 (17:03 +0200)]
waylandsink/waylandpool: remove useless munmap call
This data pointer is part of a bigger mmap'ed region,
it has not been returned from mmap itself.
George Kiagiadakis [Fri, 28 Feb 2014 11:37:30 +0000 (13:37 +0200)]
waylandsink/waylandpool: call the start/stop methods of the parent class
start() makes sure that the minimum ammount of buffers requested is allocated.
stop() makes sure that buffers are actually destroyed and prevents
filling the file system when resizing the surface a lot, because the
wayland-shm-* files will stay on the file system as long as the wl_buffers
created out of them are alive.
George Kiagiadakis [Fri, 28 Feb 2014 11:36:43 +0000 (13:36 +0200)]
waylandsink/waylandpool: unlink mmaped shm files so that they don't remain on the file system
George Kiagiadakis [Fri, 28 Feb 2014 09:48:30 +0000 (11:48 +0200)]
waylandsink: implement the GstVideoOverlay & GstWaylandVideo interfaces
This is the initial implementation, without the GstVideoOverlay.expose()
method. It only implements using an external (sub)surface and resizing
it with GstWaylandVideo.
George Kiagiadakis [Fri, 14 Feb 2014 15:08:56 +0000 (16:08 +0100)]
waylandsink: implement with stubs the GstWaylandVideo & GstVideoOverlay interfaces
George Kiagiadakis [Mon, 6 May 2013 10:16:02 +0000 (13:16 +0300)]
wayland: Add new gst-wayland library containing a new GstWaylandVideo interface
This interface is needed to be able to embed waylandsink into
other wayland surfaces. Due to the special nature of wayland,
GstVideoOverlay is not enough for this job.
George Kiagiadakis [Wed, 26 Feb 2014 16:35:29 +0000 (18:35 +0200)]
waylandsink: handle the list of supported formats properly
enum wl_shm_format is not a flags enum, as it may have been in the past,
so multiple formats cannot be stored in a bitfield. Use an array instead.
George Kiagiadakis [Wed, 26 Feb 2014 15:41:11 +0000 (17:41 +0200)]
waylandsink/wlvideoformat: add mappings for many common formats
George Kiagiadakis [Wed, 26 Feb 2014 14:20:41 +0000 (16:20 +0200)]
waylandsink: unref the buffer pool
George Kiagiadakis [Wed, 26 Feb 2014 14:11:29 +0000 (16:11 +0200)]
waylandsink/waylandpool: ref the display instead of the sink to avoid cyclic references
The reference to the sink is not really needed anyway in waylandpool,
what matters basically is that the display is active as long as the
pool is active, so we really want to reference the display object
instead of the sink.
George Kiagiadakis [Wed, 26 Feb 2014 12:56:21 +0000 (14:56 +0200)]
waylandsink: make the display property useful
Let the display property control the name of the display,
like in x(v)imagesink.
George Kiagiadakis [Fri, 14 Feb 2014 16:20:42 +0000 (17:20 +0100)]
waylandsink: access sink->pool in a more atomic fashion
George Kiagiadakis [Fri, 14 Feb 2014 15:33:10 +0000 (16:33 +0100)]
waylandsink: remove the useless wayland_lock
George Kiagiadakis [Thu, 13 Feb 2014 12:28:40 +0000 (13:28 +0100)]
waylandsink: apply the same debug category to all the subobjects
George Kiagiadakis [Thu, 13 Feb 2014 12:15:31 +0000 (13:15 +0100)]
waylandsink: cleanup header includes
George Kiagiadakis [Thu, 13 Feb 2014 10:59:45 +0000 (11:59 +0100)]
waylandsink: split window-related code out to a new GstWlWindow class
GstWlWindow also has API ready to support subsurfaces.
George Kiagiadakis [Thu, 13 Feb 2014 10:32:00 +0000 (11:32 +0100)]
waylandsink: remove callback and redraw_pending variables from the window structure
George Kiagiadakis [Thu, 13 Feb 2014 09:51:59 +0000 (10:51 +0100)]
waylandsink/waylandpool: improve debug message
George Kiagiadakis [Thu, 13 Feb 2014 09:37:01 +0000 (10:37 +0100)]
waylandsink/waylandpool: find the video format from the GstVideoInfo instead of accessing the sink
For the sake of isolation only. The format should be the same.
George Kiagiadakis [Thu, 13 Feb 2014 09:29:08 +0000 (10:29 +0100)]
waylandsink/waylandpool: refactor code
* make use of GstBufferPool::start/stop functions to allocate/deallocate memory
* get rid of struct shm_pool and do all operations cleanly inside WaylandBufferPool
* store a GstVideoInfo during configuration instead of the width & height
and use the stride from the video info instead of hardcoding its value
George Kiagiadakis [Thu, 13 Feb 2014 09:02:54 +0000 (10:02 +0100)]
waylandsink: split video format related functions out to a separate file
George Kiagiadakis [Wed, 12 Feb 2014 14:16:08 +0000 (15:16 +0100)]
waylandsink/waylandpool: move code around for better readability
George Kiagiadakis [Wed, 12 Feb 2014 13:41:52 +0000 (14:41 +0100)]
waylandsink: move struct shm_pool and its related functions to waylandpool.c
And also make the instance of this struct to be owned by the buffer
pool instead of the element, for the sake of isolation
George Kiagiadakis [Tue, 14 May 2013 16:35:33 +0000 (19:35 +0300)]
waylandsink: Use XDG_RUNTIME_DIR instead of /tmp for the shm file
George Kiagiadakis [Wed, 12 Feb 2014 13:15:52 +0000 (14:15 +0100)]
waylandsink: remove unused variables
George Kiagiadakis [Wed, 12 Feb 2014 10:28:40 +0000 (11:28 +0100)]
waylandsink: process display events in a separate thread
This also moves the display-related code into a new GstWlDisplay class,
which takes care of the new thread
George Kiagiadakis [Tue, 4 Feb 2014 15:32:31 +0000 (16:32 +0100)]
waylandsink: tidy up the header files
Sanjay NM [Thu, 12 Jun 2014 11:08:35 +0000 (16:38 +0530)]
pnmdec: use GstVideoDecoder Class
https://bugzilla.gnome.org/show_bug.cgi?id=731400
Edward Hervey [Mon, 16 Jun 2014 05:42:37 +0000 (07:42 +0200)]
tsdemux: Don't overwrite original seek value
In accurate mode, we'll be using start to fill in the seek segment,
therefore don't overwrite it with the shifted seek position.
https://bugzilla.gnome.org/show_bug.cgi?id=731698
Matthew Waters [Sun, 15 Jun 2014 05:18:46 +0000 (15:18 +1000)]
glvideomixer: silence incorrect number of arguments in format warning
Matthew Waters [Sun, 15 Jun 2014 05:17:07 +0000 (15:17 +1000)]
gldownload: plug a memory leak
Matthew Waters [Sun, 15 Jun 2014 03:59:07 +0000 (13:59 +1000)]
glvideomixer: wire up the alpha pad property
Matthew Waters [Sun, 15 Jun 2014 03:44:04 +0000 (13:44 +1000)]
glvideomixer: support input frame scaling
Matthew Waters [Sun, 15 Jun 2014 02:26:21 +0000 (12:26 +1000)]
glvideomixer: add positioning of input streams
https://bugzilla.gnome.org/show_bug.cgi?id=729798
Matthew Waters [Sun, 15 Jun 2014 02:24:38 +0000 (12:24 +1000)]
glmixer: allow the subclass to choose the sink pad type
Allows custom properties to be placed on the sink pads by subclasses
Edward Hervey [Fri, 13 Jun 2014 09:46:19 +0000 (11:46 +0200)]
mpegtspacketizer: live: handle pcr/dts discrepancies some more
When wrapover/reset occur, we end up with a small window of time where
the PTS/DTS will still be using the previous/next time-range.
In order not to return bogus values, return GST_CLOCK_TIME_NONE if the
PTS/DTS value to convert differs by more than 15s against the last seen
PCR
https://bugzilla.gnome.org/show_bug.cgi?id=674536
Edward Hervey [Fri, 13 Jun 2014 08:37:46 +0000 (10:37 +0200)]
mpegtspacketizer: Fix wraparound detection issue
Using 32bit unsigned values for corrected pcr/offset meant that we
potentially ended up in bogus values
Furthermore, refpcr - refpcroffset could end up being negative, which
PCRTIME_TO_GSTTIME() can't handle (and returned a massive positive value)
Matthew Waters [Fri, 13 Jun 2014 01:26:38 +0000 (11:26 +1000)]
docs: add gsteglimagememory
Matthew Waters [Thu, 12 Jun 2014 23:55:42 +0000 (09:55 +1000)]
docs: add glframebuffer object
Matthew Waters [Thu, 12 Jun 2014 23:52:01 +0000 (09:52 +1000)]
docs: misc adds for gl functions
Matthew Waters [Thu, 12 Jun 2014 23:41:51 +0000 (09:41 +1000)]
docs: add gluploadmeta object
Matthew Waters [Thu, 12 Jun 2014 23:32:56 +0000 (09:32 +1000)]
docs: update for some gl function name changes
Matthew Waters [Thu, 12 Jun 2014 13:14:45 +0000 (23:14 +1000)]
glfilterapp: actually emit the client-draw signal
Matthew Waters [Thu, 12 Jun 2014 13:13:11 +0000 (23:13 +1000)]
gl/examples: update for TEXTURE_2D change
Mathieu Duponchelle [Fri, 30 May 2014 14:52:09 +0000 (16:52 +0200)]
tsdemux: implement proper seeking for h264 streams.
Co-Authored by: Thibault Saunier <tsaunier@gnome.org>
From a high level perspective, the new process for seeking h264
streams is as follows:
1) Rewind the stream until we find the first I-slice of a frame,
and mark its offset in the stream.
2) Rewind the stream until we find SPS and PPS informations,
to make sure the subsequent parser is up to date.
3) Accumulate optionnal SEI NAL units on the way.
4) Push the SPS, PPS and SEI units before the new keyframe.
https://bugzilla.gnome.org/show_bug.cgi?id=675132
Vincent Penquerc'h [Thu, 12 Jun 2014 09:14:27 +0000 (10:14 +0100)]
dvbsrc: do not try to close negative file descriptors
Interestingly, Coverity implies that close takes an unsigned
argument, while my close(2) man page shows it taking a signed
argument. I guess it may be platforms specific.
Coverity 1214602
Tim-Philipp Müller [Thu, 12 Jun 2014 09:17:10 +0000 (10:17 +0100)]
hls: fix build with GLib 2.32
Provide internal copy of g_list_copy_deep() until we
bump the GLib requirement.
https://bugzilla.gnome.org/show_bug.cgi?id=731555
Vincent Penquerc'h [Thu, 12 Jun 2014 09:00:55 +0000 (10:00 +0100)]
aiffparse: bail out early when bytes per sample is not set
This should always be set for valid files when we get there,
and checking this avoids having ad hoc checks further down
in several places.
Coverity 1139698
Gwenole Beauchesne [Wed, 11 Jun 2014 13:11:40 +0000 (15:11 +0200)]
codecparsers: h264: fix quantization matrix conversion routine names.
Fix routine names for zigzag/raster scan order conversion routines for
quantization matrices. This ought to use the gst_h264_quant_matrix_*()
naming convention instead of gst_h264_video_quant_matrix_*(), which
derived from the MPEG-2 function names.
https://bugzilla.gnome.org/show_bug.cgi?id=731524
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Gwenole Beauchesne [Mon, 26 May 2014 16:29:21 +0000 (18:29 +0200)]
codecparsers: add C++ guards for MPEG-4 and VP8 parsers.
Fix MPEG-4 and VP8 APIs to export their external symbols as pure C
symbols, i.e. un-mangled for C++.
https://bugzilla.gnome.org/show_bug.cgi?id=731522
Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
Matthew Waters [Thu, 12 Jun 2014 04:58:47 +0000 (14:58 +1000)]
glmixer: send the stream-start event
and the caps event after.
https://bugzilla.gnome.org/show_bug.cgi?id=730944
Matthew Waters [Thu, 12 Jun 2014 03:37:51 +0000 (13:37 +1000)]
gl/examples: add GST_PLUGINS_BASE_CFLAGS
Matthew Waters [Thu, 12 Jun 2014 03:15:10 +0000 (13:15 +1000)]
gl/examples: remove spurious include for doublecube example
Matthew Waters [Thu, 12 Jun 2014 03:06:31 +0000 (13:06 +1000)]
gl/examples: add the srcdir and builddir includes
And remove references to $(GST_PLUGINS_GL_*)
Matthew Waters [Thu, 12 Jun 2014 02:49:42 +0000 (12:49 +1000)]
glfilterapp: remove the reshape/draw properties
The reshape property was never used.
Replace the draw property with a signal.
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
Matthew Waters [Thu, 12 Jun 2014 02:14:35 +0000 (12:14 +1000)]
glmixer: lock the size of mix->frames to the number of pads
Fixes a segfault with decodebin ! glmixer where the request pads on
both sides were being requested after the state change to PAUSED.
Also fixes dynamically adding and removing pads while glmixer is
in a state >= PAUSED.
Matthew Waters [Thu, 12 Jun 2014 02:09:56 +0000 (12:09 +1000)]
gl/examples: Port to using signals instead of properties
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
Matthew Waters [Sun, 1 Jun 2014 05:02:52 +0000 (15:02 +1000)]
glimagesink: replace pointer properties with signals
Based on patch by Mathieu Duponchelle <mathieu.duponchelle@epitech.eu>
https://bugzilla.gnome.org/show_bug.cgi?id=704507
Edward Hervey [Wed, 11 Jun 2014 07:38:00 +0000 (09:38 +0200)]
mpegtspacketizer: Use first group for handling reference pcr
If _set_current_pcr_offset gets called after a flushing seek, we ended
up using the current group for delta calculation ... whereas we should
be using the first group to calculate shifts.
Also add an early exit if there are no changes to apply
Edward Hervey [Tue, 10 Jun 2014 12:50:10 +0000 (14:50 +0200)]
tsdemux: Remove unused variable
The seeksegment was no longer used since the switch to calculating segments
when we see data.
Edward Hervey [Tue, 10 Jun 2014 12:27:53 +0000 (14:27 +0200)]
mpegtspacketizer: Fix debug statement
Edward Hervey [Tue, 10 Jun 2014 12:27:01 +0000 (14:27 +0200)]
mpegtspacketizer: Fix duration evaluation in push mode
When working in push mode, we need to be able to evaluate the duration
based on a single group of observations.
To do that we use the current group values
Edward Hervey [Mon, 2 Jun 2014 09:07:01 +0000 (11:07 +0200)]
mpegtspacketizer: Handle early PTS conversion
When handling the PTS/DTS conversion in new groups, there's a possibility
that the PTS might be smaller than the first PCR value observed, due to
re-ordering.
When using the current group, only apply the wraparound correction when we
are certain it is one (i.e. differs by more than a second) and not when it's
just a small difference (like out-of-order PTS).
https://bugzilla.gnome.org/show_bug.cgi?id=731088
Tim-Philipp Müller [Mon, 9 Jun 2014 09:10:01 +0000 (10:10 +0100)]
gdp: don't print already-freed string
CID 1221987
Edward Hervey [Mon, 9 Jun 2014 08:56:48 +0000 (10:56 +0200)]
speed: Fix position query some more
Forgot to remove code in
16fd917632c0992349ca28cf9108e9562c493ad7
CID #1139677
Edward Hervey [Sat, 7 Jun 2014 05:13:59 +0000 (07:13 +0200)]
mpegtsdemux: Fix sticky event handling
When we receive sticky events from upstream, always return TRUE.
Fixes the issue where we receive custom sticky events (such as "uri")
and no pads are created yet.
Damian Ziobro [Wed, 4 Jun 2014 17:34:44 +0000 (18:34 +0100)]
hlsdemux: Improve parsing quoted key URIs and apply it for I-frame-based stream URI
https://bugzilla.gnome.org/show_bug.cgi?id=730830
Sebastian Dröge [Fri, 6 Jun 2014 10:08:04 +0000 (13:08 +0300)]
hlsdemux: Don't store the current key in the playlist
It's per fragment and applying to all following fragments
until the next key is specified.