platform/upstream/gstreamer.git
8 years agovkimagememory: free the managing struct on _free
Matthew Waters [Wed, 10 Feb 2016 07:05:47 +0000 (18:05 +1100)]
vkimagememory: free the managing struct on _free

fixes a memory leak

8 years agovkdevice: perform a waitIdle before destroying the device
Matthew Waters [Tue, 9 Feb 2016 07:26:40 +0000 (18:26 +1100)]
vkdevice: perform a waitIdle before destroying the device

8 years agoRevert "vulkan: remove views from the memory objects."
Matthew Waters [Tue, 9 Feb 2016 06:46:53 +0000 (17:46 +1100)]
Revert "vulkan: remove views from the memory objects."

This reverts commit 1ea817298ee4d5ef9b00f888f8ebe16a888b1150.

8 years agovulkanmemory: remove bind variants
Matthew Waters [Tue, 9 Feb 2016 06:31:26 +0000 (17:31 +1100)]
vulkanmemory: remove bind variants

8 years agovulkan: remove views from the memory objects.
Matthew Waters [Tue, 9 Feb 2016 05:21:00 +0000 (16:21 +1100)]
vulkan: remove views from the memory objects.

They are not used and it's not possible to create the view before binding the
VkDeviceMemory object to them.

8 years agovkswapper: alpha flags are now supported by LunarG's driver
Matthew Waters [Tue, 9 Feb 2016 00:34:57 +0000 (11:34 +1100)]
vkswapper: alpha flags are now supported by LunarG's driver

8 years agovulkan: add a vulkanbuffer bufferpool
Matthew Waters [Mon, 8 Feb 2016 13:07:38 +0000 (00:07 +1100)]
vulkan: add a vulkanbuffer bufferpool

8 years agovulkan: add upload element
Matthew Waters [Mon, 8 Feb 2016 11:49:15 +0000 (22:49 +1100)]
vulkan: add upload element

8 years agovkutils: fix assert inversion
Matthew Waters [Mon, 8 Feb 2016 07:28:29 +0000 (18:28 +1100)]
vkutils: fix assert inversion

8 years agovulkan: add caps feature names for the buffer and image memories
Matthew Waters [Mon, 8 Feb 2016 07:27:16 +0000 (18:27 +1100)]
vulkan: add caps feature names for the buffer and image memories

8 years agovulkan: add device to handle_context_query
Matthew Waters [Mon, 8 Feb 2016 03:44:20 +0000 (14:44 +1100)]
vulkan: add device to handle_context_query

8 years agovulkan: move instance_open into the utility ensure_element_data
Matthew Waters [Mon, 8 Feb 2016 03:32:10 +0000 (14:32 +1100)]
vulkan: move instance_open into the utility ensure_element_data

So callers don't have to perform it themselves.

8 years agovkinstance: add signal for overriding device creation
Matthew Waters [Mon, 8 Feb 2016 03:25:49 +0000 (14:25 +1100)]
vkinstance: add signal for overriding device creation

8 years agovulkan: separate allocation and binding of memory
Matthew Waters [Mon, 8 Feb 2016 01:22:11 +0000 (12:22 +1100)]
vulkan: separate allocation and binding of memory

8 years agovkbuffermemory: follow the rest of the struct macros
Matthew Waters [Mon, 8 Feb 2016 01:14:44 +0000 (12:14 +1100)]
vkbuffermemory: follow the rest of the struct macros

8 years agovkswapper: use buffer memory to upload video frames to the GPU
Matthew Waters [Fri, 5 Feb 2016 08:31:49 +0000 (19:31 +1100)]
vkswapper: use buffer memory to upload video frames to the GPU

8 years agovulkan: add a buffer memory allocator
Matthew Waters [Fri, 5 Feb 2016 08:18:40 +0000 (19:18 +1100)]
vulkan: add a buffer memory allocator

Wraps the VkBuffer in a GstMemory subclass.

8 years agovkmemory: align struct members in the header
Matthew Waters [Fri, 5 Feb 2016 08:11:51 +0000 (19:11 +1100)]
vkmemory: align struct members in the header

8 years agovkmacros: use specific _INIT macros to initialize structures
Matthew Waters [Fri, 5 Feb 2016 08:10:43 +0000 (19:10 +1100)]
vkmacros: use specific _INIT macros to initialize structures

8 years agovkimagememory: add get_{width,height) functions
Matthew Waters [Fri, 5 Feb 2016 08:09:41 +0000 (19:09 +1100)]
vkimagememory: add get_{width,height) functions

8 years agovulkan: update to release 1.0.1.1
Matthew Waters [Wed, 27 Jan 2016 04:20:49 +0000 (15:20 +1100)]
vulkan: update to release 1.0.1.1

8 years agovulkan/xcb: flush after mapping the window
Matthew Waters [Fri, 22 Jan 2016 03:34:06 +0000 (14:34 +1100)]
vulkan/xcb: flush after mapping the window

Otherwise the map may not reach the server and not appear.

8 years agovkswapper: fix semaphore usage
Matthew Waters [Mon, 4 Jan 2016 05:51:26 +0000 (16:51 +1100)]
vkswapper: fix semaphore usage

8 years agovulkan: add some debugging about the supported extensions
Matthew Waters [Thu, 31 Dec 2015 05:34:24 +0000 (16:34 +1100)]
vulkan: add some debugging about the supported extensions

8 years agovkswapper: get the function pointers from the correct object
Matthew Waters [Thu, 31 Dec 2015 04:58:37 +0000 (15:58 +1100)]
vkswapper: get the function pointers from the correct object

GetPhysicalDevice* functions are instance functions rather than device
functions.

8 years agovkinstance: add the necessary winsys extension
Matthew Waters [Thu, 31 Dec 2015 04:38:37 +0000 (15:38 +1100)]
vkinstance: add the necessary winsys extension

8 years agovkdisplay: forward declare GstVulkanDisplayType
Matthew Waters [Thu, 31 Dec 2015 04:34:45 +0000 (15:34 +1100)]
vkdisplay: forward declare GstVulkanDisplayType

8 years agovkapi: remove unneeded headers
Matthew Waters [Thu, 31 Dec 2015 04:32:15 +0000 (15:32 +1100)]
vkapi: remove unneeded headers

vkapi is for accessing the vulkan headers with the correct defines applied so
doesn't need any interal headers.

8 years agovkimagememory: fix the memory barrier access masks
Matthew Waters [Wed, 30 Dec 2015 04:15:40 +0000 (15:15 +1100)]
vkimagememory: fix the memory barrier access masks

silences the following warnings from the validation layer

AccessMask xxx must have required access bit xxx and may have optional bits 0
when layout is VK_IMAGE_LAYOUT_TRANSFER_{SRC,DST}_OPTIMAL

8 years agovkswapper: only wait on the semaphore once
Matthew Waters [Wed, 30 Dec 2015 04:14:23 +0000 (15:14 +1100)]
vkswapper: only wait on the semaphore once

It's invalid usage and we may deadlock

8 years agovkimagememory: initialize flags and don't crash on errors
Matthew Waters [Wed, 30 Dec 2015 14:27:54 +0000 (01:27 +1100)]
vkimagememory: initialize flags and don't crash on errors

8 years agovulkan: update error db for 0.10.2
Matthew Waters [Wed, 30 Dec 2015 03:06:01 +0000 (14:06 +1100)]
vulkan: update error db for 0.10.2

8 years agovulkan: update to SDK 0.10.2
Matthew Waters [Tue, 29 Dec 2015 05:05:17 +0000 (16:05 +1100)]
vulkan: update to SDK 0.10.2

8 years agovulkan: implement GstContext helpers
Matthew Waters [Mon, 7 Dec 2015 06:33:43 +0000 (17:33 +1100)]
vulkan: implement GstContext helpers

Based off libgstgl's implementation

8 years agovkdevice: remove gst_vulkan_device_close()
Matthew Waters [Mon, 7 Dec 2015 06:21:12 +0000 (17:21 +1100)]
vkdevice: remove gst_vulkan_device_close()

When sharing the device between multiple elements/application, we need
to use th erefcount to know when to close the device.

8 years agovkinstance: remove gst_vulkan_instance_close
Matthew Waters [Mon, 7 Dec 2015 06:00:37 +0000 (17:00 +1100)]
vkinstance: remove gst_vulkan_instance_close

Sharing the instance across multiple elements/application will require
using the refcount instead to know when to close and destroy the instance.

8 years agovkswapper: remove outdated comment
Matthew Waters [Mon, 7 Dec 2015 05:46:28 +0000 (16:46 +1100)]
vkswapper: remove outdated comment

8 years agovkswapper: always match lock/unlock of the render lock
Matthew Waters [Mon, 7 Dec 2015 05:39:53 +0000 (16:39 +1100)]
vkswapper: always match lock/unlock of the render lock

If a draw event comes from the winsys before we've rendered a buffer we were
deadlocking.

8 years agovkmemory: debug output the memory properties requested
Matthew Waters [Wed, 2 Dec 2015 06:54:30 +0000 (17:54 +1100)]
vkmemory: debug output the memory properties requested

8 years agovkimagememory: don't leak GstMapInfo in failure cases on _map()
Matthew Waters [Wed, 2 Dec 2015 06:14:49 +0000 (17:14 +1100)]
vkimagememory: don't leak GstMapInfo in failure cases on _map()

8 years agovulkan: de-C99 struct declarations
Matthew Waters [Wed, 2 Dec 2015 06:10:39 +0000 (17:10 +1100)]
vulkan: de-C99 struct declarations

8 years agovkwindow/swapper: implement redraw handling
Matthew Waters [Tue, 1 Dec 2015 07:37:34 +0000 (18:37 +1100)]
vkwindow/swapper: implement redraw handling

only xcb has been implemented

8 years agovulkan: implement quitting and resizing the window
Matthew Waters [Tue, 1 Dec 2015 05:28:28 +0000 (16:28 +1100)]
vulkan: implement quitting and resizing the window

As before, only xcb has been implemented.

8 years agonew vulkan based video sink
Matthew Waters [Sat, 24 Oct 2015 06:29:05 +0000 (17:29 +1100)]
new vulkan based video sink

Currently xcb is the only winsys that is implemented and there's no redraws et
al

8 years agotests: remove test files no longer needed
Tim-Philipp Müller [Tue, 16 Feb 2016 12:38:21 +0000 (12:38 +0000)]
tests: remove test files no longer needed

8 years agompg123: move plugin from -bad to -ugly
Tim-Philipp Müller [Tue, 16 Feb 2016 10:44:33 +0000 (10:44 +0000)]
mpg123: move plugin from -bad to -ugly

https://bugzilla.gnome.org/show_bug.cgi?id=719849

8 years agogtk(gl)sink: remove the signal handlers on finalize
Matthew Waters [Tue, 16 Feb 2016 08:59:13 +0000 (19:59 +1100)]
gtk(gl)sink: remove the signal handlers on finalize

It's possible that the sink element will be freed before the widget is
destroyed.  When the widget was eventually destroyed, it was attempting to
access member variables of the freed sink struct which resulted in undefined
behaviour.

Fix by disconnecting our signal on finalize.

https://bugzilla.gnome.org/show_bug.cgi?id=762098

8 years agogl: Remove leftover g_prints
Sebastian Dröge [Tue, 16 Feb 2016 06:48:23 +0000 (08:48 +0200)]
gl: Remove leftover g_prints

One was commented out, but we also don't use // comments :)

8 years agogldebug: use the correct spelling for behavior
Matthew Waters [Tue, 16 Feb 2016 03:41:37 +0000 (14:41 +1100)]
gldebug: use the correct spelling for behavior

The headers use the american spelling of behavior not the UK/AUS version with
the extra U.

8 years agoglcontext: don't enable GL debug for messages that won't be logged
Matthew Waters [Tue, 16 Feb 2016 02:58:42 +0000 (13:58 +1100)]
glcontext: don't enable GL debug for messages that won't be logged

This is an optimization to avoid pointless string processing.

8 years agoglvideoflip: don't ignore method changes when caps aren't set (yet)
Alessandro Decina [Tue, 16 Feb 2016 02:01:20 +0000 (13:01 +1100)]
glvideoflip: don't ignore method changes when caps aren't set (yet)

8 years agortp: move RTP H.265 payloader/depayloader to -good
Tim-Philipp Müller [Tue, 16 Feb 2016 00:33:50 +0000 (00:33 +0000)]
rtp: move RTP H.265 payloader/depayloader to -good

https://bugzilla.gnome.org/show_bug.cgi?id=761606

8 years agonetsim: Add netsim element
Stian Selnes [Wed, 7 Oct 2015 21:49:58 +0000 (23:49 +0200)]
netsim: Add netsim element

Resurrected from the Farstream repository and given an
overhaul to fix races, deadlocks etc.

https://bugzilla.gnome.org/show_bug.cgi?id=756252

8 years agodashdemux: gst_dash_demux_get_live_seek_range returns positive values
Florin Apostol [Fri, 20 Nov 2015 19:38:03 +0000 (19:38 +0000)]
dashdemux: gst_dash_demux_get_live_seek_range returns positive values

https://bugzilla.gnome.org/show_bug.cgi?id=752374

8 years agogl: syncmeta: define GL_TIMEOUT_IGNORED in more portable way
Tim-Philipp Müller [Wed, 10 Feb 2016 10:31:19 +0000 (10:31 +0000)]
gl: syncmeta: define GL_TIMEOUT_IGNORED in more portable way

8 years agogstglshader: cache uniform locations
Alessandro Decina [Wed, 10 Feb 2016 05:37:22 +0000 (16:37 +1100)]
gstglshader: cache uniform locations

Avoid redundant calls to glGetUniformLocation. The results can be cached once
the shader has been linked.

8 years agoapplemedia: videotesturecache: let CVOpenGLESTextureCache flush every 1s
Alessandro Decina [Wed, 10 Feb 2016 04:40:02 +0000 (15:40 +1100)]
applemedia: videotesturecache: let CVOpenGLESTextureCache flush every 1s

Leave kCVOpenGLESTextureCacheMaximumTextureAgeKey to the default (1s). We used
to set it to 0 and flush manually, but apparently (looking at the GLES profiler)
0 means "disable the cache entirely".

8 years agogstglcontext: micro optimization to gst_gl_context_thread_add
Alessandro Decina [Wed, 10 Feb 2016 02:08:43 +0000 (13:08 +1100)]
gstglcontext: micro optimization to gst_gl_context_thread_add

Invoke the callback right away when called on the context thread. Removes
overhead when nesting libgstgl calls (for example when working with the sync
meta).

8 years agortpmsink: Implement setcaps that uses streamheader
Julien MOUTTE [Wed, 6 Jan 2016 21:39:00 +0000 (21:39 +0000)]
rtpmsink: Implement setcaps that uses streamheader

This allow adding rtmpsink after the flv streaming have started. Otherwise,
FLV streamheader is never sent to the server, which cannot figure-out
what is this stream about. It should also help in certain renegotiation
figures. The sink will no longer work without an streamheader in caps,
though there is no known implementation of flvdemux that does not
support this.

https://bugzilla.gnome.org/show_bug.cgi?id=760242

8 years agomssdemux: remove unnecessary check
Luis de Bethencourt [Tue, 9 Feb 2016 21:35:19 +0000 (21:35 +0000)]
mssdemux: remove unnecessary check

stream->current_fragment has the value of g_list_previous (iter) which has
just been checked. No need to check it again.

Just to be safe, use a g_assert() to check fragment before dereferencing.

CID #1352041

8 years agodashdemux: plug mpd client leak
Thiago Santos [Tue, 9 Feb 2016 20:24:50 +0000 (17:24 -0300)]
dashdemux: plug mpd client leak

On parsing error, free the mpd client object

https://bugzilla.gnome.org/show_bug.cgi?id=760120

8 years agodashdemux: fix memory leak in gst_dash_demux_update_manifest_data
Florin Apostol [Mon, 4 Jan 2016 12:12:45 +0000 (12:12 +0000)]
dashdemux: fix memory leak in gst_dash_demux_update_manifest_data

new_client local variable was not freed in case of errors.
Also, the buffer is not unmapped.

https://bugzilla.gnome.org/show_bug.cgi?id=760120

8 years agompdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_c...
Florin Apostol [Tue, 10 Nov 2015 22:01:38 +0000 (22:01 +0000)]
mpdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_client_get_next_segment_availability_start_time

The function actually returns the segment availability start time (as defined by the standard).
That is at the end of the segment, but it is called availability start time.

Availability end time is something else (the time when the segment is no longer
available on the server). The function name was misleading.

https://bugzilla.gnome.org/show_bug.cgi?id=757655

8 years agompdparser: corrected getting segment availability
Florin Apostol [Tue, 10 Nov 2015 22:00:58 +0000 (22:00 +0000)]
mpdparser: corrected getting segment availability

https://bugzilla.gnome.org/show_bug.cgi?id=757655

8 years agompdparser: tests: added unit test for getting segment availability when segment timel...
Florin Apostol [Thu, 19 Nov 2015 15:30:34 +0000 (15:30 +0000)]
mpdparser: tests: added unit test for getting segment availability when segment timeline is used

https://bugzilla.gnome.org/show_bug.cgi?id=757655

8 years agoadaptive_demux: tests: improved validation of pads
Florin Apostol [Thu, 7 Jan 2016 12:50:06 +0000 (12:50 +0000)]
adaptive_demux: tests: improved validation of pads

When removing a pad, the on_demuxPadRemoved function must find a stream
for that pad.

https://bugzilla.gnome.org/show_bug.cgi?id=760328

8 years agoadaptive_demux: tests: fix pad used for AppSink event
Florin Apostol [Thu, 7 Jan 2016 12:48:12 +0000 (12:48 +0000)]
adaptive_demux: tests: fix pad used for AppSink event

on_demuxNewPad registered the on_appsink_event callback on a wrong pad.

https://bugzilla.gnome.org/show_bug.cgi?id=760328

8 years agoadaptivedemux: tests: remove unused demux_sent_eos callback
Florin Apostol [Fri, 8 Jan 2016 16:25:12 +0000 (16:25 +0000)]
adaptivedemux: tests: remove unused demux_sent_eos callback

The demux_sent_eos callback is unused in tests. It was also registered on
a wrong pad, so it actually triggered when demux received eos from a
fragment download.

https://bugzilla.gnome.org/show_bug.cgi?id=760328

8 years agoadaptivedemux: tests: remove unneeded youtube xmlns from manifests
Florin Apostol [Fri, 8 Jan 2016 18:17:21 +0000 (18:17 +0000)]
adaptivedemux: tests: remove unneeded youtube xmlns from manifests

https://bugzilla.gnome.org/show_bug.cgi?id=760328

8 years agoapplemedia: vtdec: implement GstElement::set_context
Alessandro Decina [Tue, 9 Feb 2016 03:07:54 +0000 (14:07 +1100)]
applemedia: vtdec: implement GstElement::set_context

8 years agoapplemedia: vtdec: update copyright
Alessandro Decina [Tue, 9 Feb 2016 03:04:09 +0000 (14:04 +1100)]
applemedia: vtdec: update copyright

8 years agoapplemedia: avfvideosrc: implement GstElement::set_context
Alessandro Decina [Tue, 9 Feb 2016 02:42:48 +0000 (13:42 +1100)]
applemedia: avfvideosrc: implement GstElement::set_context

Needed to properly handle gst.gl.app_context(s).

8 years agoapplemedia: avfvideosrc: add myself to the copyright holders
Alessandro Decina [Tue, 9 Feb 2016 02:39:18 +0000 (13:39 +1100)]
applemedia: avfvideosrc: add myself to the copyright holders

8 years agogl: update win32 .def file
Matthew Waters [Tue, 9 Feb 2016 02:56:32 +0000 (13:56 +1100)]
gl: update win32 .def file

8 years agoglsyncmeta: add compatibility definition for GL_TIMEOUT_IGNORED
Matthew Waters [Tue, 9 Feb 2016 02:08:21 +0000 (13:08 +1100)]
glsyncmeta: add compatibility definition for GL_TIMEOUT_IGNORED

8 years agoglsyncmeta: separate out gpu/cpu waits.
Matthew Waters [Tue, 9 Feb 2016 01:14:04 +0000 (12:14 +1100)]
glsyncmeta: separate out gpu/cpu waits.

CPU waits are more expensive and are only required if the CPU is ever going to
access the data. GPU waits perform inter-context synchronisation and are cheaper
as they don't require CPU intervention.

8 years agoadaptivedemux: remove overwritten value
Luis de Bethencourt [Mon, 8 Feb 2016 23:17:34 +0000 (23:17 +0000)]
adaptivedemux: remove overwritten value

ret is overwitten before used with the return of the subclass seek.

CID #1352044

8 years agoresindvd: remove commented out include
Luis de Bethencourt [Mon, 8 Feb 2016 15:00:35 +0000 (15:00 +0000)]
resindvd: remove commented out include

Commit 211828979b8c10abf3c74d964bc698dbda4d497d removed rsnaudiomunge,
no need for this commented out include for a file that doesn't exist
anymore.

8 years agoRevert "resindvd: get rid of _stdint.h include"
Luis de Bethencourt [Mon, 8 Feb 2016 14:26:46 +0000 (14:26 +0000)]
Revert "resindvd: get rid of _stdint.h include"

This reverts commit 0eff6e1991cb24cb65f07c481742782acaa8ec62.

Breaks the build when linking with dvdnav.h

8 years agox265enc: get rid of _stdint.h include
Luis de Bethencourt [Mon, 8 Feb 2016 13:43:22 +0000 (13:43 +0000)]
x265enc: get rid of _stdint.h include

It was never needed since it doesn't use any standard integer fixed width
types. Only the Glib types.

8 years agoresindvd: get rid of _stdint.h include
Luis de Bethencourt [Mon, 8 Feb 2016 13:32:46 +0000 (13:32 +0000)]
resindvd: get rid of _stdint.h include

8 years agopo: update POTFILES
Piotr Drąg [Mon, 8 Feb 2016 11:44:53 +0000 (12:44 +0100)]
po: update POTFILES

https://bugzilla.gnome.org/show_bug.cgi?id=761704

8 years agogleffects: identity: add the shader to the hash table
Matthew Waters [Mon, 8 Feb 2016 01:23:12 +0000 (12:23 +1100)]
gleffects: identity: add the shader to the hash table

So that we don't recreate it every frame and leak memory.

https://bugzilla.gnome.org/show_bug.cgi?id=761578

8 years agotests: extend the AM_TESTS_ENVIRONMENT from check.mak
Thiago Santos [Fri, 5 Feb 2016 23:02:22 +0000 (20:02 -0300)]
tests: extend the AM_TESTS_ENVIRONMENT from check.mak

To get the CK_DEFAULT_TIMEOUT defined for all tests

https://bugzilla.gnome.org/show_bug.cgi?id=761472

8 years agoAutomatic update of common submodule
Thiago Santos [Fri, 5 Feb 2016 21:06:32 +0000 (18:06 -0300)]
Automatic update of common submodule

From e97c9bb to b64f03f

8 years agogstrtph265depay: keep consistency with rtph264depay
Luis de Bethencourt [Fri, 5 Feb 2016 15:34:51 +0000 (15:34 +0000)]
gstrtph265depay: keep consistency with rtph264depay

Use gst_rtp_drop_meta() and the same function prototype for
gst_rtp_copy_meta() to keep consistency with the RTP elements in
gst-plugins-good

8 years agotinyalsasink: Use glib CLAMP() instead of our own macro
Arun Raghavan [Fri, 5 Feb 2016 16:03:38 +0000 (21:33 +0530)]
tinyalsasink: Use glib CLAMP() instead of our own macro

8 years agortph265depay: fix termination of access unit
Luis de Bethencourt [Fri, 5 Feb 2016 13:56:34 +0000 (13:56 +0000)]
rtph265depay: fix termination of access unit

Only consider the access unit complete when the next-occurring VCL NAL unit
has the first bit after its NAL unit header equal to 1.

8 years agoadaptivedemux: Update position in stream->segment for new stream segment message.
David Waring [Tue, 2 Feb 2016 13:50:25 +0000 (13:50 +0000)]
adaptivedemux: Update position in stream->segment for new stream segment message.

https://bugzilla.gnome.org/show_bug.cgi?id=761458

8 years agotinyalsasink: Limit period size and count to what the h/w permits
Arun Raghavan [Fri, 5 Feb 2016 10:13:22 +0000 (15:43 +0530)]
tinyalsasink: Limit period size and count to what the h/w permits

8 years agogl: add .def file for msvc builds
Matthew Waters [Thu, 4 Feb 2016 23:43:49 +0000 (10:43 +1100)]
gl: add .def file for msvc builds

Also internalize some API from being exported.

8 years agotests: mssdemux: add unit tests
Thiago Santos [Tue, 2 Feb 2016 20:02:41 +0000 (17:02 -0300)]
tests: mssdemux: add unit tests

Adds unit tests similar to the ones that we have for DASH and HLS.

Tests:

* manifest parsing finishes successfully
* some queries (duration, seekable, latency)
* seeking with various values and flags

8 years agomssdemux: implement snap seeking
Thiago Santos [Tue, 2 Feb 2016 19:54:10 +0000 (16:54 -0300)]
mssdemux: implement snap seeking

Implement snap seek flags handling in stream_seek to allow the
parent class to handle it for us

https://bugzilla.gnome.org/show_bug.cgi?id=759158

8 years agomssdemux: use correct seek position on reverse seeks
Thiago Santos [Tue, 2 Feb 2016 19:51:22 +0000 (16:51 -0300)]
mssdemux: use correct seek position on reverse seeks

Otherwise it was always using the 'start' value, leading to wrong
behavior

8 years agomssdemux: only update download position if the seek requests to
Thiago Santos [Tue, 2 Feb 2016 14:30:31 +0000 (11:30 -0300)]
mssdemux: only update download position if the seek requests to

Some seeks are only updating the stop position, there is no need
to change the current downloading position.

8 years agomssdemux: do not assert on fragment reloads for non-live
Thiago Santos [Tue, 2 Feb 2016 12:52:17 +0000 (09:52 -0300)]
mssdemux: do not assert on fragment reloads for non-live

It can be used as a resource to verify if the server has updated
something in the Manifest when downloads are failing

8 years agotests: dashdemux: add tests for snap flags seeking
Thiago Santos [Wed, 27 Jan 2016 13:48:53 +0000 (10:48 -0300)]
tests: dashdemux: add tests for snap flags seeking

Similar to HLS but DASH has the extra issue that it can have
multiple streams so snapping can be tricky as streams usually
won't be aligned.

For now, those tests handle the case of only having a single
stream.

https://bugzilla.gnome.org/show_bug.cgi?id=759158

8 years agodashdemux: implement snap seek handling
Thiago Santos [Mon, 1 Feb 2016 13:49:23 +0000 (10:49 -0300)]
dashdemux: implement snap seek handling

Handle snap seeking at the stream_seek method and let superclass
do the rest to support snap seeking

https://bugzilla.gnome.org/show_bug.cgi?id=759158

8 years agoadaptivedemux: handle snap seeks
Thiago Santos [Wed, 27 Jan 2016 16:31:10 +0000 (13:31 -0300)]
adaptivedemux: handle snap seeks

Adaptive demuxers need to start downloading from specific positions
(fragments) for every stream, this means that all streams can snap-seek
to a different position when requested. Snap seeking in this case will
be done in 2 steps:

1) do the snap seeking on the pad that received the seek event and
   get the final position

2) use this position to do a regular seek on the other streams to
   make sure they all start from the same position

More arguments were added to the stream_seek function, allowing better control
of how seeking is done. Knowing the flags and the playback direction allows
subclasses to handle snap-seeking.
And also adds a new return parameter to inform of the final
selected seeking position that is used to align the other streams.

https://bugzilla.gnome.org/show_bug.cgi?id=759158

8 years agoadaptivedemux: add utility function to get stream from pad
Thiago Santos [Wed, 27 Jan 2016 02:43:24 +0000 (23:43 -0300)]
adaptivedemux: add utility function to get stream from pad

Simplifies the code a bit and avoid repeating this
common operation