platform/upstream/gstreamer.git
7 years agotests: start porting to meson
Mathieu Duponchelle [Thu, 18 May 2017 20:02:38 +0000 (22:02 +0200)]
tests: start porting to meson

Incomplete port, to get the ball rolling

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

7 years agomsdk: enc: set pts and dts, fix inverted sync_point flag
Scott D Phillips [Thu, 18 May 2017 17:36:50 +0000 (10:36 -0700)]
msdk: enc: set pts and dts, fix inverted sync_point flag

Set the pts and dts on the frame that we receive from the msdk.
Also fix the inverted logic in setting sync points, previously we
were marking all frames as sync points except IDRs.

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

7 years agogl: Add dependency to gstallocators
Nicolas Dufresne [Mon, 29 May 2017 16:22:17 +0000 (12:22 -0400)]
gl: Add dependency to gstallocators

7 years agodecklink: Make timestamp reference specifier driver specific
Sebastian Dröge [Wed, 7 Jun 2017 14:50:09 +0000 (17:50 +0300)]
decklink: Make timestamp reference specifier driver specific

7 years agojpeg2000parse: parse RSIZ capabilities and put profile/level into the caps
Aaron Boxer [Fri, 12 May 2017 19:28:46 +0000 (15:28 -0400)]
jpeg2000parse: parse RSIZ capabilities and put profile/level into the caps

The RSIZ capabilities tag stores the JPEG 2000 profile. In the case of
broadcast profiles, it also stores the broadcast main level, which
specifies the bit rate.

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

7 years agoadaptivedemux: Clear "cancelled" on uridownloader before processing manifest
Seungha Yang [Sun, 4 Jun 2017 11:23:36 +0000 (20:23 +0900)]
adaptivedemux: Clear "cancelled" on uridownloader before processing manifest

Previous commit let demux call gst_uri_downloader_cancel() on _demux_reset().
Note that, _demux_reset() called during PAUSED_TO_READY and READY_TO_PAUSED.
And, it will set "cancelled" on uridownloader which blocks the use of
uridownloader. The issue is that, subclass can use the uridownloader not only
live streaming for manifest update, but also for fetching another manifests
such as variant and rendition m3u8 of hls streaming. So to unblock it,
demux should clear "cancelled" before processing initial manifest.

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

7 years agovideoparse: Fix property handling
Thibault Saunier [Tue, 6 Jun 2017 18:58:55 +0000 (14:58 -0400)]
videoparse: Fix property handling

Usage of GstValueArray was wrong and frame-stride does not exist in
rawvideoparse

7 years agokmssink: Add xilinx_drm to the list of drivers
Guillaume Desmottes [Thu, 25 May 2017 13:10:32 +0000 (15:10 +0200)]
kmssink: Add xilinx_drm to the list of drivers

This prevent having to set the driver-name explicitly when running on
Zynq UltraScale+ boards.

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

7 years agopcapparse: endianness fix
Wim Taymans [Thu, 1 Jun 2017 14:00:50 +0000 (16:00 +0200)]
pcapparse: endianness fix

Also swap the linktype after we detected that we need to do
byteswapping. Fixes a problem with reading pcap files generated
on a machine with different endianness.

7 years agoadaptivedemux: release the manifest lock ...
Mathieu Duponchelle [Wed, 31 May 2017 00:46:01 +0000 (02:46 +0200)]
adaptivedemux: release the manifest lock ...

before broadcasting preroll.

The deadlock was as follows:

-> The subclass pushes a buffer on a newly-created stream in T1
-> We take the preroll lock in T1, to handle_preroll
-> The demuxer is stopped in T2, we take the MANIFEST_LOCK
-> T1 starts blocking because it received a reconfigure event
   and needs to take the MANIFEST_LOCK
-> T2 deadlocks because it now wants the preroll_lock.

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

7 years agodashdemux: Implement a default presentation delay
Edward Hervey [Tue, 30 May 2017 13:27:37 +0000 (15:27 +0200)]
dashdemux: Implement a default presentation delay

Have a fallback presentation delay is great (if not present in the
manifest), having an actual default value is better.

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

7 years agoadaptivedemux: do not erase data while updates-loop is running
Thiago Santos [Tue, 30 May 2017 05:28:21 +0000 (22:28 -0700)]
adaptivedemux: do not erase data while updates-loop is running

Make sure the manifest update loop is stopped before proceeding with the
resetting of the manifest data. Otherwise, the updates loop will try to
use it and it leads to a segfault

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

7 years agompdparser: remove duplicate free of client data
Thiago Santos [Tue, 30 May 2017 05:26:09 +0000 (22:26 -0700)]
mpdparser: remove duplicate free of client data

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

7 years agoglutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()
Jeremy Hiatt [Thu, 1 Jun 2017 01:15:05 +0000 (01:15 +0000)]
glutils: Fix GValue leak in gst_gl_value_set_texture_target_from_mask()

7 years agoadaptivedemux: make sure to free all "old streams"
Mathieu Duponchelle [Wed, 31 May 2017 01:14:04 +0000 (03:14 +0200)]
adaptivedemux: make sure to free all "old streams"

As we release the MANIFEST_LOCK in stop_tasks,
demux->priv->old_streams can be set, we need to free these
otherwise we may end up trying to dispose elements in the
READY state.

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

7 years agoadaptivedemux: Don't be too aggressive with seek ranges
Edward Hervey [Tue, 16 May 2017 15:29:35 +0000 (17:29 +0200)]
adaptivedemux: Don't be too aggressive with seek ranges

When an accurate seek is requested on a live stream, only requests the
exact value for the "starting position" (i.e. start in forward playback
and stop in reverse playback).

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

7 years agodashdemux: Remove wrong assertion
Edward Hervey [Wed, 31 May 2017 08:58:39 +0000 (10:58 +0200)]
dashdemux: Remove wrong assertion

This is wrong because:
* If the rate is negative we should check for the *previous* period
* adaptivedemux already does the proper checks before calling this
  method

7 years agottml: Simplify code
Edward Hervey [Fri, 26 May 2017 15:55:44 +0000 (17:55 +0200)]
ttml: Simplify code

n2 can never be NULL since:
* it's in a "while (n1 && n2)" block
* and it's not modified before

CID #1405868

7 years agononstreamaudio: Avoid using wrong variable
Edward Hervey [Fri, 26 May 2017 15:44:40 +0000 (17:44 +0200)]
nonstreamaudio: Avoid using wrong variable

And to make that 100% obvious, only use variables declared within the
switch cases instead of function-wide ones.

Also remove useless one-time-use-only variable.

CID #1409857

7 years agononstreamaudio: Avoid using un-initialized value
Edward Hervey [Fri, 26 May 2017 15:41:39 +0000 (17:41 +0200)]
nonstreamaudio: Avoid using un-initialized value

We would end up with cur_position not set but proceed being at its
default value of TRUE. Instead, properly set proceed to FALSE

CID #1409855

7 years agoadaptivedemux: Fix debugging message
Edward Hervey [Fri, 26 May 2017 15:30:10 +0000 (17:30 +0200)]
adaptivedemux: Fix debugging message

GstSegment position is a guint64 and not a gint64

CID #1409910

7 years agoadaptivedemux: Check live seeking range more often
Edward Hervey [Thu, 25 May 2017 07:48:53 +0000 (09:48 +0200)]
adaptivedemux: Check live seeking range more often

The live seeking range was only checked when doing actual seeks. This was
assuming that the rate would always be 1.0 (i.e. the playback would
advance in realtime, and therefore fragments would always be available
since the seeking window moves at the same rate).

With non-1.0 rates, this no longer becomes valid, and therefore we need
to check whether we are still within the live seeking range when advancing.

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

7 years agoadaptivedemux: Don't create invalid event
Edward Hervey [Thu, 25 May 2017 14:42:03 +0000 (16:42 +0200)]
adaptivedemux: Don't create invalid event

tags could potentially be NULL

7 years agoadaptivedemux: retry download MAX_DOWNLOAD_RETRY_COUNT times before erroring
Matthew Waters [Fri, 2 Dec 2016 06:51:57 +0000 (17:51 +1100)]
adaptivedemux: retry download MAX_DOWNLOAD_RETRY_COUNT times before erroring

What we want is to retry downloading the fragment on 4xx/5xx errors
however returning EOS will cause waiting for a manifest update for live
(which may be a really long time) or stop everything for non-live.

Change that to only return EOS/ERROR once we've reached the error limit.

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

7 years agogl: Fix indentation
Sebastian Dröge [Thu, 25 May 2017 10:06:03 +0000 (13:06 +0300)]
gl: Fix indentation

7 years agoglframebuffer: #define GL_READ_FRAMEBUFFER / GL_DRAW_FRAMEBUFFER if not defined yet
Sebastian Dröge [Thu, 25 May 2017 10:05:23 +0000 (13:05 +0300)]
glframebuffer: #define GL_READ_FRAMEBUFFER / GL_DRAW_FRAMEBUFFER if not defined yet

Just like we do elsewhere already.

7 years agoglformat: fix the usage of GST_GL_RGB565
Haihua Hu [Thu, 25 May 2017 03:05:47 +0000 (11:05 +0800)]
glformat: fix the usage of GST_GL_RGB565

GL_RGB565 is sized internal glformat, the corresponding glformat
should be GL_RGB and type is GL_UNSIGNED_SHORT_565. Otherwise will
return GL_INVALID_ENUM when creating texture.

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

7 years agoglframebuffer: check frame buffer status need use specific fbo target
Haihua Hu [Thu, 25 May 2017 02:09:04 +0000 (10:09 +0800)]
glframebuffer: check frame buffer status need use specific fbo target

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

7 years agoopenmpt: Fix compilation with 0.2.7386 as in Debian
Sebastian Dröge [Wed, 24 May 2017 08:47:47 +0000 (11:47 +0300)]
openmpt: Fix compilation with 0.2.7386 as in Debian

The OPENMPT_API_VERSION_AT_LEAST macro does not exist.

7 years agotests: Make audiomixer test_clip verify the resulting timestamps too
Olivier Crête [Mon, 22 May 2017 21:06:01 +0000 (23:06 +0200)]
tests: Make audiomixer test_clip verify the resulting timestamps too

7 years agoaggregator: Process serialized queries through the queue
Olivier Crête [Mon, 22 May 2017 22:53:57 +0000 (00:53 +0200)]
aggregator: Process serialized queries through the queue

This ensures that they really get processed in order with
buffers. Just waiting for the queue to be empty is sometimes not
enough as the buffers are dropped from the pad before the result is
pushed to the next element, sometimes resulting in surprising
re-ordering.

7 years agoaggregator: Set flow to FLUSHING on pad stop
Olivier Crête [Mon, 22 May 2017 22:53:23 +0000 (00:53 +0200)]
aggregator: Set flow to FLUSHING on pad stop

Fixes a rare race where the pad is being stopped while doing a query.

7 years agotests: audiointerleave: Remove drain with manual clock
Olivier Crête [Mon, 22 May 2017 22:52:27 +0000 (00:52 +0200)]
tests: audiointerleave: Remove drain with manual clock

Now that the queries go onto the queue, you may need to pull the crank
in order for them to be processed, making this test difficult.

7 years agoRequire wildmidi >= 0.4
Tim-Philipp Müller [Tue, 23 May 2017 08:57:28 +0000 (09:57 +0100)]
Require wildmidi >= 0.4

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

7 years agowildmidi: include stdint.h for int8_t
Tim-Philipp Müller [Tue, 23 May 2017 08:17:08 +0000 (09:17 +0100)]
wildmidi: include stdint.h for int8_t

7 years agowin32: update .def file for new base class
Tim-Philipp Müller [Tue, 23 May 2017 07:42:46 +0000 (08:42 +0100)]
win32: update .def file for new base class

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

7 years agowildmididec: explicitly cast buffer data to int8 in _decode()
Reynaldo H. Verdejo Pinochet [Mon, 22 May 2017 22:52:33 +0000 (15:52 -0700)]
wildmididec: explicitly cast buffer data to int8 in _decode()

Fixes compiler warning introduced in commit ff32a4297:

gstwildmididec.c:637:47: error: pointer targets in passing argument 2 of ‘WildMidi_GetOutput’ differ in signedness
       WildMidi_GetOutput (wildmidi_dec->song, (char *) (info.data), info.size);
                                               ^
wildmidi_lib.h:106:15: note: expected ‘int8_t * {aka signed char *}’ but argument is of type ‘char *’
 WM_SYMBOL int WildMidi_GetOutput (midi *handle, int8_t *buffer, uint32_t size);

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

7 years agoopenmpt: Add openmptdec element
Carlos Rafael Giani [Wed, 27 Jul 2016 00:22:26 +0000 (02:22 +0200)]
openmpt: Add openmptdec element

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

7 years agowildmidi: Port to 1.0 on top of the nonstreamaudiodecoder base class
Carlos Rafael Giani [Wed, 8 Mar 2017 21:17:41 +0000 (22:17 +0100)]
wildmidi: Port to 1.0 on top of the nonstreamaudiodecoder base class

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

7 years agoaudio: Add nonstreamaudiodecoder base class
Carlos Rafael Giani [Tue, 26 Jul 2016 23:41:20 +0000 (01:41 +0200)]
audio: Add nonstreamaudiodecoder base class

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

7 years agogltestsrc: Fix typo (occured->occurred)
Anders Jonsson [Mon, 22 May 2017 11:46:36 +0000 (13:46 +0200)]
gltestsrc: Fix typo (occured->occurred)

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

7 years agomeson: don't need config.h.meson any longer
Tim-Philipp Müller [Sun, 21 May 2017 17:03:02 +0000 (18:03 +0100)]
meson: don't need config.h.meson any longer

7 years agoaudioaggregate: Don't hold object locks across calls to aggregate_one
Olivier Crête [Sat, 20 May 2017 17:00:23 +0000 (19:00 +0200)]
audioaggregate: Don't hold object locks across calls to aggregate_one

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

7 years agoaggregator: Request pad templates which are not request pad
Olivier Crête [Fri, 18 Nov 2016 19:44:16 +0000 (14:44 -0500)]
aggregator: Request pad templates which are not request pad

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

7 years agoaggregator: Don't restrict sink pad names
Olivier Crête [Fri, 18 Nov 2016 19:41:54 +0000 (14:41 -0500)]
aggregator: Don't restrict sink pad names

Sink pads could have other names than sink_%u

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

7 years agoglbasemixer: Remove unused negotiated member
Olivier Crête [Sun, 21 May 2017 16:31:59 +0000 (18:31 +0200)]
glbasemixer: Remove unused negotiated member

This is now all handled in GstAggregator, so this code is not
called anymore.

7 years agovideoaggregator: Declare that it supports the video meta on input
Olivier Crête [Sun, 21 May 2017 13:44:02 +0000 (15:44 +0200)]
videoaggregator: Declare that it supports the video meta on input

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

7 years agogl*mixer: Use propose_allocation from the GstAggregator base class
Olivier Crête [Sun, 21 May 2017 13:30:10 +0000 (15:30 +0200)]
gl*mixer: Use propose_allocation from the GstAggregator base class

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

7 years agoaggregator: Implement propose allocation
Olivier Crête [Sun, 21 May 2017 13:19:17 +0000 (15:19 +0200)]
aggregator: Implement propose allocation

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

7 years agoaggregator: Check for the result of caps events
Olivier Crête [Sun, 21 May 2017 12:34:13 +0000 (14:34 +0200)]
aggregator: Check for the result of caps events

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

7 years agoaggregator: Caps event always goes to the aggregate thread
Olivier Crête [Sun, 21 May 2017 12:28:00 +0000 (14:28 +0200)]
aggregator: Caps event always goes to the aggregate thread

So no need to check it here.

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

7 years agogl/viv-fb: Fix user-choice string comparisons
Carlos Rafael Giani [Tue, 9 May 2017 21:59:04 +0000 (23:59 +0200)]
gl/viv-fb: Fix user-choice string comparisons

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

7 years agoqmlglsink: Add dummy texture that is shown as placeholder for NULL buffers
Carlos Rafael Giani [Sun, 21 May 2017 13:26:12 +0000 (15:26 +0200)]
qmlglsink: Add dummy texture that is shown as placeholder for NULL buffers

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

7 years agowin32: update .def file for new exports
Tim-Philipp Müller [Sun, 21 May 2017 14:15:48 +0000 (15:15 +0100)]
win32: update .def file for new exports

7 years agovideoaggregator: Create normal video pool as a fallback
Olivier Crête [Sat, 20 May 2017 16:10:29 +0000 (18:10 +0200)]
videoaggregator: Create normal video pool as a fallback

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

7 years agoaudioaggregator: Use downstream allocator and params if available
Olivier Crête [Sat, 20 May 2017 15:59:19 +0000 (17:59 +0200)]
audioaggregator: Use downstream allocator and params if available

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

7 years agoglbasemixer: Remove own decide_allocation, use GstAggregator's
Olivier Crête [Sat, 20 May 2017 15:35:43 +0000 (17:35 +0200)]
glbasemixer: Remove own decide_allocation, use GstAggregator's

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

7 years agoglbasemixer: Use aggregator for allocation handling
Olivier Crête [Sat, 20 May 2017 15:30:06 +0000 (17:30 +0200)]
glbasemixer: Use aggregator for allocation handling

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

7 years agovideoaggregator: Get the buffer from the pool if available
Olivier Crête [Sat, 20 May 2017 15:25:16 +0000 (17:25 +0200)]
videoaggregator: Get the buffer from the pool if available

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

7 years agoaggregator: Add downstream allocation query
Olivier Crête [Sat, 20 May 2017 14:58:54 +0000 (16:58 +0200)]
aggregator: Add downstream allocation query

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

7 years agovideoaggregator: Return to parent on reconfigure
Olivier Crête [Sun, 21 May 2017 10:41:53 +0000 (12:41 +0200)]
videoaggregator: Return to parent on reconfigure

The caps negotiation is now in the parent, so need to return there
if a reconfiguration is needed, otherwise it will loops forever.

7 years agogl: x11: fix compiler warning
Tim-Philipp Müller [Sun, 21 May 2017 10:44:37 +0000 (11:44 +0100)]
gl: x11: fix compiler warning

7 years agoglcontext: add public swap_buffers function
Matthew Waters [Sun, 21 May 2017 10:03:01 +0000 (12:03 +0200)]
glcontext: add public swap_buffers function

That simply calls the implementation

7 years agoexamples: gl: remove ancient bitrotten .vcproj files
Tim-Philipp Müller [Sun, 21 May 2017 09:57:18 +0000 (10:57 +0100)]
examples: gl: remove ancient bitrotten .vcproj files

7 years agoadaptivedemux: fix debug message printf format
Graham Leggett [Sat, 20 May 2017 16:22:10 +0000 (16:22 +0000)]
adaptivedemux: fix debug message printf format

Match gsize to G_GSIZE_FORMAT in the debug message.

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

7 years agowin32: update .def file for API removal
Tim-Philipp Müller [Sat, 20 May 2017 16:04:52 +0000 (17:04 +0100)]
win32: update .def file for API removal

7 years agoaudiointerleave: Take object lock while modifying channel count
Olivier Crête [Sat, 20 May 2017 15:47:04 +0000 (17:47 +0200)]
audiointerleave: Take object lock while modifying channel count

7 years agoaggregator: Remove unused GST_FLOW_NOT_HANDLED
Olivier Crête [Sat, 20 May 2017 13:56:16 +0000 (15:56 +0200)]
aggregator: Remove unused GST_FLOW_NOT_HANDLED

7 years agoaggregator: add simple support for caps handling
Matthew Waters [Sat, 20 May 2017 12:24:57 +0000 (14:24 +0200)]
aggregator: add simple support for caps handling

Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.

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

7 years agoaggregator: Reset upstream latency on first buffer
Nicolas Dufresne [Sat, 20 May 2017 11:10:53 +0000 (13:10 +0200)]
aggregator: Reset upstream latency on first buffer

In the case an aggregator is created and pads are requested but only
linked later, we end up never updating the upstream latency.
This was because latency queries on pads that are not linked succeed,
so we never did a new query once a live source has been linked, so the
thread was never started.

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

7 years agovideoaggregator: delay using new caps from a sink pad until the next buffer in the...
George Kiagiadakis [Tue, 4 Apr 2017 08:25:43 +0000 (11:25 +0300)]
videoaggregator: delay using new caps from a sink pad until the next buffer in the queue is taken

When caps changes while streaming, the new caps was getting processed
immediately in videoaggregator, but the next buffer in the queue that
corresponds to this new caps was not necessarily being used immediately,
which resulted sometimes in using an old buffer with new caps. Of course
there used to be a separate buffer_vinfo for mapping the buffer with its
own caps, but in compositor the GstVideoConverter was still using wrong
info and resulted in invalid reads and corrupt output.

This approach here is more safe. We delay using the new caps
until we actually select the next buffer in the queue for use.
This way we also eliminate the need for buffer_vinfo, since the
pad->info is always in sync with the format of the selected buffer.

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

7 years agoaggregator: Always handle sync'ed events on output thread
Olivier Crête [Sat, 14 May 2016 13:52:37 +0000 (15:52 +0200)]
aggregator: Always handle sync'ed events on output thread

Having all synchronized events always be handled on the output
thread should make synchronization easier.

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

7 years agoaggregator: Delay clipping to output thread
Olivier Crête [Wed, 6 Jul 2016 20:39:17 +0000 (16:39 -0400)]
aggregator: Delay clipping to output thread

This is required because the synchronized events like caps or segments
may only be processed on the output thread.

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

7 years agoaggregator: Make pad eos as soon as all buffers are processed, dont way for events
Olivier Crête [Thu, 7 Jul 2016 20:13:57 +0000 (16:13 -0400)]
aggregator: Make pad eos as soon as all buffers are processed, dont way for events

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

7 years agoaggregator: Only count buffers when declaring queue full
Olivier Crête [Thu, 7 Jul 2016 15:47:40 +0000 (11:47 -0400)]
aggregator: Only count buffers when declaring queue full

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

7 years agotests: Test caps using query
Olivier Crête [Wed, 6 Jul 2016 21:28:11 +0000 (17:28 -0400)]
tests: Test caps using query

Sending an event can accepted event if the caps were rejected
because the event could be queued and processed later.

Also send a drain query in the caps test to make sure that the
event has been processed.

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

7 years agoaggregator: Simplify clip function
Olivier Crête [Wed, 6 Jul 2016 20:41:44 +0000 (16:41 -0400)]
aggregator: Simplify clip function

The return value was ignored anyway

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

7 years agoaggregator: Only declare first buffer on actual buffer
Olivier Crête [Sun, 15 May 2016 13:04:58 +0000 (16:04 +0300)]
aggregator: Only declare first buffer on actual buffer

The function needs to be unlocked if any data is received, but only
end the first buffer processing on an actual buffer, synchronized events
don't matter on the first buffer processing.

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

7 years agoaggregator: Set initial position on first buffer
Olivier Crête [Wed, 10 May 2017 00:20:07 +0000 (20:20 -0400)]
aggregator: Set initial position on first buffer

Set the initial position on the first buffer, otherwise the queue
will grow without limits before the output thread is started.

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

7 years agoaggregator: Reset the pad's first buffer flag with the rest
Olivier Crête [Wed, 10 May 2017 00:06:29 +0000 (20:06 -0400)]
aggregator: Reset the pad's first buffer flag with the rest

There is not reason to have separate code to reset this one.

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

7 years agoaggregator: Reset pad on init
Olivier Crête [Wed, 10 May 2017 00:05:55 +0000 (20:05 -0400)]
aggregator: Reset pad on init

Factor out the pad reset code from the flushing and use it on init as well

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

7 years agoaggregator: Fix indentation
Olivier Crête [Wed, 10 May 2017 00:13:58 +0000 (20:13 -0400)]
aggregator: Fix indentation

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

7 years agoglcontext: keep a ref to the active thread
fvanzile [Thu, 23 Feb 2017 23:42:08 +0000 (15:42 -0800)]
glcontext: keep a ref to the active thread

With the macOS/iOS implementations, the active thread can change
multiple times over the life of a pipeline which would expose a race in
the thread tracking.

Fix by taking a ref on the active thread while the context is active.

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

7 years agomeson: add options to set package name and origin
Tim-Philipp Müller [Sat, 20 May 2017 14:04:45 +0000 (15:04 +0100)]
meson: add options to set package name and origin

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

7 years agoexamples: fix macOS 9.12 deprecation warnings
Josep Torra [Sat, 20 May 2017 10:34:27 +0000 (12:34 +0200)]
examples: fix macOS 9.12 deprecation warnings

Add #defines to allow older versions of macOS to use the new constant names.

7 years agococoa: fix a recently introduced typo
Josep Torra [Sat, 20 May 2017 10:19:08 +0000 (12:19 +0200)]
cocoa: fix a recently introduced typo

Fixes gstgldisplay_cocoa.m:175:26: error: use of undeclared identifier 'singletone'.

7 years agococoa: fix macOS 10.12 deprecation warnings
Josep Torra [Sat, 20 May 2017 10:16:50 +0000 (12:16 +0200)]
cocoa: fix macOS 10.12 deprecation warnings

Add #defines to allow older versions of macOS to use the new constant names.

7 years agodashdemux: Use correct (sub) fragment start when clipping chunk size
Sebastian Dröge [Mon, 17 Apr 2017 11:43:49 +0000 (14:43 +0300)]
dashdemux: Use correct (sub) fragment start when clipping chunk size

If we didn't download anything yet, we shouldn't use fragment.start but
the start position of the current sidx entry.

7 years agodashdemux: Make sure to pass the next buffer after a seek with DISCONT flag
Sebastian Dröge [Mon, 17 Apr 2017 11:25:10 +0000 (14:25 +0300)]
dashdemux: Make sure to pass the next buffer after a seek with DISCONT flag

When we manually seek for skipping ahead in keyunit-only trickmode, we
have to enforce that ourselves as adaptivedemux does not know about the
seeks.

7 years agodashdemux: Ensure that we never ever download over the current SIDX entry
Sebastian Dröge [Sat, 15 Apr 2017 08:55:34 +0000 (11:55 +0300)]
dashdemux: Ensure that we never ever download over the current SIDX entry

Even if downloading more than needed to try to get the moof and first
keyframe both together.

7 years agodashdemux: Take SIDX entry timestamp/duration into account for keyunit-only mode
Sebastian Dröge [Thu, 13 Apr 2017 19:49:29 +0000 (22:49 +0300)]
dashdemux: Take SIDX entry timestamp/duration into account for keyunit-only mode

And not the whole segment's timestamp/duration

7 years agodashdemux: Reset parsing state correctly in various places
Sebastian Dröge [Thu, 13 Apr 2017 14:12:26 +0000 (17:12 +0300)]
dashdemux: Reset parsing state correctly in various places

7 years agodashdemux: Reset previous target_time when seeking
Sebastian Dröge [Thu, 13 Apr 2017 11:51:07 +0000 (14:51 +0300)]
dashdemux: Reset previous target_time when seeking

7 years agodashdemux: Smooth out skip distances in keyframe-only trick modes
Sebastian Dröge [Mon, 3 Apr 2017 13:47:58 +0000 (16:47 +0300)]
dashdemux: Smooth out skip distances in keyframe-only trick modes

This ensures smoother playback. It looks weird if we first do a big
jump, then play a couple of consecutive frames, just to again skip ahead
quite a bit because we ran late again.

7 years agodashdemux: Take configure max bitrate/framerate into account for keyframe skipping
Sebastian Dröge [Mon, 3 Apr 2017 12:51:43 +0000 (15:51 +0300)]
dashdemux: Take configure max bitrate/framerate into account for keyframe skipping

And by default only produce up to 10 fps.

7 years agodashdemux: Try harder to not run into a loop over the same fragment over and over
Sebastian Dröge [Mon, 3 Apr 2017 12:48:13 +0000 (15:48 +0300)]
dashdemux: Try harder to not run into a loop over the same fragment over and over

While still making sure to not jump ahead one fragment further than
needed.

7 years agodashdemux: Add some debug output to the target time selection
Sebastian Dröge [Wed, 15 Mar 2017 15:47:53 +0000 (17:47 +0200)]
dashdemux: Add some debug output to the target time selection

7 years agodashdemux: Use the current clock running time in addition to the QoS earliest time
Sebastian Dröge [Tue, 28 Mar 2017 11:12:12 +0000 (14:12 +0300)]
dashdemux: Use the current clock running time in addition to the QoS earliest time

7 years agodashdemux: Download keyframes from the current position if we're far enough ahead
Sebastian Dröge [Mon, 27 Mar 2017 14:52:36 +0000 (17:52 +0300)]
dashdemux: Download keyframes from the current position if we're far enough ahead

Far enough here means more than 500ms or 4 times the average keyframe
download time. There is no need to jump ahead by one average keyframe
download time in this case.

This makes playback smooth if the network is fast enough.

7 years agodashdemux: Fix sync sample selection based on target time in reverse playback mode
Sebastian Dröge [Wed, 22 Mar 2017 10:05:20 +0000 (12:05 +0200)]
dashdemux: Fix sync sample selection based on target time in reverse playback mode