platform/upstream/gstreamer.git
8 years agompegtsdescriptor: Add API for creating extended descriptors and fix writing them
Sebastian Dröge [Sun, 25 Oct 2015 16:09:24 +0000 (18:09 +0200)]
mpegtsdescriptor: Add API for creating extended descriptors and fix writing them

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

8 years agoopencv: cast paramspec flags to fix the build for c++
Stefan Sauer [Tue, 3 Nov 2015 05:16:15 +0000 (21:16 -0800)]
opencv: cast paramspec flags to fix the build for c++

All the other elements in this plugin do this already.

8 years agodvbsrc: use GST_STIME_ARGS for GstClockTimeDiff
Luis de Bethencourt [Tue, 3 Nov 2015 15:05:20 +0000 (15:05 +0000)]
dvbsrc: use GST_STIME_ARGS for GstClockTimeDiff

No need to use G_GINT64_FORMAT for potentially negative values of
GstClockTimeDiff. Since 1.6 these can be handled with GST_STIME_ARGS.
Plus it creates more readable values in the logs.

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

8 years agoamcvideodec: use GST_STIME_ARGS for GstClockTimeDiff
Luis de Bethencourt [Tue, 3 Nov 2015 15:00:01 +0000 (15:00 +0000)]
amcvideodec: use GST_STIME_ARGS for GstClockTimeDiff

No need to manually handle negative value of deadline, GST_STIME_ARGS does
exactly this.

8 years agowaylandsink: Add exception code for setting wl_surface
Hyunil Park [Tue, 3 Nov 2015 10:42:40 +0000 (10:42 +0000)]
waylandsink: Add exception code for setting wl_surface

Waylandsink needs exception code in gst_wayland_sink_set_window_handle().
After making sink->window, User can call
gst_wayland_sink_set_window_handle(). It is the user's fault, but
Waylandsink needs to handle the exception, if not then sink->window is
changed and rendering fails.

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

8 years agowaylandsink: Add exception code for setting wl_display
Hyunil Park [Thu, 9 Apr 2015 04:17:01 +0000 (13:17 +0900)]
waylandsink: Add exception code for setting wl_display

Waylandsink needs exception code in gst_wayland_sink_set_context(). After
calling gst_wayland_sink_set_context(), below code is set.
GST_ELEMENT_CLASS (parent_class)->set_context (element, context); but, If
user can call onemore. It is user's fault. but waylandsink need to
exception.

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

8 years agoaggregator: Hold object lock while manipulating the segment
Olivier Crête [Tue, 3 Nov 2015 01:10:35 +0000 (20:10 -0500)]
aggregator: Hold object lock while manipulating the segment

Make sure the object lock is held when aggregator->segment is
modified.

8 years agoaudioaggregator: Improve log messages
Olivier Crête [Tue, 3 Nov 2015 00:40:28 +0000 (19:40 -0500)]
audioaggregator: Improve log messages

Make the level of log messages saner and improve some.

8 years agoaggregator: Remove dead code
Olivier Crête [Tue, 3 Nov 2015 00:05:01 +0000 (19:05 -0500)]
aggregator: Remove dead code

This code will never be called as max>=min in all cases. If the upstream
latency query returned min>max, the function already returned and all
values that are added to those have max>= min.

8 years agompegtsmux: use GST_STIME_ARGS for GstClockTimeDiff
Luis de Bethencourt [Mon, 2 Nov 2015 17:02:47 +0000 (17:02 +0000)]
mpegtsmux: use GST_STIME_ARGS for GstClockTimeDiff

No need to manually handle negative values of best->dts in
GST_DEBUG_OBJECT. Use GST_STIME_ARGS for this.

8 years agovideoaggregator: use GST_STIME_ARGS for GstClockTimeDiff
Luis de Bethencourt [Mon, 2 Nov 2015 16:58:57 +0000 (16:58 +0000)]
videoaggregator: use GST_STIME_ARGS for GstClockTimeDiff

No need to manually handle negative values of diff, GST_STIME_ARGS does
exactly this.

8 years agodashdemux: remove unreachable code
Florin Apostol [Mon, 2 Nov 2015 11:17:29 +0000 (11:17 +0000)]
dashdemux: remove unreachable code

The stream->cur_seg_template is set to the lowest available segment
template (representation or adaptation or period, in this order).
Because the template elements are inherited, the lowest template will
have all the elements the parents had, so there is no need to check the
parent for an element that is not found in the child (eg initialisation
or index).

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

8 years agotests: add a test for MPD file duration parsing
Vincent Penquerc'h [Mon, 2 Nov 2015 10:48:11 +0000 (10:48 +0000)]
tests: add a test for MPD file duration parsing

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

8 years agompdparser: add some checks to duration parsing
Vincent Penquerc'h [Mon, 2 Nov 2015 10:25:38 +0000 (10:25 +0000)]
mpdparser: add some checks to duration parsing

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

8 years agodashdemux: added duration format validation
Florin Apostol [Tue, 29 Sep 2015 08:32:02 +0000 (09:32 +0100)]
dashdemux: added duration format validation

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

8 years agodashdemux: fix memory leak
Luis de Bethencourt [Mon, 2 Nov 2015 11:21:14 +0000 (11:21 +0000)]
dashdemux: fix memory leak

Free new_mpd, allocated with g_slice_new(), before going out of scope in
goto error.

CID 1338050

8 years agoRevert "vtenc: free input buffer ASAP"
Alessandro Decina [Mon, 2 Nov 2015 09:14:11 +0000 (20:14 +1100)]
Revert "vtenc: free input buffer ASAP"

This reverts commit 6101fc57b8afac4f4e4aa742892f0d9c99d38a8c.

GstVideoEncoder assumes that the input buffer is available until _finish_frame.

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

8 years agoopusdec: Assume 48kHz if no sample rate is given in the header
Sebastian Dröge [Sun, 1 Nov 2015 21:34:32 +0000 (23:34 +0200)]
opusdec: Assume 48kHz if no sample rate is given in the header

8 years agoopusenc: Place 48kHz first in the caps
Sebastian Dröge [Fri, 30 Oct 2015 18:59:41 +0000 (20:59 +0200)]
opusenc: Place 48kHz first in the caps

For all the other sample rates the encoder will have to resample internally.

8 years agogstglutils: fix shader compilation on Mountain Lion
Alessandro Decina [Mon, 2 Nov 2015 01:10:44 +0000 (12:10 +1100)]
gstglutils: fix shader compilation on Mountain Lion

Make gst_gl_context_gen_shader/_compile_shader assume GST_GLSL_PROFILE_ES |
GST_GLSL_PROFILE_COMPATIBILITY as the profile. Without this, the shader compiler
doesn't inject the #version tag resulting in a compilation error on Mountain
Lion.

This is a workaround for old code using gst_gl_context_gen_shader. New code
should use the gst_glsl_stage_* API directly which allows the caller to
explicitly specify version/profile.

8 years agoksvideosrc: don't try to align current timestamp on previous timestamp
Philippe Renon [Sat, 31 Oct 2015 17:47:39 +0000 (18:47 +0100)]
ksvideosrc: don't try to align current timestamp on previous timestamp

this causes frames to be dropped.

Based on a patch by Sebastian Dröge

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

8 years agoglbufferpool: explicitly initialize a possibly uninitialized variable
Matthew Waters [Sat, 31 Oct 2015 12:28:20 +0000 (23:28 +1100)]
glbufferpool: explicitly initialize a possibly uninitialized variable

The ret variable may be uninitialized and so its contents were undefined and
the results were erratic (failing with glvideomixer, succeeding in other cases)

P.S. No idea why gcc/clang et al never picked up on this like they normally do
(probably due to some optimisation pass figuring out it's only set once...)

8 years agompdparser: make durations unsigned where appropriate
Vincent Penquerc'h [Thu, 29 Oct 2015 11:38:35 +0000 (11:38 +0000)]
mpdparser: make durations unsigned where appropriate

The standard does not seem to make any particular explicit not
implicit reference to the signedness of durations, and the code
does not rely on such, nor on the negativity of the -1 value
that's used as a placeholder when a duration property is not
present in the XML.

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

8 years agodashdemux: inherit bitstreamSwitching from Period to AdaptationSet
Florin Apostol [Fri, 30 Oct 2015 15:55:19 +0000 (15:55 +0000)]
dashdemux: inherit bitstreamSwitching from Period to AdaptationSet

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

8 years agodashdemux: marked PROP_BANDWIDTH_USAGE property as deprecated
Florin Apostol [Thu, 20 Aug 2015 17:14:36 +0000 (18:14 +0100)]
dashdemux: marked PROP_BANDWIDTH_USAGE property as deprecated

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

8 years agodashdemux: unit testing reproducing inherited segment duration overflow
Florin Apostol [Fri, 30 Oct 2015 15:02:35 +0000 (15:02 +0000)]
dashdemux: unit testing reproducing inherited segment duration overflow

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

8 years agodashdemux: inherited segment URLs are ignored if they are defined again in a lower...
Florin Apostol [Fri, 30 Oct 2015 14:31:21 +0000 (14:31 +0000)]
dashdemux: inherited segment URLs are ignored if they are defined again in a lower SegmentList

According to the standard:
"SegmentBase, SegmentTemplate and SegmentList shall inherit
attributes and elements from the same element on a higher level.
If the same attribute or element is present on both levels,
the one on the lower level shall take precedence over the one
on the higher level."

gst_mpdparser_parse_segment_list_node will now discard any inherited
segment URLs if the parsed element defines some too.

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

8 years agoadaptivedemux: tests: added test for fragment download error
Florin Apostol [Tue, 20 Oct 2015 16:21:00 +0000 (17:21 +0100)]
adaptivedemux: tests: added test for fragment download error

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

8 years agoadaptivedemux: tests: made adaptive demux test thread safe
Florin Apostol [Tue, 20 Oct 2015 14:46:36 +0000 (15:46 +0100)]
adaptivedemux: tests: made adaptive demux test thread safe

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

8 years agoadaptivedemux: tests: added query test
Florin Apostol [Fri, 16 Oct 2015 15:20:34 +0000 (16:20 +0100)]
adaptivedemux: tests: added query test

Testing if adaptive demux responds to queries.

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

8 years agodashdemux: tests: added test for multiple BaseURL entries
Florin Apostol [Wed, 28 Oct 2015 11:21:14 +0000 (11:21 +0000)]
dashdemux: tests: added test for multiple BaseURL entries

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

8 years agodashdemux: tests: added unit test for 6d1eda9391d3143b5fc633edfd94b89dbba209ab
Florin Apostol [Wed, 16 Sep 2015 09:40:33 +0000 (10:40 +0100)]
dashdemux: tests: added unit test for 6d1eda9391d3143b5fc633edfd94b89dbba209ab

Commit 6d1eda9391d3143b5fc633edfd94b89dbba209ab fixed the period start
time scaling. This patch updates the unit tests to cover that scenario.

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

8 years agoadaptivedemux: tests: added download error test
Florin Apostol [Fri, 16 Oct 2015 16:10:11 +0000 (17:10 +0100)]
adaptivedemux: tests: added download error test

Tests adaptive demux behaviour when the uri is wrong and download does
not happen.

8 years agoadaptivedemux: stop task on multiple download errors
Florin Apostol [Fri, 30 Oct 2015 12:49:20 +0000 (12:49 +0000)]
adaptivedemux: stop task on multiple download errors

On multiple download errors, we stop the download task and change the src
element state to NULL.

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

8 years agoadaptivedemux: fix a missing lock in write to stream->last_ret
Vincent Penquerc'h [Fri, 30 Oct 2015 12:24:22 +0000 (12:24 +0000)]
adaptivedemux: fix a missing lock in write to stream->last_ret

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

8 years agoadaptivedemux: return error if src element cannot start
Florin Apostol [Wed, 7 Oct 2015 22:20:51 +0000 (23:20 +0100)]
adaptivedemux: return error if src element cannot start

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

8 years agoadaptivedemux: fixed waiting for fragment updates
Florin Apostol [Thu, 8 Oct 2015 10:45:25 +0000 (11:45 +0100)]
adaptivedemux: fixed waiting for fragment updates

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

8 years agoadaptivedemux: fix header redownload in case of errors
Florin Apostol [Thu, 8 Oct 2015 11:35:44 +0000 (12:35 +0100)]
adaptivedemux: fix header redownload in case of errors

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

8 years agoadaptivedemux: release manifest lock before sending flush stop event
Florin Apostol [Fri, 30 Oct 2015 00:04:12 +0000 (00:04 +0000)]
adaptivedemux: release manifest lock before sending flush stop event

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

8 years agoadaptivedemux: reset download_finished before starting the src element
Florin Apostol [Thu, 29 Oct 2015 23:41:46 +0000 (23:41 +0000)]
adaptivedemux: reset download_finished before starting the src element

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

8 years agoadaptivedemux: release manifest lock before changing element state
Florin Apostol [Thu, 29 Oct 2015 23:23:05 +0000 (23:23 +0000)]
adaptivedemux: release manifest lock before changing element state

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

8 years agovtdec: fix compilation error
Matthew Waters [Fri, 30 Oct 2015 05:38:17 +0000 (16:38 +1100)]
vtdec: fix compilation error

Undefined symbols for architecture x86_64:
  "__gl_target_to_gst", referenced from:
      __do_get_gl_buffer in libgstapplemedia_la-corevideotexturecache.o

8 years agogl/tests: update for glmemory api changes
Matthew Waters [Fri, 30 Oct 2015 04:00:23 +0000 (15:00 +1100)]
gl/tests: update for glmemory api changes

8 years agoglcolorconvert: remove unused ret variable
Matthew Waters [Fri, 30 Oct 2015 03:43:23 +0000 (14:43 +1100)]
glcolorconvert: remove unused ret variable

8 years agoglslstage: remove typedefs from the header
Matthew Waters [Fri, 30 Oct 2015 03:40:35 +0000 (14:40 +1100)]
glslstage: remove typedefs from the header

They are already defined in the forward decleration header and defining them
more than once will give an error with OSX's clang about typedef redefinition
being a C11 feature.

8 years agoglcolorconvert: follow the correct texture target names
Matthew Waters [Fri, 30 Oct 2015 03:38:05 +0000 (14:38 +1100)]
glcolorconvert: follow the correct texture target names

8 years agoglupload: explicitly configure the texture target on the gl buffer pool
Matthew Waters [Thu, 29 Oct 2015 14:42:42 +0000 (01:42 +1100)]
glupload: explicitly configure the texture target on the gl buffer pool

If we don't, then the pool could end up allocating 2D textures when the
caps explictly state they should be rectangle textures.

8 years agoglbufferpool: add bufferpool options for the various texture targets
Matthew Waters [Thu, 29 Oct 2015 14:27:36 +0000 (01:27 +1100)]
glbufferpool: add bufferpool options for the various texture targets

This was chosen over relying solely on the caps as glupload needs to propose an
allocation and set the texture target based on the output caps.  Setting the
caps in the config is currently pointless as they are overwritten in a lot of
element's decide_allocation functions.

This provides a mechanism for the buffer pool to be configured for a certain
texture target when none has been configured.

8 years agoglcolorconvert: add support for converting texture targets
Matthew Waters [Thu, 29 Oct 2015 02:04:31 +0000 (13:04 +1100)]
glcolorconvert: add support for converting texture targets

Solved with a simple shader templating mechanism and string replacements
of the necessary sampler types/texture accesses and texture coordinate
mangling for rectangular and external-oes textures.

8 years agoglmemory: add support for rectangle textures
Matthew Waters [Wed, 28 Oct 2015 13:44:26 +0000 (00:44 +1100)]
glmemory: add support for rectangle textures

Add the various tokens/strings for the differnet texture types (2D, rect, oes)

Changes the GLmemory api to include the GstGLTextureTarget in all relevant
functions.

Update the relevant caps/templates for 2D only textures.

8 years agoglcolorconvert: order the caps template so that RGBA is first
Matthew Waters [Thu, 29 Oct 2015 14:45:13 +0000 (01:45 +1100)]
glcolorconvert: order the caps template so that RGBA is first

glcolorconvert ! glcolorconvert would sometimes negotiated RGB
(the first list entry) otherwise.

8 years agoglbufferpool: move typedef's into the forward decleration file
Matthew Waters [Thu, 29 Oct 2015 14:16:02 +0000 (01:16 +1100)]
glbufferpool: move typedef's into the forward decleration file

Otherwise, for example, clang will warn about typedef redefinitions
being a C11 feature.

8 years agotests: fixed fake soup http src plugin
Florin Apostol [Fri, 16 Oct 2015 17:36:20 +0000 (18:36 +0100)]
tests: fixed fake soup http src plugin

The soup http src changed the way it interprets the seek segment stop value.
Previously it was inclusive, now it is not (see commit
21c6da6764c0cd015e9f3c5eecba36e297187deb,
bug https://bugzilla.gnome.org/show_bug.cgi?id=748316)

Updated fake soup http src to also consider segment stop not inclusive.

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

8 years agoadaptivedemux: tests: added unit test for adaptivedemux
Florin Apostol [Fri, 9 Oct 2015 13:10:52 +0000 (14:10 +0100)]
adaptivedemux: tests: added unit test for adaptivedemux

Created a unit test for dashdemux. It relies on a fake SOUP HTTP src plugin
that will feed data to dashdemux. The test controls the data to be
generated and checks the correct data was received for each expected
stream.

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

8 years agotests: added fake http src plugin
Alex Ashley [Fri, 9 Oct 2015 20:23:20 +0000 (21:23 +0100)]
tests: added fake http src plugin

Added a fake http src plugin capable of generating data buffers for a
request of a http url. Can be used in tests to simulate http accesses.

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

8 years agodashdemux: provide a default suggestedPresentationDelay
Alex Ashley [Tue, 7 Jul 2015 14:38:08 +0000 (15:38 +0100)]
dashdemux: provide a default suggestedPresentationDelay

If MPD@suggestedPresentationDelay is not present in the manifest,
dashdemux selects the fragment closest to the most recently generated
fragment. This causes a playback issue because this choice does not allow
the DASH client to build up any buffer of downloaded fragments without
pausing playback. This is because by definition new fragments appear on
the server in real-time (e.g. if segment duration is 4 seconds, a new
fragment will appear on the server every 4 seconds). If the starting
playback position was n*segmentDuration seconds behind "now", the DASH
client could download up to 'n' fragments faster than realtime before it
reached the point where it needed to wait for fragments to appear on the
server.

The MPD@suggestedPresentationDelay attribute allows a content publisher
to provide a suggested starting position that is behind the current
"live" position.

If the MPD@suggestedPresentationDelay attribute is not present, provide
a suitable default value as a property of the dashdemux element. To
allow the default presentation delay to be specified either using
fragments or seconds, the property is a string that contains a number
and a unit (e.g. "10 seconds", "4 fragments", "2500ms").

8 years agoivfparse: Add vp9 support
Sreerenj Balachandran [Thu, 29 Oct 2015 13:02:38 +0000 (15:02 +0200)]
ivfparse: Add vp9 support

Differentiate the vp8/vp9 bitstream based on fourcc.

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

8 years agodashdemux: improve detection of stream language
Florin Apostol [Wed, 9 Sep 2015 13:09:43 +0000 (14:09 +0100)]
dashdemux: improve detection of stream language

Improved the detection of stream's language if the AdaptationSet
contains more than 1 ContentComponent

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

8 years agodash_mpd: restrict segment template format strings to %0[0-9]*d as per spec
Vincent Penquerc'h [Thu, 29 Oct 2015 12:04:31 +0000 (12:04 +0000)]
dash_mpd: restrict segment template format strings to %0[0-9]*d as per spec

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

8 years agodashdemux: segment template parsing: added support for %d
Florin Apostol [Wed, 9 Sep 2015 11:36:10 +0000 (12:36 +0100)]
dashdemux: segment template parsing: added support for %d

Added support for %d in template identifier.
Added testcases for %d, %3d, %0-4d identifier formats.

8 years agodashdemux: corrected parsing of segment templates
Florin Apostol [Thu, 29 Oct 2015 11:54:34 +0000 (11:54 +0000)]
dashdemux: corrected parsing of segment templates

Corrected the parsing of a segment template string.
Added unit tests to test the segment template parsing.
All reported problems are now correctly handled.

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

8 years agodahsdemux: task is signaled to stop without stop condition being set
Florin Apostol [Thu, 29 Oct 2015 11:17:48 +0000 (11:17 +0000)]
dahsdemux: task is signaled to stop without stop condition being set

The gst_adaptive_demux_stream_free function is trying to stop the stream's
download task. For this, it signals the task. But it fails to also set the
stream->download_finished = TRUE, so the task will go back to sleep and
only exit when the download is finished.

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

8 years agodashdemux: fixed crash when segment timeline list is greater than segment url list
Florin Apostol [Wed, 28 Oct 2015 17:02:51 +0000 (17:02 +0000)]
dashdemux: fixed crash when segment timeline list is greater than segment url list

When building the media segment list using a SegmentList node, the
gst_mpd_client_setup_representation function will iterate through the
list of S nodes and will expect to find a matching SegmentUrl node. If
one does not exist, the code made an illegal memory access.

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

8 years agodashdemux: unit test for missing profiles
Florin Apostol [Fri, 11 Sep 2015 09:59:15 +0000 (10:59 +0100)]
dashdemux: unit test for missing profiles

8 years agompdparser: do not dereference profiles is absent
Vincent Penquerc'h [Fri, 11 Sep 2015 09:57:26 +0000 (10:57 +0100)]
mpdparser: do not dereference profiles is absent

These are used to apply restrictions on what the MPD file may
use, so no profile means no restrictions.

Besides, nothing actually uses the profiles (yet) anyway.

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

8 years agoadaptivedemux: fixed multithread support
Florin Apostol [Wed, 16 Sep 2015 15:46:29 +0000 (16:46 +0100)]
adaptivedemux: fixed multithread support

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

8 years agodashdemux: parser rejects negative values for mediaPresentationDuration
Florin Apostol [Wed, 28 Oct 2015 16:31:39 +0000 (16:31 +0000)]
dashdemux: parser rejects negative values for mediaPresentationDuration

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

8 years agodashdemux: corrected parsing of negative values into unsigned data
Florin Apostol [Wed, 28 Oct 2015 16:24:01 +0000 (16:24 +0000)]
dashdemux: corrected parsing of negative values into unsigned data

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

8 years agocodecparser: h264: initialize parsing structures
Víctor Manuel Jáquez Leal [Thu, 17 Sep 2015 18:18:52 +0000 (20:18 +0200)]
codecparser: h264: initialize parsing structures

Initialize to 0 these parse structures before filling them: GstH264SEIMessage,
GstH264NalUnit, GstH264PPS, GstH264SPS and GstH264SliceHdr.

When calling the functions which fill those structures, they may fail, leaving
unitialized those structures. This situation may lead to future problems, such
as a segmentation fault when freeing, for example.

This patch initializes to zero these structures, before filling them.

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

8 years agocodecparser: h265: initialize parsing structures
Víctor Manuel Jáquez Leal [Fri, 18 Sep 2015 08:09:26 +0000 (10:09 +0200)]
codecparser: h265: initialize parsing structures

Initialize to 0 these parse structures before filling them: GstH265SEIMessage,
GstH265NalUnit, GstH265VPS, GstH265PPS, GstH265SPS and GstH265SliceHdr.

When calling the functions which fill those structures, they may fail, leaving
unitialized those structures. This situation may lead to future problems, such
as a segmentation fault when freeing, for example.

This patch initializes to zero these structures, before filling them.

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

8 years agoliveadder: Make latency property be a uint in millisecs
Olivier Crête [Mon, 26 Oct 2015 23:58:04 +0000 (19:58 -0400)]
liveadder: Make latency property be a uint in millisecs

This restores roughly the same behaviour as the old liveadder element.
Except that the latency now also includes the output-buffer-duration.

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

8 years agompdparser: forbid negative values for duration
Vincent Penquerc'h [Tue, 8 Sep 2015 13:00:54 +0000 (14:00 +0100)]
mpdparser: forbid negative values for duration

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

8 years agodashdemux: parser rejects XMLs with negative period duration
Florin Apostol [Wed, 28 Oct 2015 15:39:07 +0000 (15:39 +0000)]
dashdemux: parser rejects XMLs with negative period duration

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

8 years agompdparser: check segment lists have either duration or timeline
Vincent Penquerc'h [Wed, 28 Oct 2015 15:34:29 +0000 (15:34 +0000)]
mpdparser: check segment lists have either duration or timeline

And add error checking along the way.

Add duration where appropriate so unit tests still pass.

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

8 years agompdparser: validate representation set identifier
Vincent Penquerc'h [Tue, 29 Sep 2015 15:17:03 +0000 (16:17 +0100)]
mpdparser: validate representation set identifier

It must have no whitespace, and must comply with RFC 1738 when
used to build a URL.

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

8 years agoglslstage: initialize output params to 0 before calling gl functions
Julien Isorce [Wed, 28 Oct 2015 14:41:54 +0000 (14:41 +0000)]
glslstage: initialize output params to 0 before calling gl functions

The client side API of the Chromium's GPU Process has asserts
in debug mode that check that output params are initialized to 0.

8 years agomxfmux: Remove some dead code that could never be called
Sebastian Dröge [Tue, 27 Oct 2015 14:32:48 +0000 (16:32 +0200)]
mxfmux: Remove some dead code that could never be called

Coverity CIDs #1328818, #1328819, #1328820.

8 years agoopengl: build/provide glstereomix/split on gles only systems
Matthew Waters [Mon, 26 Oct 2015 13:36:41 +0000 (00:36 +1100)]
opengl: build/provide glstereomix/split on gles only systems

8 years agogeometrictransform: rename gemetric math functions to have their symbols namespaced
George Kiagiadakis [Mon, 26 Oct 2015 15:51:06 +0000 (16:51 +0100)]
geometrictransform: rename gemetric math functions to have their symbols namespaced

Otherwise those symbols can conflict with external libraries when
linking everything statically for mobile targets.

Use the gst_gm_ prefix, short for gst geometric math.

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

8 years agowaylandsink: don't advertise the local wl_display context
George Kiagiadakis [Mon, 26 Oct 2015 14:30:08 +0000 (15:30 +0100)]
waylandsink: don't advertise the local wl_display context

This wl_display proxy is temporary only until waylandsink goes NULL,
at which point the connection to the display is disposed. Unfortunately,
if this is advertised as a GstContext, playbin will cache it and re-feed
it to the sink when it goes PLAYING again, but the wl_display pointer
will at that point be invalid and cause a crash.

Another solution to the problem would be to also cache the GstWlDisplay
object inside the GstContext, which would automatically ref-count
the display connection, but I see no reason in doing that at the moment,
as there are no known users of this GstContext outside waylandsink.
It's probably better to avoid chasing hidden refcounts.

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

8 years agoglcolorconvert: allow outputting multiple textures for gles3 contexts
Matthew Waters [Mon, 26 Oct 2015 07:26:18 +0000 (18:26 +1100)]
glcolorconvert: allow outputting multiple textures for gles3 contexts

the USING_GLES2 includes all GLES3 contexts as well which does support
drawing to multiple buffers.  Instead make or decision solely based on
whether glDrawBuffers is available or not.

8 years agoglviewconvert: expose the element on gles2 platforms
Matthew Waters [Mon, 26 Oct 2015 06:36:21 +0000 (17:36 +1100)]
glviewconvert: expose the element on gles2 platforms

We can do everything with gles3 however gles2 restricts us not allowing
separated or frame-by-frame multiview modes due to multiple draw buffers.

8 years agotests: hlsdemux_m3u: add test for master playlist with missing variant list uri
Tim-Philipp Müller [Sun, 25 Oct 2015 00:19:33 +0000 (01:19 +0100)]
tests: hlsdemux_m3u: add test for master playlist with missing variant list uri

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

8 years agohlsdemux: don't crash or leak memory on broken master playlist
André Draszik [Tue, 20 Oct 2015 08:13:04 +0000 (09:13 +0100)]
hlsdemux: don't crash or leak memory on broken master playlist

If a (master) playlist contains a variant list entry without a
URI then during parsing of the next variant list entry we are
a) leaking the entry we're currently parsing (new_list), and
b) free'ing the pointer to the previous list entry (list) without
   updating the pointer.

Hence when then adding the URI for the latest parsed entry, incorrect
information is stored, as the information is used from 'list' which
is not valid memory anymore, also leading to crashes.

Fix this by correctly storing the new variant list entry pointer
as needed.

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

8 years agohlsdemux: change dispose function to finalize
Tim-Philipp Müller [Fri, 4 Sep 2015 10:29:08 +0000 (11:29 +0100)]
hlsdemux: change dispose function to finalize

8 years agohlsdemux: remove helper function only used once
Tim-Philipp Müller [Sun, 30 Aug 2015 20:35:02 +0000 (21:35 +0100)]
hlsdemux: remove helper function only used once

8 years agohlsdemux: remove deprecated 'fragments-cache' property
Tim-Philipp Müller [Sun, 30 Aug 2015 16:41:23 +0000 (17:41 +0100)]
hlsdemux: remove deprecated 'fragments-cache' property

It's been non-functional for two cycles now, let's
get rid of it.

8 years agohlsdemux: m3u8: move file lookup by sequence directly into code
Tim-Philipp Müller [Wed, 2 Sep 2015 15:40:17 +0000 (16:40 +0100)]
hlsdemux: m3u8: move file lookup by sequence directly into code

Nicer to read, two lines of code less, and also the callback
function should've been a GCompareFunc that returns a gint
and not a boolean (it did work correctly, was just confusing).

8 years agohlsdemux: m3u8: clean-up: remove unused argument in function call
Tim-Philipp Müller [Tue, 1 Sep 2015 11:48:38 +0000 (12:48 +0100)]
hlsdemux: m3u8: clean-up: remove unused argument in function call

8 years agohlsdemux: m3u8: clean-up: reindent header for better readability
Tim-Philipp Müller [Sun, 30 Aug 2015 16:22:19 +0000 (17:22 +0100)]
hlsdemux: m3u8: clean-up: reindent header for better readability

And remove duplicate define.

8 years agomxfmux: Remove empty set/get_property()
Sebastian Dröge [Fri, 23 Oct 2015 15:58:41 +0000 (18:58 +0300)]
mxfmux: Remove empty set/get_property()

We can add them again if we ever add properties.

8 years agomxfmux: Port to GstAggregator
Sebastian Dröge [Fri, 23 Oct 2015 15:38:33 +0000 (18:38 +0300)]
mxfmux: Port to GstAggregator

8 years agomxfmux: Set GC essence element UL version to 0x01
Sebastian Dröge [Thu, 22 Oct 2015 16:20:24 +0000 (19:20 +0300)]
mxfmux: Set GC essence element UL version to 0x01

ffmpeg otherwise rejects it and the spec is not 100% clear about that.

8 years agosrtp: Fix critical warning trying to retrieve SSRC from a non fb message
Santiago Carot-Nemesio [Tue, 20 Oct 2015 15:09:22 +0000 (17:09 +0200)]
srtp: Fix critical warning trying to retrieve SSRC from a non fb message

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

8 years agomxf: Reorder CFLAGS and LIBS
Sebastian Dröge [Thu, 22 Oct 2015 16:24:34 +0000 (19:24 +0300)]
mxf: Reorder CFLAGS and LIBS

8 years agoaggregator: Add create_new_pad() vfunc to allow subclasses to override the default...
Sebastian Dröge [Fri, 23 Oct 2015 12:42:24 +0000 (15:42 +0300)]
aggregator: Add create_new_pad() vfunc to allow subclasses to override the default behaviour

Not all aggregator subclasses will have a single pad template called sink_%u
and might do something special depending on what the application requests.

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

8 years agomxfmux: Set KAG size to 1
Sebastian Dröge [Wed, 21 Oct 2015 16:00:41 +0000 (19:00 +0300)]
mxfmux: Set KAG size to 1

We're not aligning our output in any way, and 0 is invalid.

8 years agomxfmux: Don't let the header partition's prev_partition point forward to the footer
Sebastian Dröge [Wed, 21 Oct 2015 15:58:06 +0000 (18:58 +0300)]
mxfmux: Don't let the header partition's prev_partition point forward to the footer

8 years agomxftypes: Fix generation of operational pattern UL
Sebastian Dröge [Wed, 21 Oct 2015 15:32:09 +0000 (18:32 +0300)]
mxftypes: Fix generation of operational pattern UL

8 years agomxfdemux-structure: Sync fakesink state with the bin to make the application work...
Sebastian Dröge [Wed, 21 Oct 2015 15:31:43 +0000 (18:31 +0300)]
mxfdemux-structure: Sync fakesink state with the bin to make the application work at all