Florin Apostol [Tue, 16 Feb 2016 14:26:42 +0000 (14:26 +0000)]
adaptivedemux: tests: improved checks for expected data
Check the size of received data for each buffer received by AppSink
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 11:37:44 +0000 (11:37 +0000)]
dashdemux: tests: added content protection test
Test content protection
Configure 3 content protection sources:
- a uuid scheme/value pair
- a non uuid scheme/value pair (dash recognises only uuid schemes)
- a complex uuid scheme, with trailing spaces and capital letters in scheme uri
Only the uuid scheme should be recognised. We expect to receive 2 content protection events
https://bugzilla.gnome.org/show_bug.cgi?id=758064
Thiago Santos [Fri, 22 Apr 2016 20:04:57 +0000 (17:04 -0300)]
dash: strip lead/trailing whitespace from descriptortype attributes
The spec says it is xs:anyURI and leading and trailing whitespace
are to be ignored
https://bugzilla.gnome.org/show_bug.cgi?id=758064
Florin Apostol [Tue, 16 Feb 2016 14:26:05 +0000 (14:26 +0000)]
dashdemux: tests: added test for media download error for in stream fragment
Tested download error for a fragment that is not the last media fragment
in the stream.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 14:25:45 +0000 (14:25 +0000)]
dashdemux: tests: added test for download errors during header download
Test header download error.
Let the adaptive demux download a few bytes, then instruct the
GstTestHTTPSrc element to generate an error while the fragment header
is still being downloaded.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 14:25:32 +0000 (14:25 +0000)]
dashdemux: tests: refactor testFragmentDownloadError
Renamed testFragmentDownloadError to testMediaDownloadErrorLastFragment.
Added gst_adaptive_demux_test_unexpected_eos function.
Remove unneeded testFragmentDownloadErrorCheckSizeOfDataReceived.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 14:25:04 +0000 (14:25 +0000)]
dashdemux: tests: tested latency query
Updated query test to also check if dash responds correctly to a latency
query.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 14:24:49 +0000 (14:24 +0000)]
dashdemux: tests: moved testQuery after testFragmentDownloadError
Moved testQuery after testFragmentDownloadError so that testDownloadError
and testFragmentDownloadError are grouped together.
The commit just moved the testQueryCheckDataReceived and
GST_START_TEST (testQuery) functions but git gets confused in matching the
lines and reports a lot of changes in the patch.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
Florin Apostol [Tue, 16 Feb 2016 14:24:26 +0000 (14:24 +0000)]
adaptivedemux: tests: create a GstDashDemuxTestCase class
Create a GstDashDemuxTestCase class that extends from GstAdaptiveDemuxTestCase.
This new class will contain all the DASH specific fields.
https://bugzilla.gnome.org/show_bug.cgi?id=762144
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
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
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
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
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
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
Sebastian Dröge [Thu, 21 Apr 2016 11:58:45 +0000 (14:58 +0300)]
win32: Add new API to .def file
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
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
Reynaldo H. Verdejo Pinochet [Wed, 20 Apr 2016 22:34:55 +0000 (15:34 -0700)]
dvbsrc: add test for invalid DVB-T2 bandwidth
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.
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
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
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
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
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
Sebastian Dröge [Tue, 19 Apr 2016 06:30:39 +0000 (09:30 +0300)]
glimagesink: Fix indentation
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
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.
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
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
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
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
Jan Schmidt [Sat, 16 Apr 2016 12:33:48 +0000 (22:33 +1000)]
mpegtsmux: Remove an unnecessary check for NULL before g_free
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 20:22:51 +0000 (13:22 -0700)]
Drop usage of 'overlayed' to mean 'overlaid'
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 20:10:41 +0000 (13:10 -0700)]
dvbsrc: show invalid delsys/mod combination if found
Reynaldo H. Verdejo Pinochet [Fri, 15 Apr 2016 18:29:48 +0000 (11:29 -0700)]
dvbsrc: add modulation check for ATSC
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.
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
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
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
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
Julien Isorce [Thu, 14 Apr 2016 09:02:32 +0000 (10:02 +0100)]
Automatic update of common submodule
From 6f2d209 to ac2f647
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
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
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
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
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
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.
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.
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.
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
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.
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.
Matthew Waters [Mon, 11 Apr 2016 16:43:45 +0000 (16:43 +0000)]
glbasemixer: chain up to the parent implementation
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.
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.
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.
Tim-Philipp Müller [Mon, 11 Apr 2016 19:04:00 +0000 (20:04 +0100)]
openh264: fix indentation
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
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
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
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
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
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
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
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
Matthew Waters [Sun, 10 Apr 2016 07:46:15 +0000 (17:46 +1000)]
vulkan: add a wayland winsys implementation
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.
Matthew Waters [Sat, 9 Apr 2016 07:52:28 +0000 (17:52 +1000)]
vkupload: copy necessary buffer metadata
timestamps, flags, etc
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.
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.
Tim-Philipp Müller [Sun, 10 Apr 2016 21:18:38 +0000 (22:18 +0100)]
win32: update .def file for new gl api
Matthew Waters [Fri, 8 Apr 2016 08:34:45 +0000 (18:34 +1000)]
vkswapper: add necessary wait stages to the submission info
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.
Matthew Waters [Fri, 8 Apr 2016 08:09:53 +0000 (18:09 +1000)]
vulkan: silence a validation warning filling out the image barrier
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.
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
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
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
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.
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
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.
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
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
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
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
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
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.
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.
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.
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.
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.
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.
Nicolas Dufresne [Thu, 17 Mar 2016 19:24:52 +0000 (15:24 -0400)]
rfbsrc: Add 3.7/3.8 security type negotiation
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.
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.
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.
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.
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.
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