platform/upstream/gst-plugins-bad.git
9 years agotsdemux: fix latency handling again
Tim-Philipp Müller [Sun, 23 Aug 2015 22:38:21 +0000 (23:38 +0100)]
tsdemux: fix latency handling again

The tsdemux latency should always be added to the minimum
latency (which is always a valid clock time value). The
"cleanup" in commit a1f709c2 made it so that it would not
be added if upstream reported 0 as minimum latency (as
e.g. udpsrc would). This broke playback of live mpeg-ts
streaming in some cases, leading to playback stutter due
to a too-small configured latency for the pipeline.

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

9 years agoglimagesink: update display size before sending event
Nicolas Dufresne [Fri, 21 Aug 2015 20:42:18 +0000 (13:42 -0700)]
glimagesink: update display size before sending event

This is minor issue, as the reconfigure event is asynchronous.
Basically, update width/height before sending the event.

9 years agogl: Let base transform relay the meta api for us
Nicolas Dufresne [Fri, 21 Aug 2015 00:27:34 +0000 (17:27 -0700)]
gl: Let base transform relay the meta api for us

During allocation query, when this element is not passthrough, it must
relay the overlay compostion meta and it's parameters. Fortunatly, base
transform can do this for us.

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

9 years agocurl: Give netinet/ip.h it own configure check
Koop Mast [Fri, 21 Aug 2015 18:29:24 +0000 (20:29 +0200)]
curl: Give netinet/ip.h it own configure check

On FreeBSD netinet/ip.h needs the sys/types.h and netinet/in.h header
before it can be tested.

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

9 years agodtsdec: remove unused value
Luis de Bethencourt [Wed, 19 Aug 2015 16:42:49 +0000 (17:42 +0100)]
dtsdec: remove unused value

length is set to a different value before being read. Remove initial value.
Silences compiler warning.

9 years agofacedetect: remove unnecessary variable.
Vanessa Chipirrás Navalón [Fri, 21 Aug 2015 03:26:25 +0000 (05:26 +0200)]
facedetect: remove unnecessary variable.

Memory is reserved for this variable and then released without making any
use of it.

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

9 years agoglcontext: add specific error message when missing GL_SHADING_LANGUAGE_VERSION
Justin Kim [Fri, 21 Aug 2015 05:07:32 +0000 (14:07 +0900)]
glcontext: add specific error message when missing GL_SHADING_LANGUAGE_VERSION

GL_SHADING_LANGUAGE_VERSION was introduced since ES 2.0, but in some
android emulator doesn't support this feature. To prevent confusion for
developer, the error message need to be more clear.

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

9 years agotests: audiomixer: remove duplicated word in comment
hoonhee.lee [Fri, 21 Aug 2015 07:44:43 +0000 (16:44 +0900)]
tests: audiomixer: remove duplicated word in comment

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

9 years agocaopengllayersink: Don't chain up to parent's query handling twice for DRAIN query
hoonhee.lee [Fri, 21 Aug 2015 07:31:41 +0000 (16:31 +0900)]
caopengllayersink: Don't chain up to parent's query handling twice for DRAIN query

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

9 years agocheck: hlsdemux: make duration unit test robust to floating point rounding
Alex Ashley [Thu, 20 Aug 2015 14:00:02 +0000 (15:00 +0100)]
check: hlsdemux: make duration unit test robust to floating point rounding

The test_playlist_with_doubles_duration() test fails on some platforms
due to rounding errors that occur when m3u8.c converts from the floating
point value in the HLS manifest to a GstClockTime.

Using assert_equals_float() fixes this because this function handles
the rounding error issues by accepting almost equal.

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

9 years agoglbasefilter: only call gl_{stop,start} if the context changed
Matthew Waters [Mon, 17 Aug 2015 16:35:58 +0000 (18:35 +0200)]
glbasefilter: only call gl_{stop,start} if the context changed

Removes the redundant GL object creation/deletion on every
decide_allocation call which is being called for every caps change.

Thus reduces the required GL state changes on reconfigure events
which are being sent by glimagesink/xvimagesink

9 years agoopencv: Fix OpenCV data path check to work with cross compilation
Carlos Rafael Giani [Thu, 20 Aug 2015 12:09:37 +0000 (14:09 +0200)]
opencv: Fix OpenCV data path check to work with cross compilation

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

9 years agovideoaggregator: Always set the pad's buffer_vinfo when storing a buffer
Ben Browitt [Thu, 20 Aug 2015 11:11:56 +0000 (14:11 +0300)]
videoaggregator: Always set the pad's buffer_vinfo when storing a buffer

Otherwise it might be unset, and then the buffer is used and
gst_video_frame_map() will crash because of invalid video-info.

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

9 years agodashdemux: Handle encoding specified in the <xml> element when dumping nodes
Sebastian Dröge [Wed, 19 Aug 2015 18:33:09 +0000 (21:33 +0300)]
dashdemux: Handle encoding specified in the <xml> element when dumping nodes

Previous patch did not handle the case where an encoding (e.g. UTF-8) is
specified in the <xml ?> element. Added an extra test for with and without
encoding.

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

9 years agoassrender: check video frame mapping succeeded before blending
Arnaud Vrac [Thu, 31 Jan 2013 13:03:40 +0000 (14:03 +0100)]
assrender: check video frame mapping succeeded before blending

If the mapping fails just skip overlay rendering and push the video
frame downstream.

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

9 years agoconfigure.ac: fix build when the uvch264 plugin is not selected
Arnaud Vrac [Wed, 19 Aug 2015 13:31:16 +0000 (15:31 +0200)]
configure.ac: fix build when the uvch264 plugin is not selected

Instead of checking for the gstreamer-video-1.0 package is installed,
just assume it is since we already check for the -base dependency.

With this replace the GST_VIDEO_* variables in makefiles and directly
link with libgstvideo.

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

9 years agodashdemux: replace xmlNodeDump with xmlNodeDumpOutput
Alex Ashley [Wed, 19 Aug 2015 10:29:43 +0000 (11:29 +0100)]
dashdemux: replace xmlNodeDump with xmlNodeDumpOutput

When running on an STB, the function
gst_mpdparser_get_xml_node_as_string causes a segmentation fault. This
code works correctly on a Linux desktop.

Looking at the libxml documentation, the xmlNodeDump is deprecated.
Replacing the use of xmlNodeDump with xmlNodeDumpOutput fixes the
segfault on the STB and removes the use of the deprecated function.

9 years agoconfigure: check for Qt version
Luis de Bethencourt [Wed, 19 Aug 2015 11:37:40 +0000 (12:37 +0100)]
configure: check for Qt version

Usage of QSGSimpleTextureNode::setOwnsTexture() was added in commit
6b8cf8419d8ea80081de8150a6b1c3cf763c4d69, this function was added in
Qt 5.4.0. Check for this version or later.

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

9 years agohlsdemux: abort playlist update when cancelled
Arnaud Vrac [Thu, 16 Jul 2015 20:57:36 +0000 (22:57 +0200)]
hlsdemux: abort playlist update when cancelled

Otherwise the download thread will get stuck, since the downloader is
disabled.

9 years agogtk/gl: Use our GL function table instead of directly calling GL functions
Sebastian Dröge [Wed, 19 Aug 2015 10:52:21 +0000 (13:52 +0300)]
gtk/gl: Use our GL function table instead of directly calling GL functions

Otherwise we would have to link the plugin to the GL libraries directly.

9 years agoRelease 1.5.90
Sebastian Dröge [Wed, 19 Aug 2015 10:46:53 +0000 (13:46 +0300)]
Release 1.5.90

9 years agoUpdate .po files
Sebastian Dröge [Wed, 19 Aug 2015 09:52:18 +0000 (12:52 +0300)]
Update .po files

9 years agopo: Update translations
Sebastian Dröge [Wed, 19 Aug 2015 08:36:13 +0000 (11:36 +0300)]
po: Update translations

9 years agoliveadder: fix assertion when copying buffer region
Guillaume Marquebielle [Tue, 18 Aug 2015 11:56:59 +0000 (13:56 +0200)]
liveadder: fix assertion when copying buffer region

In gst_live_adder_chain() function, calls to gst_buffer_copy_region() can lead
to assertion as 'offset + size <= bufsize' is not respected.
Indeed 'offset' and 'size' parameters are calculated through calling gst_live_adder_length_from_duration(),
and thus gst_util_uint64_scale_int_round().
Depending on the nearest integers, rounded values 'offset' and 'size' can then trigger the assertion.
This case mainly occurs when 'skip' value is > 0 in chain function process.

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

9 years agohanddetect: remove unnecessary variable.
Vanessa Chipirrás Navalón [Mon, 17 Aug 2015 16:06:30 +0000 (18:06 +0200)]
handdetect: remove unnecessary variable.

Memory is reserved for this variable and then released without making any
use of it.

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

9 years agohanddetect: check CvHaarClassifierCascade is release before being modified.
Vanessa Chipirrás Navalón [Mon, 17 Aug 2015 16:02:28 +0000 (18:02 +0200)]
handdetect: check CvHaarClassifierCascade is release before being modified.

Make sure a previous cascade, if it exists, is released before loading a
new XML file onto it.

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

9 years agohanddetect: code refactoring of gst_handdetect_load_profile.
Vanessa Chipirrás Navalón [Mon, 17 Aug 2015 15:47:42 +0000 (17:47 +0200)]
handdetect: code refactoring of gst_handdetect_load_profile.

Change gst_handdetect_load_profile() so it can be used generically.

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

9 years agodaalaenc: Fix build
Sebastian Dröge [Tue, 18 Aug 2015 08:54:33 +0000 (11:54 +0300)]
daalaenc: Fix build

And also only generate the supported caps once, not on every CAPS/ACCEPT_CAPS
query. It's not that cheap.

9 years agoexamples: facedetect: add silent option
Luis de Bethencourt [Mon, 17 Aug 2015 22:44:42 +0000 (23:44 +0100)]
examples: facedetect: add silent option

By default the example floods the screen with the detected face values.
Add an option to avoid this for frail terminals.

9 years agox265enc: add accept-caps handling
Thiago Santos [Mon, 17 Aug 2015 17:38:52 +0000 (14:38 -0300)]
x265enc: add accept-caps handling

Ovewrite default handling to avoid doing a caps query. Check
the received caps against the possible formats supported by
the x265 library.

9 years agodaalaenc: add accept-caps handling
Thiago Santos [Mon, 17 Aug 2015 17:32:56 +0000 (14:32 -0300)]
daalaenc: add accept-caps handling

Ovewrite default handling to avoid doing a caps query. Check
the received caps against the possible formats supported by
the daala library.

9 years agovideoencoders: use template subset check for accept-caps
Thiago Santos [Sun, 16 Aug 2015 10:06:44 +0000 (07:06 -0300)]
videoencoders: use template subset check for accept-caps

It is faster than doing a query that propagates downstream and
should be enough

Elements: openjpegenc, schroenc, webpenc, pnmenc

9 years agoopencv: support alternative path convention
Luis de Bethencourt [Mon, 17 Aug 2015 16:38:15 +0000 (17:38 +0100)]
opencv: support alternative path convention

Some distributions store OpenCV files in /usr/share/opencv and some others
(and default when building from source) install them in
/usr/share/OpenCV. Support both to find cascade files.

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

9 years agodashdemux: link against gio for g_resolver and g_inet_address_from_string
Rico Tzschichholz [Sun, 16 Aug 2015 19:18:50 +0000 (21:18 +0200)]
dashdemux: link against gio for g_resolver and g_inet_address_from_string

Add missing gio-2.0 CFLAGS/LIBS to fix linker failure

9 years agoaudioencoders: use template subset check for accept-caps
Thiago Santos [Sun, 16 Aug 2015 10:18:34 +0000 (07:18 -0300)]
audioencoders: use template subset check for accept-caps

It is faster than doing a query that propagates downstream and
should be enough

Elements: faac, gsmenc, opusenc, sbcenc, voamrwbenc, adpcmenc, sirenenc

9 years agovoaacenc: Remove custom getcaps and just use the template
Thiago Santos [Mon, 17 Aug 2015 10:55:03 +0000 (07:55 -0300)]
voaacenc: Remove custom getcaps and just use the template

We know from the beginning the caps that are acceptable, no need
for custom getcaps or manually generating caps.

9 years agovoaacenc: add version to gst-launch string on documentation
Thiago Santos [Mon, 17 Aug 2015 10:54:36 +0000 (07:54 -0300)]
voaacenc: add version to gst-launch string on documentation

gst-launch will call the 0.10 version, we want 1.0

9 years agofaac: make template pad caps more accurate and remove custom getcaps
Thiago Santos [Mon, 17 Aug 2015 10:15:00 +0000 (07:15 -0300)]
faac: make template pad caps more accurate and remove custom getcaps

Allows reusing baseclass caps query handling and simplifying negotiation
code.

9 years agompg123: still reset pending audio info on hard flush
Tim-Philipp Müller [Mon, 17 Aug 2015 10:50:28 +0000 (11:50 +0100)]
mpg123: still reset pending audio info on hard flush

Follow-up to previous commit.

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

9 years agompg123: fix handling of sample rate change during playback
Jason Litzinger [Wed, 15 Jul 2015 16:44:02 +0000 (10:44 -0600)]
mpg123: fix handling of sample rate change during playback

If the sample rate of the media changes, the resulting flush will
clear the has_next_audioinfo flag, and the caps won't be sent
downstream.

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

9 years agovideoparsers: Use gst_base_parse_merge_tags()
Olivier Crête [Tue, 17 Mar 2015 21:55:26 +0000 (17:55 -0400)]
videoparsers: Use gst_base_parse_merge_tags()

Instead of squashing all upstream tags

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

9 years agoglupload: Recalculate offset and size in raw upload
Nicolas Dufresne [Sun, 16 Aug 2015 16:13:12 +0000 (18:13 +0200)]
glupload: Recalculate offset and size in raw upload

As we only expose the mapped portion of the frame into the GL
memory object (and not the original padding) we need to
re-calculate the size and offset.

9 years agodashdemux: fix off by one seeking issue
Thiago Santos [Sun, 16 Aug 2015 11:49:35 +0000 (08:49 -0300)]
dashdemux: fix off by one seeking issue

When seeking to the last second of a mpd it would reject the seek
because the comparison was < instead of <=

This fails the important use case of seeking to the end of a file
to play it back in reverse from the end

9 years agompegtsdemux: Fix illogical comparision
Edward Hervey [Sun, 16 Aug 2015 10:55:57 +0000 (12:55 +0200)]
mpegtsdemux: Fix illogical comparision

A variable can't be two values at once. We want to stop if it's not the
actual ts *AND* not the other ts

CID #1316475

9 years agompdparser: Free UTCTiming struct if there are no values associated with it
Sebastian Dröge [Sun, 16 Aug 2015 10:52:09 +0000 (12:52 +0200)]
mpdparser: Free UTCTiming struct if there are no values associated with it

CID 1316479

9 years agocheck: Link against GModule for tests using g_module_*
Edward Hervey [Sat, 15 Aug 2015 21:36:01 +0000 (23:36 +0200)]
check: Link against GModule for tests using g_module_*

9 years agoadaptivedemux: Demote debugging level
Edward Hervey [Sat, 15 Aug 2015 17:04:27 +0000 (19:04 +0200)]
adaptivedemux: Demote debugging level

9 years agoadaptivedemux: Actually wait for playlist update when requested
Edward Hervey [Sat, 15 Aug 2015 17:01:00 +0000 (19:01 +0200)]
adaptivedemux: Actually wait for playlist update when requested

There are several cases where a HLS server could temporarily have wrong
fragments, or reconfigure the playlist. In those cases, when we get
fragment download failures, we *really* want to wait a bit (for the next
playlist update) before retrying to get fragments.

Previously this method was first checking to see if there was next fragments
(according to the previous manifest update) before waiting for the next update.
The problem was that if that if there is a temporary failure on the server,
that's uncorrelated to whether the manifest contains next fragments or not.

9 years agochecks: Ensure thread-safe libX11/GL when running tests
Edward Hervey [Fri, 14 Aug 2015 10:25:19 +0000 (12:25 +0200)]
checks: Ensure thread-safe libX11/GL when running tests

9 years agoaudiodecoders: use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 15:58:40 +0000 (12:58 -0300)]
audiodecoders: use default pad accept-caps handling

Avoids useless check of downstream caps when handling an
accept-caps query

Elements: dtsdec, faad, gsmdec, mpg123audiodec, opusdec,
          sbcdec, adpcmdec, sirendec

9 years agovideodecoders: use default pad accept-caps handling
Thiago Santos [Sat, 15 Aug 2015 15:55:49 +0000 (12:55 -0300)]
videodecoders: use default pad accept-caps handling

Avoids useless check of downstream caps when handling an
accept-caps query

Elements: daaladec, libde265dec, openjpegdec, rsvgdec, schrodec,
          webpdec, pnmdec, vmncdec, openexrdec

9 years agortph265depay: make sure we call handle_nal for each NAL
Luis de Bethencourt [Sat, 15 Aug 2015 15:22:20 +0000 (16:22 +0100)]
rtph265depay: make sure we call handle_nal for each NAL

Call handle_nal for each NAL in the STAP-A RTP packet. This makes sure
we correctly extract the SPS and PPS.

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

9 years agogloverlaycompositor: Also disable the blend when done
Nicolas Dufresne [Sat, 15 Aug 2015 13:02:33 +0000 (15:02 +0200)]
gloverlaycompositor: Also disable the blend when done

9 years agoglsink: Enable sync meta on pools we offer
Nicolas Dufresne [Sat, 15 Aug 2015 12:31:15 +0000 (14:31 +0200)]
glsink: Enable sync meta on pools we offer

As the upload is asynchronous, we need to enable the sync meta to
gain correct rendering. The buffer pool receiver don't know about
that.

9 years agogtkglsink: Add overlay composition support
Nicolas Dufresne [Sat, 15 Aug 2015 13:12:27 +0000 (15:12 +0200)]
gtkglsink: Add overlay composition support

Rendering composition overlay in GL with additional high resolution
overlay being added.

9 years agogtkglsink: Fix unsafe handling of buffer life time
Nicolas Dufresne [Sat, 15 Aug 2015 13:08:11 +0000 (15:08 +0200)]
gtkglsink: Fix unsafe handling of buffer life time

We need to keep the active buffer (the one we have retreive a
texture id from) otherwise it's racy and upstream may upload
new content before we have rendered or during later redisplay.

9 years agogtkglsink: Remove reset path
Nicolas Dufresne [Fri, 14 Aug 2015 16:07:15 +0000 (18:07 +0200)]
gtkglsink: Remove reset path

The reset path is bogus and there is no reason to get rid of these
things during resize.

9 years agoglimagesink: Move overlay rendering after video rendering
Nicolas Dufresne [Fri, 14 Aug 2015 15:36:48 +0000 (17:36 +0200)]
glimagesink: Move overlay rendering after video rendering

This is mostly cosmetic, but heoretically it reduces the amount of
required object in the context at one point. It also avoids potential
conflicts.

9 years agortph265pay: Copy metadata in the payloader, but only the relevant ones
Luis de Bethencourt [Sat, 15 Aug 2015 13:45:34 +0000 (14:45 +0100)]
rtph265pay: Copy metadata in the payloader, but only the relevant ones

The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

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

9 years agortph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()
Luis de Bethencourt [Sat, 15 Aug 2015 10:41:40 +0000 (11:41 +0100)]
rtph265pay: Use GST_WARNING_OBJECT() instead of GST_WARNING()

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

9 years agortph265pay: fix potential crash when shutting down
Luis de Bethencourt [Sat, 15 Aug 2015 10:30:36 +0000 (11:30 +0100)]
rtph265pay: fix potential crash when shutting down

A race condition in the state change function may cause buffers to be
unreffed while they are still used by the streaming thread in
gst_rtp_h265_pay_send_vps_sps_pps() resulting in a crash. Chain up to the
parent class first in the state change function to make sure streaming
has stopped and only then free those buffers.

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

9 years agoopengl: Change GLclampd to double
Sebastian Dröge [Sat, 15 Aug 2015 08:03:07 +0000 (10:03 +0200)]
opengl: Change GLclampd to double

GLclampd does not exist on GLES, only desktop GL.

9 years agoopengl: add missing ClearDepth prototype
Martin Kelly [Fri, 14 Aug 2015 17:32:14 +0000 (10:32 -0700)]
opengl: add missing ClearDepth prototype

The ClearDepth call is missing.

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

9 years agoh264parse: Clear SPS info after processing.
Jan Schmidt [Thu, 6 Aug 2015 04:33:54 +0000 (14:33 +1000)]
h264parse: Clear SPS info after processing.

The SPS struct might be filled out by a call to
gst_h264_parser_parse_subset_sps, which fills out
dynamically allocated data and requires a call
to gst_h264_sps_clear() to free it. Also make sure
to clear out any allocated SPS data when returning
an error.

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

9 years agofacedetect: Refactor the code
Vanessa Chipirrás Navalón [Tue, 11 Aug 2015 22:20:26 +0000 (00:20 +0200)]
facedetect: Refactor the code

Some lines of code are repeated several times, therefore
this lines are simplified with a inline function, that this is
proper style of C++.

9 years agopngparse: enable accept-intersect and accept-template flags on sinkpad
Thiago Santos [Fri, 14 Aug 2015 14:43:57 +0000 (11:43 -0300)]
pngparse: enable accept-intersect and accept-template flags on sinkpad

Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

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

9 years agovideoparsers: enable accept-template flag
Thiago Santos [Fri, 14 Aug 2015 14:43:18 +0000 (11:43 -0300)]
videoparsers: enable accept-template flag

Do a quick check with the pad template caps as it is enough. Users
should have figured the appropriate full caps on a previous caps query

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

9 years agortph265pay: fix buffer leak when using SPS/PPS
Luis de Bethencourt [Fri, 14 Aug 2015 14:08:08 +0000 (15:08 +0100)]
rtph265pay: fix buffer leak when using SPS/PPS

Fixes a buffer leak that would occur if the pipeline was shutdown while a
SPS/PPS header was being created.

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

9 years agortph265depay: copy metadata in the depayloader, but only the relevant ones
Luis de Bethencourt [Fri, 14 Aug 2015 10:49:51 +0000 (11:49 +0100)]
rtph265depay: copy metadata in the depayloader, but only the relevant ones

The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without
tags or with only the video tag.

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

9 years agodashdemux: add support for HTTP HEAD method of time sync
Alex Ashley [Fri, 14 Aug 2015 08:44:24 +0000 (09:44 +0100)]
dashdemux: add support for HTTP HEAD method of time sync

The urn:mpeg:dash:utc:http-head:2014 method of time synchronisation
uses an HTTP HEAD request to a specified URL and then parses the
Date: HTTP response header.

This commit adds support to dashdemux for this method of time
synchronisation by making a HEAD request and then parsing the Date:
response.

This commit adds support to gstfragment to return the HTTP headers
and to uridownloader to support HEAD requests. To avoid creating a
new API, the RANGE get function is re-used (abused?) with start=-1
and end=-1 to indicate a HEAD request.

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

9 years agodashdemux: post-review fixup of UTCTiming element
Alex Ashley [Thu, 13 Aug 2015 17:21:29 +0000 (18:21 +0100)]
dashdemux: post-review fixup of UTCTiming element

This commit addresses the following items from the code review:
    use a portable way to define NTP_TO_UNIX_EPOCH,
    fix memory leak on error, and
    add documentation to UTCTiming parse functions

Using LL is not portable, so the G_GUINT64_CONSTANT needs to be instead.

If an error occurs during DNS resolution, the GError was not being
released, causing a memory leak.

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

9 years agodashdemux: add support for UTCTiming elements for clock drift compensation
Alex Ashley [Wed, 15 Jul 2015 10:56:13 +0000 (11:56 +0100)]
dashdemux: add support for UTCTiming elements for clock drift compensation

Unless the DASH client can compensate for the difference between its
clock and the clock used by the server, the client might request
fragments that either not yet on the server or fragments that have
already been expired from the server. This is an issue because these
requests can propagate all the way back to the origin

ISO/IEC 23009-1:2014/Amd 1 [PDAM1] defines a new UTCTiming element to allow
a DASH client to track the clock used by the server generating the
DASH stream. Multiple UTCTiming elements might be present, to indicate
support for multiple methods of UTC time gathering. Each element can
contain a white space separated list of URLs that can be contacted
to discover the UTC time from the server's perspective.

This commit provides parsing of UTCTiming elements, unit tests of this
parsing and a function to poll a time server. This function
supports the following methods:
    urn:mpeg:dash:utc:ntp:2014
    urn:mpeg:dash:utc:http-xsdate:2014
    urn:mpeg:dash:utc:http-iso:2014
    urn:mpeg:dash:utc:http-ntp:2014

The manifest update task is used to poll the clock time server,
to save having to create a new thread.

When choosing the starting fragment number and when waiting for a
fragment to become available, the difference between the server's idea
of UTC and the client's idea of UTC is taken into account. For example,
if the server's time is behind the client's idea of UTC, we wait for
longer before requesting a fragment

[PDAM1]: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=66068

dashdemux: support NTP time servers in UTCTiming elements

Use the gst_ntp_clock to support the use of an NTP server.

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

9 years agocheck: Rename states unit test
Edward Hervey [Fri, 14 Aug 2015 09:13:51 +0000 (11:13 +0200)]
check: Rename states unit test

Makes it easier to differentiate from other modules states unit test

9 years agospu-pgs: fix buffer and event leak
Vineeth TM [Thu, 13 Aug 2015 01:31:20 +0000 (10:31 +0900)]
spu-pgs: fix buffer and event leak

When playing mts files with embedded subtitles, the buffer is mapped,
but not unmapped at the end resulting in a memory leak.

Also unref event in handle_dvd_event as it takes ownership of the event.

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

9 years agodvdspu: Fix event leaks
Vineeth TM [Thu, 13 Aug 2015 01:25:52 +0000 (10:25 +0900)]
dvdspu: Fix event leaks

When playing mts files with embedded subtitles, there are few event leaks.
Events are supposed to be transfer full. So if not forwarding the event,
they need to be freed.

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

9 years agoRevert "srtpdec: Add support for buffer list"
Sebastian Dröge [Thu, 13 Aug 2015 10:38:41 +0000 (12:38 +0200)]
Revert "srtpdec: Add support for buffer list"

This reverts commit ff11a1a8a0c685d2edd0e06c0071cbb94f2cb663.

It can't be assumed that all buffers in a buffer list have the same SSRC or
are RTP or RTCP only. It has to be checked for every single buffer, and one
basically has to do the processing that is done by the default chain_list
implementation.

9 years agortph265depay: checking if depay has sps/pps nals before insertion
Luis de Bethencourt [Wed, 12 Aug 2015 16:54:52 +0000 (17:54 +0100)]
rtph265depay: checking if depay has sps/pps nals before insertion

Related to: https://bugzilla.gnome.org/show_bug.cgi?id=753430

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

9 years agortph265depay: only update the srcpad caps if something else than the codec_data changed
Luis de Bethencourt [Wed, 12 Aug 2015 16:22:42 +0000 (17:22 +0100)]
rtph265depay: only update the srcpad caps if something else than the codec_data changed

h264parse and gstrtph264depay do the same, let's keep the behaviour
consistent. As we now include the codec_data inside the stream, this causes
less caps renegotiation.

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

9 years agortph265depay: PPS replaces old PPS if it has the same id
Luis de Bethencourt [Wed, 12 Aug 2015 15:43:48 +0000 (16:43 +0100)]
rtph265depay: PPS replaces old PPS if it has the same id

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

9 years agortph265depay: Insert SPS/PPS NALs into the stream
Luis de Bethencourt [Wed, 12 Aug 2015 15:11:00 +0000 (16:11 +0100)]
rtph265depay: Insert SPS/PPS NALs into the stream

rtph264depay does the same and this fixes decoding of some streams with 32
SPS (or 256 PPS). It is allowed to have SPS ID 0 to 31 (or PPS ID 0 to 255),
but the field in the codec_data for the number of SPS or PPS is only 5
(or 8) bit. As such, 32 SPS (or 256 PPS) are interpreted as 0 everywhere.

This looks like a mistake in the part of the spect about the codec_data.

9 years agortph265depay: implement process_rtp_packet() vfunc
Luis de Bethencourt [Wed, 12 Aug 2015 14:49:50 +0000 (15:49 +0100)]
rtph265depay: implement process_rtp_packet() vfunc

For more optimised RTP packet handling: means we don't need to map the
input buffer again but can just re-use the mapping the base class has
already done.

Based on: https://bugzilla.gnome.org/show_bug.cgi?id=750235

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

9 years agortph265depay: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()
Luis de Bethencourt [Wed, 12 Aug 2015 14:14:50 +0000 (15:14 +0100)]
rtph265depay: Use GST_BUFFER_PTS() instead of GST_BUFFER_TIMESTAMP()

Switching to GST_BUFFER_TIMESTAMP() to be consistent with other rtp code.

9 years agortph265depay: prevent trying to get 0 bytes from adapter
Luis de Bethencourt [Wed, 12 Aug 2015 13:59:53 +0000 (14:59 +0100)]
rtph265depay: prevent trying to get 0 bytes from adapter

This causes an assertion and would lead to getting a NULL instead
of a buffer. Without proper checking this would easily lead to a
segfault.

Related to rpth264depay: https://bugzilla.gnome.org/show_bug.cgi?id=737199

9 years agocodecparsers: h265: Fix the range of delta_chroma_log2_weight_denom
Sreerenj Balachandran [Wed, 12 Aug 2015 04:58:09 +0000 (07:58 +0300)]
codecparsers: h265: Fix the range of delta_chroma_log2_weight_denom

ChromaLog2WeightDenom = luma_log2_weight_denom + delta_chroma_log2_weight_denom

The value of ChromaLog2WeightDenom should be in the range of 0 to 7 and
the value luma_log2_weight_denom  should be also in the range of 0 to 7.
Which means , delta_chroma_log2_weight_denom can have values in the range
between -7 and 7.

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

9 years agocodecparsers: h265: Fix the parsing of ref_pic_lists_modification
Sreerenj Balachandran [Wed, 12 Aug 2015 02:11:27 +0000 (05:11 +0300)]
codecparsers: h265: Fix the parsing of ref_pic_lists_modification

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

9 years agoglimagesink: take into account non 1/1 par for navigation
Matthew Waters [Tue, 11 Aug 2015 22:20:10 +0000 (00:20 +0200)]
glimagesink: take into account non 1/1 par for navigation

The current code was ignoring the par/dar aspect when transforming
from window coordinates to stream coordinates resulting in incorrect
coordinates being sent upstream in the navigation events.

9 years agogtk: fix motion event name
Matthew Waters [Tue, 11 Aug 2015 22:18:20 +0000 (00:18 +0200)]
gtk: fix motion event name

s/motion/mouse/

Fixes hover interaction with DVD menus

9 years agogtk: correct navigation events for window scaling
Matthew Waters [Tue, 11 Aug 2015 22:14:14 +0000 (00:14 +0200)]
gtk: correct navigation events for window scaling

i.e. take into account the possiblity of scaling in the sink
or through GDK_SCALE.

Fixes DVD Menus with a scaled gtkwidget

9 years agofrei0r: Fix setting string parameters
Nicolas Dufresne [Tue, 11 Aug 2015 19:02:25 +0000 (15:02 -0400)]
frei0r: Fix setting string parameters

String parameters are expected to be passed as (f0r_param_string *),
which actually map to char**. In the filters this is evaluated as
(*(char**)param) which currently lead to crash when passing char*.

Remove the special case for string, all types, including char* as
passed as a reference.

https://phabricator.freedesktop.org/T83

9 years agogtk: implement GstNavigation interface
Matthew Waters [Tue, 11 Aug 2015 11:34:59 +0000 (13:34 +0200)]
gtk: implement GstNavigation interface

Now we can push key/mouse input into the pipeline for DVD use cases.

9 years agoopus: Copy metadata in the (de)payloader, but only the relevant ones
Sebastian Dröge [Tue, 30 Jun 2015 11:51:33 +0000 (13:51 +0200)]
opus: Copy metadata in the (de)payloader, but only the relevant ones

The payloader didn't copy anything so far, the depayloader copied every
possible meta. Let's make it consistent and just copy all metas without tags or
with only the audio tag.

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

9 years agovideoparsers: h265: Fix the frame start detection code
Sreerenj Balachandran [Tue, 11 Aug 2015 01:14:19 +0000 (04:14 +0300)]
videoparsers: h265: Fix the frame start detection code

Check slice headers in between GST_H265_NAL_SLICE_TRAIL_N
and GST_H265_NAL_SLICE_RASL_R for frame start detection.

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

9 years agovideoparsers: h265: Avoid skipping of EOS and EOB nals
Sreerenj Balachandran [Tue, 11 Aug 2015 00:47:42 +0000 (03:47 +0300)]
videoparsers: h265: Avoid skipping of EOS and EOB nals

EndOfSequence and EndOfBitstream nal units have size of 2 bytes.
Don't consider them as broken nals.

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

9 years agofacedetect: wrong form to write the delete operator
Vanessa Chipi [Mon, 10 Aug 2015 21:02:12 +0000 (23:02 +0200)]
facedetect: wrong form to write the delete operator

The delete operator is written this way: delete (cascade). This way is
misspelled, it is an operator, not a function. Delete the parentheses.

9 years agofacedetect: simplify repeated code.
vanechipi [Mon, 10 Aug 2015 17:13:11 +0000 (19:13 +0200)]
facedetect: simplify repeated code.

Store the value of r.height / 2 instead of repeating the operation line
three times.

9 years agofacedetect: Redundancy exists in code.
vanechipi [Mon, 10 Aug 2015 17:02:10 +0000 (19:02 +0200)]
facedetect: Redundancy exists in code.

Checking the vector is not empty and checking the vector size is greater
than zero are the same thing, this is a redundancy in the code. Only
checking the vector is not empty is sufficient, therefore removing the
other check.

9 years agogl: Add opengl_version.h to the list of sources
Nicolas Dufresne [Mon, 10 Aug 2015 18:48:58 +0000 (14:48 -0400)]
gl: Add opengl_version.h to the list of sources

Adding this private header to the list of sources. We don't want to make
this header public, but we need it in the list of sources otherwise it
won't be included in the tarball. This fixes make distcheck.

This regression was introduced by commit 1a6fe3db

9 years agoexamples: facedetect: only create variables when needed
Luis de Bethencourt [Mon, 10 Aug 2015 18:06:16 +0000 (19:06 +0100)]
examples: facedetect: only create variables when needed

The variables to store face values are only needed if they will be used to
control the volume. Which isn't the default to avoid potentially being very
loud accidentally. Only create variables when needed.

9 years agoexamples: facedetect: make volume control optional
Luis de Bethencourt [Mon, 10 Aug 2015 15:51:17 +0000 (16:51 +0100)]
examples: facedetect: make volume control optional

9 years agogl: use gles2 shaders everywhere
Matthew Waters [Mon, 10 Aug 2015 14:38:32 +0000 (16:38 +0200)]
gl: use gles2 shaders everywhere

This effectively limits a glfilter subclass to be > GL(ES) 2.0.
rather than a possible GL 1.4.