platform/upstream/gstreamer.git
8 years agodashdemux: tests: added support to pass various parameters to http src callbacks
Florin Apostol [Tue, 16 Feb 2016 14:24:09 +0000 (14:24 +0000)]
dashdemux: tests: added support to pass various parameters to http src callbacks

Added support to pass various parameters to http src callbacks using GstStructure.

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

8 years agochecksumsink: add "hash" property and allow more checksum types
Scott D Phillips [Tue, 1 Mar 2016 22:54:01 +0000 (14:54 -0800)]
checksumsink: add "hash" property and allow more checksum types

Now any GChecksumType can be used by GstChecksumSink, adding
support for MD5, SHA-256 and SHA-512 in addition to SHA-1.

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

8 years agocheck: Fix LDADD/CFLAGS for player unit test
Edward Hervey [Fri, 22 Apr 2016 06:20:14 +0000 (08:20 +0200)]
check: Fix LDADD/CFLAGS for player unit test

It now requires libgstvideo

8 years agoadaptivedemux: tests: use a GstTestClock as the system clock
Florin Apostol [Tue, 16 Feb 2016 14:44:39 +0000 (14:44 +0000)]
adaptivedemux: tests: use a GstTestClock as the system clock

To allow the adaptivedemux live stream tests to run in non-realtime, use a
GstTestClock as the system clock. This allows the unit tests to complete
more quickly than if they had to complete in real time.

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

8 years agoadaptivedemux: use realtime_clock for waiting for a condition
Florin Apostol [Tue, 16 Feb 2016 14:44:27 +0000 (14:44 +0000)]
adaptivedemux: use realtime_clock for waiting for a condition

There are several places in adaptivedemux where it waits for
time to pass, for example to wait until it should next download
a fragment. The problem with this approach is that it means that
unit tests are forced to execute in realtime.

This commit replaces the use of g_cond_wait_until() with single
shot GstClockID that signals the condition variable. Under normal
usage, this behaves exactly as before. A unit test can replace the
system clock with a GstTestClock, allowing the test to control the
timing in adaptivedemux.

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

8 years agoadaptivedemux: use GstSystemClock to all real-time calculations
Florin Apostol [Tue, 16 Feb 2016 14:44:10 +0000 (14:44 +0000)]
adaptivedemux: use GstSystemClock to all real-time calculations

A realtime clock is used in many places, such as deciding which
fragment to select at start up and deciding how long to sleep
before a fragment becomes available. For example dashdemux needs
sample the client's estimate of UTC when selecting where to start
in a live DASH stream.

The problem with dashdemux calculating the client's idea of UTC is
that it makes it difficult to create unit tests, because the passage
of time is a factor in the test.

This commit changes dashdemux and adaptivedemux to use the
GstSystemClock, so that a unit test can replace the system clock when
it needs to be able to control the clock.

This commit makes no change to the behaviour under normal usage, as
GstSystemClock is based upon the system time.

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

8 years agowin32: Add new API to .def file
Sebastian Dröge [Thu, 21 Apr 2016 11:58:45 +0000 (14:58 +0300)]
win32: Add new API to .def file

8 years agoplayer: Add support for multiview settings
Barun Kumar Singh [Tue, 19 Apr 2016 05:29:46 +0000 (10:59 +0530)]
player: Add support for multiview settings

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

8 years agoapplemedia: vtenc: fix build break on iOS
Hyunjun Ko [Thu, 21 Apr 2016 01:06:40 +0000 (10:06 +0900)]
applemedia: vtenc: fix build break on iOS

Fix 'conflicting types' error
https://bugzilla.gnome.org/show_bug.cgi?id=765292

8 years agodvbsrc: add test for invalid DVB-T2 bandwidth
Reynaldo H. Verdejo Pinochet [Wed, 20 Apr 2016 22:34:55 +0000 (15:34 -0700)]
dvbsrc: add test for invalid DVB-T2 bandwidth

8 years agodvbsrc: warn on wrong DVB-T2 stream ID value
Reynaldo H. Verdejo Pinochet [Wed, 20 Apr 2016 21:47:22 +0000 (14:47 -0700)]
dvbsrc: warn on wrong DVB-T2 stream ID value

Stream ID, used for DVB-T2/S2 and ISDB-S can
not exceed 255 for the former. Change makes this
explicit.

8 years agoapplemedia: vtenc: Fix a warning by weak-link symbol
Hyunjun Ko [Wed, 20 Apr 2016 12:07:28 +0000 (21:07 +0900)]
applemedia: vtenc: Fix a warning by weak-link symbol

Fix this warning
address of function 'VTCompressionSessionPrepareToEncodeFrames' will always evaluate to 'true' [-Wpointer-bool-conversion]

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

8 years agogl: caopengllayersink: fix a minor warning
Hyunjun Ko [Wed, 20 Apr 2016 07:19:55 +0000 (16:19 +0900)]
gl: caopengllayersink: fix a minor warning

Fix "unused variable" warning

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

8 years agogl/cocoa: Fix incompatible type warning
Hyunjun Ko [Wed, 20 Apr 2016 07:00:36 +0000 (16:00 +0900)]
gl/cocoa: Fix incompatible type warning

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

8 years agod3dvideosink: Don't include deprecated and unavailable d3dx9tex.h
Nirbheek Chauhan [Tue, 19 Apr 2016 09:27:22 +0000 (14:57 +0530)]
d3dvideosink: Don't include deprecated and unavailable d3dx9tex.h

It's not needed, not on native Windows nor with mingw, and
we don't use anything from it anyway

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

8 years agokmssink: add sync support for secondary pipes
Philipp Zabel [Thu, 14 Apr 2016 10:46:58 +0000 (12:46 +0200)]
kmssink: add sync support for secondary pipes

The vblank event request must specify the crtc for which to request
the event. This fixes kmssink synchronisation for crtcs other than
the first.

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

8 years agoglimagesink: Fix indentation
Sebastian Dröge [Tue, 19 Apr 2016 06:30:39 +0000 (09:30 +0300)]
glimagesink: Fix indentation

8 years agoglimagesink: need to clean window_id when state change form READY to NULL
Haihua Hu [Tue, 19 Apr 2016 02:51:14 +0000 (10:51 +0800)]
glimagesink: need to clean window_id when state change form READY to NULL

When application change pipeline state NULL->READY and then READY->NULL,
glimagesink will not clear glsink->window_id. After that, when application
change state NULL->READY, the new_window_id is equal to window_id, glimagesink
will not set window handle. It will use the internal window but not the window
create by application.

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

8 years agovideoaggregator: plug caps leak
Thiago Santos [Mon, 18 Apr 2016 16:46:55 +0000 (13:46 -0300)]
videoaggregator: plug caps leak

It was losing ref of the original 'ret' caps that would be returned
or returning it with 2 references to it.

8 years agovideoaggregator: properly handle interlace-mode restrictions
Thiago Santos [Mon, 28 Mar 2016 18:44:27 +0000 (15:44 -0300)]
videoaggregator: properly handle interlace-mode restrictions

videoaggregator can't handle interlace-mode changes so it must
always restrict itself to the first interlacing mode it receives.

Tests included

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

8 years agodtsl: add some documentation
Raffaele Rossi [Fri, 22 Jan 2016 16:49:57 +0000 (16:49 +0000)]
dtsl: add some documentation

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

8 years agogl/caopengllayersink: Actually unset caps_change flag after resize
Heinrich Fink [Sun, 17 Apr 2016 14:45:41 +0000 (15:45 +0100)]
gl/caopengllayersink: Actually unset caps_change flag after resize

Otherwise, the sink would execute "on_resize" for each frame.

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

8 years agogl/caopengllayer: Apply layer.contentsScale to viewport dims
Heinrich Fink [Sun, 17 Apr 2016 14:43:20 +0000 (15:43 +0100)]
gl/caopengllayer: Apply layer.contentsScale to viewport dims

Fixes blurry content on HiDPI screens

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

8 years agompegtsmux: Remove an unnecessary check for NULL before g_free
Jan Schmidt [Sat, 16 Apr 2016 12:33:48 +0000 (22:33 +1000)]
mpegtsmux: Remove an unnecessary check for NULL before g_free

8 years agoDrop usage of 'overlayed' to mean 'overlaid'
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 20:22:51 +0000 (13:22 -0700)]
Drop usage of 'overlayed' to mean 'overlaid'

8 years agodvbsrc: show invalid delsys/mod combination if found
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 20:10:41 +0000 (13:10 -0700)]
dvbsrc: show invalid delsys/mod combination if found

8 years agodvbsrc: add modulation check for ATSC
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 18:29:48 +0000 (11:29 -0700)]
dvbsrc: add modulation check for ATSC

8 years agodvbsrc: do not autodetect delsys twice
Reynaldo H. Verdejo Pinochet [Tue, 12 Apr 2016 06:45:22 +0000 (23:45 -0700)]
dvbsrc: do not autodetect delsys twice

The process is dealt with the first time the adapter is
opened, there is no need to do this again.

8 years agosrtpdec: also check for "roc" in caps
Aleix Conchillo Flaqué [Fri, 15 Apr 2016 05:32:05 +0000 (22:32 -0700)]
srtpdec: also check for "roc" in caps

Currently, gst_srtp_dec_sink_setcaps is happy if the "roc" field is not
provided in the caps. If it is not provided the stream will be properly
inserted in the hash table with a default "roc". Then, when the first
buffer arrives validate_buffer will find an existing stream in the hash
table and will not signal request-key, not allowing the user to provide
a "roc".

This patch expects "roc" in gst_srtp_dec_sink_setcaps, if not found a
request-key will be signaled and the user will be able to provide all
the srtp fields, including "roc".

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

8 years agocodecparsers: mpegvideo: Parse more slice header fields
Sreerenj Balachandran [Mon, 28 Jul 2014 09:14:02 +0000 (12:14 +0300)]
codecparsers: mpegvideo: Parse more slice header fields

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

8 years agocodecparsers: mpegvideo: Add vbv_delay field to PictureHeader
Sreerenj Balachandran [Mon, 28 Jul 2014 08:17:05 +0000 (11:17 +0300)]
codecparsers: mpegvideo: Add vbv_delay field to PictureHeader

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

8 years agocodecparsers: mpegvideo: Add more fields to the GstMpegVideoSequenceHdr
Sreerenj Balachandran [Mon, 28 Jul 2014 08:14:22 +0000 (11:14 +0300)]
codecparsers: mpegvideo: Add more fields to the GstMpegVideoSequenceHdr

Added the fields load_non_intra_quantiser_matrix and
load_chroma_intra_quantiser_matrix to the sequence header structure.

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

8 years agoAutomatic update of common submodule
Julien Isorce [Thu, 14 Apr 2016 09:02:32 +0000 (10:02 +0100)]
Automatic update of common submodule

From 6f2d209 to ac2f647

8 years agompegtsmux: free pad_data->language before g_strdup in order to avoid memory leak
Damian Ziobro [Wed, 13 Apr 2016 17:12:25 +0000 (18:12 +0100)]
mpegtsmux: free pad_data->language before g_strdup in order to avoid memory leak

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

8 years agoapplemedia: GstCoreVideoMeta in the plugin using only public API has no ctx member
Sebastian Dröge [Wed, 13 Apr 2016 10:10:12 +0000 (13:10 +0300)]
applemedia: GstCoreVideoMeta in the plugin using only public API has no ctx member

8 years agoapplemedia: GstCoreMediaMeta in the plugin using only public API has no ctx member
Sebastian Dröge [Wed, 13 Apr 2016 10:09:05 +0000 (13:09 +0300)]
applemedia: GstCoreMediaMeta in the plugin using only public API has no ctx member

8 years agometa: Initialize all remaining metas in their init function
Sebastian Dröge [Wed, 13 Apr 2016 07:25:32 +0000 (10:25 +0300)]
meta: Initialize all remaining metas in their init function

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

8 years agometa: Initialize all GstMeta fields
Sebastian Dröge [Wed, 13 Apr 2016 07:17:24 +0000 (10:17 +0300)]
meta: Initialize all GstMeta fields

During allocation they are not initialized to all zeroes.

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

8 years agodvbsrc: avoid redundant delsys querying
Reynaldo H. Verdejo Pinochet [Tue, 12 Apr 2016 05:08:03 +0000 (22:08 -0700)]
dvbsrc: avoid redundant delsys querying

There is no need to query the frontend for the list
of supported delivery systems if we are selecting
one from the list of autodetected ones.

8 years agodvb/parsechannels: add information to file not found error
Reynaldo H. Verdejo Pinochet [Mon, 11 Apr 2016 01:58:33 +0000 (18:58 -0700)]
dvb/parsechannels: add information to file not found error

Adds useful failure info (like filename) comming from
g_file_get_contents() as done for every other error in
this block.

8 years agogl/cocoa/eagl: don't leak GThread's when dispatching messages
Matthew Waters [Tue, 12 Apr 2016 14:43:18 +0000 (00:43 +1000)]
gl/cocoa/eagl: don't leak GThread's when dispatching messages

gst_gl_context_get_thread() returns a refed pointer, we need to unref it.

8 years agogltestsrc: don't dereference null pointer
Luis de Bethencourt [Tue, 12 Apr 2016 10:14:22 +0000 (11:14 +0100)]
gltestsrc: don't dereference null pointer

funcs can be NULL, it is one of the two conditions of the OR statement
above, so confirm it isn't before dereferencing with funcs->free.

CID 1358388

8 years agompegtsbase: Fix when applying new PMT with same program number
Jan Schmidt [Mon, 11 Apr 2016 18:16:55 +0000 (04:16 +1000)]
mpegtsbase: Fix when applying new PMT with same program number

When the sub-class is delaying deactivation of the old program,
but it has the same program number as the new program, don't
overwrite the old program in the hash table and then steal
the new program back out of it. Instead, add the new program to
the hash table after handling removal of the old one.

8 years agoglupload: keep the parent buffer around when converting EGLImage to 2D textures
Matthew Waters [Wed, 6 Apr 2016 04:15:40 +0000 (04:15 +0000)]
glupload: keep the parent buffer around when converting EGLImage to 2D textures

e.g. receiving and releasing a buffer from OMX too early will potentially
cause textures to be overwritten while/before they are displayed.

8 years agoglbasemixer: chain up to the parent implementation
Matthew Waters [Mon, 11 Apr 2016 16:43:45 +0000 (16:43 +0000)]
glbasemixer: chain up to the parent implementation

8 years agovulkan: prettify the various versions in the debug output
Matthew Waters [Mon, 11 Apr 2016 08:06:25 +0000 (18:06 +1000)]
vulkan: prettify the various versions in the debug output

output human readable numbers.

8 years agoopenh264dec: minor clean-ups
Tim-Philipp Müller [Mon, 11 Apr 2016 19:23:45 +0000 (20:23 +0100)]
openh264dec: minor clean-ups

Remove unused property getters, setters; outdated comment.

8 years agoopenh264: remove unnecessary instance private structures
Tim-Philipp Müller [Mon, 11 Apr 2016 19:11:53 +0000 (20:11 +0100)]
openh264: remove unnecessary instance private structures

Element instance structures are not public API, so no need
for the extra indirection to hide the data.

8 years agoopenh264: fix indentation
Tim-Philipp Müller [Mon, 11 Apr 2016 19:04:00 +0000 (20:04 +0100)]
openh264: fix indentation

8 years agokmssink: enable UYVY, YUY2, and YVYU (interleaved YUV 4:2:2) formats
Philipp Zabel [Fri, 12 Feb 2016 13:21:27 +0000 (14:21 +0100)]
kmssink: enable UYVY, YUY2, and YVYU (interleaved YUV 4:2:2) formats

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

8 years agokmssink: enable NV16 (chroma-interleaved YUV 4:2:2) format
Philipp Zabel [Fri, 12 Feb 2016 13:17:32 +0000 (14:17 +0100)]
kmssink: enable NV16 (chroma-interleaved YUV 4:2:2) format

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

8 years agokmssink: enable Y42B (planar YUV 4:2:2) format
Philipp Zabel [Fri, 12 Feb 2016 13:17:13 +0000 (14:17 +0100)]
kmssink: enable Y42B (planar YUV 4:2:2) format

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

8 years agokmssink: keep last rendered buffer in memory
Víctor Manuel Jáquez Leal [Fri, 4 Mar 2016 15:53:58 +0000 (16:53 +0100)]
kmssink: keep last rendered buffer in memory

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

8 years agokmssink: wait for page flip or vblank
Víctor Manuel Jáquez Leal [Sat, 20 Feb 2016 22:13:54 +0000 (23:13 +0100)]
kmssink: wait for page flip or vblank

This patch requests for drmModePageFlip() for the used CRTC, if the kernel
module suppports async page flip. If it does not, the element requests for a
vblank event. A GstPoll waits for the event to happen.

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

8 years agokmssink: add dmabuf support
Víctor Manuel Jáquez Leal [Wed, 10 Feb 2016 19:43:47 +0000 (20:43 +0100)]
kmssink: add dmabuf support

This patch will enable the import of dmabufs into a KMS buffer using
the PRIME kernel interface.

If the driver does not support prime import, the method is skipped.

It has been tested with a Freescale I.MX6 board.

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

8 years agokmssink: calculate display ratio
Víctor Manuel Jáquez Leal [Sun, 31 Jan 2016 12:12:34 +0000 (13:12 +0100)]
kmssink: calculate display ratio

Get the aspect ratio given the information provided by libdrm, and with it
calculate the display ratio.

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

8 years agokmssink: add plugin and sink element
Víctor Manuel Jáquez Leal [Wed, 20 Jan 2016 11:00:51 +0000 (12:00 +0100)]
kmssink: add plugin and sink element

This is simple video sink that use libdrm/libkms API to render frames.

The element uses planes to render through drmModeSetPlane().

It has been tested in an Exynos4412 board and in a Freescale I.MX6 board.

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

8 years agovulkan: add a wayland winsys implementation
Matthew Waters [Sun, 10 Apr 2016 07:46:15 +0000 (17:46 +1000)]
vulkan: add a wayland winsys implementation

8 years agovulkan/xcb: getProcAddress winsys functions
Matthew Waters [Sun, 10 Apr 2016 07:43:39 +0000 (17:43 +1000)]
vulkan/xcb: getProcAddress winsys functions

There's no guarantee that they will always be exposed by the vulkan loader.

8 years agovkupload: copy necessary buffer metadata
Matthew Waters [Sat, 9 Apr 2016 07:52:28 +0000 (17:52 +1000)]
vkupload: copy necessary buffer metadata

timestamps, flags, etc

8 years agolibgstgl: cocoa, eagl: use libdispatch to schedule GL calls
Alessandro Decina [Sun, 10 Apr 2016 22:34:00 +0000 (08:34 +1000)]
libgstgl: cocoa, eagl: use libdispatch to schedule GL calls

Use libdispatch instead of GMainLoop to dispatch GL calls. libdispatch is more
optimized and cuts a lot of poll()/pthread_* overhead.

8 years agoglwindow: reduce the number of GMutexes and GConds in send_message()
Alessandro Decina [Sun, 10 Apr 2016 22:02:45 +0000 (08:02 +1000)]
glwindow: reduce the number of GMutexes and GConds in send_message()

Don't create many short lived locks/conds in gst_gl_window_send_message. This is
a micro optimization to save a bunch of pthread_* calls which are expensive on
OSX/iOS and possibly other platforms.

8 years agowin32: update .def file for new gl api
Tim-Philipp Müller [Sun, 10 Apr 2016 21:18:38 +0000 (22:18 +0100)]
win32: update .def file for new gl api

8 years agovkswapper: add necessary wait stages to the submission info
Matthew Waters [Fri, 8 Apr 2016 08:34:45 +0000 (18:34 +1000)]
vkswapper: add necessary wait stages to the submission info

8 years agovkswapper: add srgb formats to our list of formats
Matthew Waters [Fri, 8 Apr 2016 08:32:41 +0000 (18:32 +1000)]
vkswapper: add srgb formats to our list of formats

intel returns them for their surface formats.

8 years agovulkan: silence a validation warning filling out the image barrier
Matthew Waters [Fri, 8 Apr 2016 08:09:53 +0000 (18:09 +1000)]
vulkan: silence a validation warning filling out the image barrier

8 years agovulkan: use the correct validation layer name
Matthew Waters [Fri, 8 Apr 2016 08:09:06 +0000 (18:09 +1000)]
vulkan: use the correct validation layer name

The threading validation layer has changed names.

8 years agodecklink: Initialize capture_time to NONE so it can be used if no video frame is...
Sebastian Dröge [Fri, 8 Apr 2016 11:07:55 +0000 (14:07 +0300)]
decklink: Initialize capture_time to NONE so it can be used if no video frame is provided but audio is

CID 1358390

8 years agovulkan: only warn on not found layers
Matthew Waters [Fri, 8 Apr 2016 07:56:50 +0000 (17:56 +1000)]
vulkan: only warn on not found layers

don't error out completely

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

8 years agovulkan: don't g_error when failing to find validation layers
Matthew Waters [Fri, 8 Apr 2016 07:41:07 +0000 (17:41 +1000)]
vulkan: don't g_error when failing to find validation layers

Aborting the application is never a good thing to do for recoverable errors.

Just warn and error out instead.

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

8 years agonvenc: add some rate control modes/properties
Matthew Waters [Fri, 8 Apr 2016 04:51:44 +0000 (14:51 +1000)]
nvenc: add some rate control modes/properties

Supported modes are constant quantizer, cbr, vbr and vbr with a minimum quantizer.

8 years agonvenc: move codec config initialization from the implementation to the base class
Matthew Waters [Thu, 7 Apr 2016 13:24:47 +0000 (23:24 +1000)]
nvenc: move codec config initialization from the implementation to the base class

Supports a better separation of configuration parameters

8 years agonvenc: add preset selection
Matthew Waters [Thu, 7 Apr 2016 12:46:08 +0000 (22:46 +1000)]
nvenc: add preset selection

Some presets are not always supported on all devices and will cause an error if
used.  Specifically, the LOSSLESS presets are known to not work everywhere.

8 years agochromaprint: emit notify::fingerprint signal when fingerprint is ready
Marcin Kolny [Wed, 16 Jul 2014 00:44:42 +0000 (02:44 +0200)]
chromaprint: emit notify::fingerprint signal when fingerprint is ready

In addition to adding the fingerprint to the tags.

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

8 years agovideoaggregator: repect the result of find_best_format in the default update_caps
Matthew Waters [Mon, 4 Apr 2016 10:55:51 +0000 (20:55 +1000)]
videoaggregator: repect the result of find_best_format in the default update_caps

We weren't using the result of find_best_format at all.

Also, move the find_best_format usage to the default update_caps() to make
sure that it is also overridable.

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

8 years agorfbsrc: Fix fallback to GstVideoBufferPool
Nicolas Dufresne [Wed, 6 Apr 2016 01:40:58 +0000 (21:40 -0400)]
rfbsrc: Fix fallback to GstVideoBufferPool

The replacement pool need to be added to the query, otherwise the
baseclass won't see it. We also need to properly remove the rejected
pools.

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

8 years agorfbsrc: Implement decide_allocation virtual
Nicolas Dufresne [Wed, 6 Apr 2016 01:07:32 +0000 (21:07 -0400)]
rfbsrc: Implement decide_allocation virtual

This way we can use the base class for buffer allocation, hence use
fill() instead of create() virtual. This also adds a strict check on the
select pool buffer size as we don't support strides and padding.

This is based on initial patch proposed by Sebastien Dröge, from which I
also fixed a buffer pool leak.

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

8 years agorfbsrc: Fix caps negotiation
Nicolas Dufresne [Tue, 5 Apr 2016 19:31:49 +0000 (15:31 -0400)]
rfbsrc: Fix caps negotiation

As we currently only use the server reported "natural" format, caps
negotiation should simply be limited to telling the base class which
format to use. Fix the negotiation by moving the associated code
into negotiate() virtual function. Also, use gst_base_src_set_caps()
rather then setting it on the pad directly. Also protect against this
method being called multiple time (we can't renegotiate for now).

This change also moves some network code that was being run during the
application state change call, to be run on the streaming thread.

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

8 years agorfbsrc: Implement unlock() method
Nicolas Dufresne [Sat, 26 Mar 2016 17:36:34 +0000 (13:36 -0400)]
rfbsrc: Implement unlock() method

This prevent stalls when we try to stop the source while waiting
for the server to send more updates.

8 years agorfbsrc: Check for connection being closed
Nicolas Dufresne [Thu, 24 Mar 2016 22:27:54 +0000 (18:27 -0400)]
rfbsrc: Check for connection being closed

Although it's not very well documented, g_input_stream_read_all() will
set the number of bytes read to 0 if the connection is closed rather
then returning an error.

8 years agorfbsrc: Check for read/write error
Nicolas Dufresne [Thu, 24 Mar 2016 22:26:46 +0000 (18:26 -0400)]
rfbsrc: Check for read/write error

Check for read/write error. This prevent undefined behaviour that rely
on unitialized buffer.

8 years agorfbsrc: Add a internal method to disconnect
Nicolas Dufresne [Thu, 24 Mar 2016 22:14:17 +0000 (18:14 -0400)]
rfbsrc: Add a internal method to disconnect

This also removes the disconnected boolean hack.

8 years agorfbsrc: Don't ignore errors
Nicolas Dufresne [Thu, 24 Mar 2016 22:14:37 +0000 (18:14 -0400)]
rfbsrc: Don't ignore errors

This prevents recursion on error. This used to happen as we
don't change the state when something fails. We end up running
and failing in the same state forever.

8 years agorfbsrc: Serialize write operations
Nicolas Dufresne [Thu, 24 Mar 2016 20:46:49 +0000 (16:46 -0400)]
rfbsrc: Serialize write operations

Currently we send key events from seperate threads. IOStream does not
allow concurrent write operations, so protect this operation using a
mutex.

8 years agorfbsrc: Add 3.7/3.8 security type negotiation
Nicolas Dufresne [Thu, 17 Mar 2016 19:24:52 +0000 (15:24 -0400)]
rfbsrc: Add 3.7/3.8 security type negotiation

8 years agorfbsrc: Port to GSocketClient
Nicolas Dufresne [Wed, 16 Mar 2016 22:48:49 +0000 (18:48 -0400)]
rfbsrc: Port to GSocketClient

Using GSocketClient we can simplify a lot the read/write operation.
This also provide an GSocketConnection (a GIOStream) which can then
be used with the GTlsClientConnection for secure connections. Note
that we use _write_all() to ensure all bytes have been read. This is
to follow the fact the none of the _send() calls check the return
value.

8 years agorfbsrc: Remove useless library wrapping
Nicolas Dufresne [Wed, 16 Mar 2016 20:49:29 +0000 (16:49 -0400)]
rfbsrc: Remove useless library wrapping

We use a sinlge .c file, simplify everything by removing that
static library.

8 years agorfbsrc: Cleanup dead code
Nicolas Dufresne [Wed, 16 Mar 2016 20:49:09 +0000 (16:49 -0400)]
rfbsrc: Cleanup dead code

Remove all the unused stuff, the include header, definition and C code
that don't contribute anything to this element.

8 years agorfbsrc: Properly fallback to 3.3
Nicolas Dufresne [Mon, 14 Mar 2016 19:08:13 +0000 (15:08 -0400)]
rfbsrc: Properly fallback to 3.3

If the major version is not 3, then the minor version provided
should be ignored, as it is meaningless for our fallback.

8 years agorfbsrc: Cleanly handle security negotiation failure
Nicolas Dufresne [Mon, 14 Mar 2016 19:05:45 +0000 (15:05 -0400)]
rfbsrc: Cleanly handle security negotiation failure

When the security cannot be negotiated, the server returns
security type of 0 (failure). In that case, the next step is
to read the error reason string.

8 years agompdparser: clamp segment durations to each other and period end
Vincent Penquerc'h [Fri, 1 Apr 2016 13:36:15 +0000 (14:36 +0100)]
mpdparser: clamp segment durations to each other and period end

5.3.2.1 in the spec.

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

8 years agodashdemux: unit testing reproducing segment duration overflow
Florin Apostol [Thu, 10 Sep 2015 12:22:58 +0000 (13:22 +0100)]
dashdemux: unit testing reproducing segment duration overflow

unit test reproducing https://bugzilla.gnome.org/show_bug.cgi?id=751792

With minor changes by Vincent Penquerc'h.

8 years agodecklinkaudiosrc: Don't accept packets without timestamps after a discont
Sebastian Dröge [Tue, 5 Apr 2016 11:49:51 +0000 (14:49 +0300)]
decklinkaudiosrc: Don't accept packets without timestamps after a discont

We have no idea which timestamps they are supposed to have so the only thing
we can do at this point is to drop them. Packets without timestamps happen if
audio was captured but no corresponding video, which shouldn't happen under
normal circumstances.

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

8 years agodecklinkaudiosrc: Don't crash when receiving video frames but no audio
Sebastian Dröge [Mon, 4 Apr 2016 19:21:30 +0000 (22:21 +0300)]
decklinkaudiosrc: Don't crash when receiving video frames but no audio

And mark these events as disconts to reset time tracking in the audio source.

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

8 years agodecklinkvideosrc: don't crash if we get NULL video frames in the callback
Tim-Philipp Müller [Sat, 8 Aug 2015 14:17:54 +0000 (15:17 +0100)]
decklinkvideosrc: don't crash if we get NULL video frames in the callback

For some reason we seem to sometimes get NULL video_frames in the
::VideoInputFrameArrived() callback, observed on Intensity Pro cards.

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

8 years agoglvideomixer: add support for the affine transformation meta
Matthew Waters [Wed, 23 Mar 2016 03:16:11 +0000 (03:16 +0000)]
glvideomixer: add support for the affine transformation meta

8 years agoglimagesink: support the affine transformation meta for any texture target
Matthew Waters [Wed, 23 Mar 2016 03:14:40 +0000 (03:14 +0000)]
glimagesink: support the affine transformation meta for any texture target

8 years agoglmixer: set the current texture to 0 before mapping
Matthew Waters [Tue, 5 Apr 2016 06:22:49 +0000 (16:22 +1000)]
glmixer: set the current texture to 0 before mapping

If we fail mapping, we don't want to use undefined video data in the subclass.

8 years agocurlsink: catch an unknown error
Patricia Muscalu [Tue, 8 Sep 2015 12:37:57 +0000 (14:37 +0200)]
curlsink: catch an unknown error

In this case the socket callback has not been called
by libcurl and the curlsink has not been notified about any
connection problems by libcurl.
This indicates that it's a bug in libcurl so catch it as
an unknown error.

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

8 years agoglmixerbin: proxy the start-time-* properties from aggregator
Matthew Waters [Mon, 4 Apr 2016 03:43:30 +0000 (13:43 +1000)]
glmixerbin: proxy the start-time-* properties from aggregator