platform/upstream/gstreamer.git
9 years agoadaptivedemux: Actually use the byte range for the fragment url
Thiago Santos [Tue, 13 Jan 2015 13:15:21 +0000 (10:15 -0300)]
adaptivedemux: Actually use the byte range for the fragment url

Otherwise we would always download the full fragment. This would
make handling subsegments in DASH impossible.

9 years agoadaptivedemux: allow downloads of headers only
Thiago Santos [Tue, 13 Jan 2015 13:13:47 +0000 (10:13 -0300)]
adaptivedemux: allow downloads of headers only

In order to get some subsegment information, subclasses might want
to download only the headers to have enough data (the index)
to decide where to start downloading from the subsegment.

9 years agoadaptivedemux: refactor common code to function
Thiago Santos [Mon, 12 Jan 2015 21:22:14 +0000 (18:22 -0300)]
adaptivedemux: refactor common code to function

Reuse the same function when finishing downloading and signaling to
the download loop thread to get the next fragment or abort

9 years agoadaptivedemux: inform subclass when headers/index are being downloaded
Thiago Santos [Fri, 9 Jan 2015 20:19:54 +0000 (17:19 -0300)]
adaptivedemux: inform subclass when headers/index are being downloaded

This allows the subclasses to know if the chunks that are downloaded are
part of the header or of the index and will parse the parts that are
of their interest.

9 years agouridownloader: a few leak fixes
Vincent Penquerc'h [Thu, 15 Jan 2015 16:11:24 +0000 (16:11 +0000)]
uridownloader: a few leak fixes

9 years agofragment: fix caps and buffer leaks in get_property
Vincent Penquerc'h [Thu, 15 Jan 2015 13:16:07 +0000 (13:16 +0000)]
fragment: fix caps and buffer leaks in get_property

9 years agohlsdemux: remove unused fragments_cache field
Vincent Penquerc'h [Wed, 14 Jan 2015 17:43:51 +0000 (17:43 +0000)]
hlsdemux: remove unused fragments_cache field

9 years agohlsdemux: a few leak fixes
Vincent Penquerc'h [Wed, 14 Jan 2015 16:42:25 +0000 (16:42 +0000)]
hlsdemux: a few leak fixes

9 years agobs2b: implement the preset interface
Stefan Sauer [Mon, 12 Jan 2015 20:22:06 +0000 (21:22 +0100)]
bs2b: implement the preset interface

Instead of a preset property implement the preset interface in a read-only
fashion.

9 years agodocs: add new bs2b plugin and element
Stefan Sauer [Mon, 12 Jan 2015 11:11:01 +0000 (12:11 +0100)]
docs: add new bs2b plugin and element

9 years agobs2b: add new plugin (Effect/Audio, crossfeed)
Christoph Reiter [Sat, 10 Jan 2015 20:41:12 +0000 (21:41 +0100)]
bs2b: add new plugin (Effect/Audio, crossfeed)

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

9 years agointeraudiosink: Make sure that buffer time is always bigger than period time
Sebastian Dröge [Thu, 15 Jan 2015 12:13:51 +0000 (13:13 +0100)]
interaudiosink: Make sure that buffer time is always bigger than period time

9 years agodecklinkvideosink: Also consider max-lateness property value before dropping late...
Sebastian Dröge [Thu, 15 Jan 2015 11:49:20 +0000 (12:49 +0100)]
decklinkvideosink: Also consider max-lateness property value before dropping late frames

9 years agovtdec: implement the GL texture upload meta
Alessandro Decina [Thu, 15 Jan 2015 03:09:43 +0000 (14:09 +1100)]
vtdec: implement the GL texture upload meta

9 years agoavfvideosrc: implement the GL texture upload meta
Alessandro Decina [Thu, 8 Jan 2015 13:16:17 +0000 (00:16 +1100)]
avfvideosrc: implement the GL texture upload meta

9 years agoglvideomixer: don't upload if alpha <= 0
Matthew Waters [Wed, 14 Jan 2015 22:47:45 +0000 (09:47 +1100)]
glvideomixer: don't upload if alpha <= 0

Implemented using a upload_buffer vfunc within GstGLMixer allowing
NULL uploaded buffers.

9 years agoglmemory: remove spurious gst_video_info_align
Matthew Waters [Wed, 14 Jan 2015 22:45:21 +0000 (09:45 +1100)]
glmemory: remove spurious gst_video_info_align

That will be taken care of by the calling code (typically a bufferpool).
The GstVideoAlignment is purely informational to compute plane data sizes.

9 years agocompositor: Document the zorder pad property from gstvideoaggregator
Nirbheek Chauhan [Wed, 14 Jan 2015 18:18:16 +0000 (23:48 +0530)]
compositor: Document the zorder pad property from gstvideoaggregator

9 years agoaggregator: Nitpick spacing/punctuation in debug logging
Nirbheek Chauhan [Wed, 14 Jan 2015 18:17:19 +0000 (23:47 +0530)]
aggregator: Nitpick spacing/punctuation in debug logging

9 years agodecklinkvideosink: Stop scheduled playback shortly in PAUSED->PLAYING if it was runni...
Sebastian Dröge [Wed, 14 Jan 2015 15:33:53 +0000 (16:33 +0100)]
decklinkvideosink: Stop scheduled playback shortly in PAUSED->PLAYING if it was running already

This fixes handling of flushing seeks, where we will get a PAUSED->PLAYING
state transition after the previous one without actually going to PAUSED
first.

9 years agodecklinkvideosink: Don't schedule too late frames in prepare()
Sebastian Dröge [Wed, 14 Jan 2015 15:01:07 +0000 (16:01 +0100)]
decklinkvideosink: Don't schedule too late frames in prepare()

Otherwise we will overflow the internal buffer of the hardware
with useless frames and run into an error. This is necessary until
this bug in basesink is fixed:
https://bugzilla.gnome.org/show_bug.cgi?id=742916

9 years agodecklinkvideosink: Keep track of the time when we went to PLAYING for the external...
Sebastian Dröge [Wed, 14 Jan 2015 14:54:28 +0000 (15:54 +0100)]
decklinkvideosink: Keep track of the time when we went to PLAYING for the external clock too

Otherwise we're adding an offset of the time the pipeline was in PLAYING
already to the running time when converting it to our internal clock.

9 years agodecklinkvideosink: Enable QoS and set max-lateness to 20ms
Sebastian Dröge [Wed, 14 Jan 2015 12:32:51 +0000 (13:32 +0100)]
decklinkvideosink: Enable QoS and set max-lateness to 20ms

9 years agoh264parser: fix stack smashing
Vincent Penquerc'h [Mon, 12 Jan 2015 17:24:52 +0000 (17:24 +0000)]
h264parser: fix stack smashing

Ensure that we do not trust the bitstream when filling a table
with a fixed max size.
Additionally, the code was not quite matching what the spec says:
- a value of 3 broke from the loop before adding an entry
- an unhandled value did not add an entry
The reference algorithm does these things differently (7.3.3.1
in ITU-T Rec. H.264 (05/2003)).

This plays (apparently correctly) the original repro file, with
no stack smashing.

Based on a patch and bug report by André Draszik <git@andred.net>

9 years agogl: split glcolorconvert usage from glupload
Matthew Waters [Wed, 14 Jan 2015 11:08:43 +0000 (22:08 +1100)]
gl: split glcolorconvert usage from glupload

the separation allows the transfer operation to occur in a separate
thread/time which may increase performance in specific circumstances.

9 years agoglmemory: offset the data pointer for upload for GstVideoAlignment
Matthew Waters [Wed, 14 Jan 2015 01:39:11 +0000 (12:39 +1100)]
glmemory: offset the data pointer for upload for GstVideoAlignment

otherwise we attempt to read from the padding data

9 years agoglmemory: use pbo's for upload
Matthew Waters [Tue, 13 Jan 2015 13:08:11 +0000 (00:08 +1100)]
glmemory: use pbo's for upload

9 years agoglupload: relax the GLMemory uploader check for input caps features
Matthew Waters [Tue, 13 Jan 2015 12:47:06 +0000 (23:47 +1100)]
glupload: relax the GLMemory uploader check for input caps features

As there may be a sysmem caps features with GLMemory filled buffers.
e.g.

videotestsrc ! glimagesink

9 years agoRevert "Revert "openh264: fix to work with released versions and master of upstream""
Zaheer Abbas Merali [Tue, 13 Jan 2015 19:32:03 +0000 (11:32 -0800)]
Revert "Revert "openh264: fix to work with released versions and master of upstream""

This reverts commit 329f0ccba1aa604da1bd80293fd1fe717447df5d.

9 years agoopenh264: remove all trace output to console from encoder
Zaheer Abbas Merali [Wed, 17 Dec 2014 17:19:52 +0000 (09:19 -0800)]
openh264: remove all trace output to console from encoder

9 years agodecklink: Use BT2020 colorspace for UltraHD resolutions
Sebastian Dröge [Tue, 13 Jan 2015 18:56:24 +0000 (19:56 +0100)]
decklink: Use BT2020 colorspace for UltraHD resolutions

9 years agodecklink: Fix indention once again
Sebastian Dröge [Tue, 13 Jan 2015 18:55:37 +0000 (19:55 +0100)]
decklink: Fix indention once again

9 years agoaudiovisualizer: handle the return of the setup function
Luis de Bethencourt [Tue, 13 Jan 2015 16:49:07 +0000 (16:49 +0000)]
audiovisualizer: handle the return of the setup function

Make the class future proof by handling the gboolean return of the setup
function. So if/when a child class uses this the base class is ready.

9 years agoRevert "audiovisualizer: remove unused value"
Luis de Bethencourt [Tue, 13 Jan 2015 16:46:10 +0000 (16:46 +0000)]
Revert "audiovisualizer: remove unused value"

This reverts commit 25c97570834d6de1c14424e71221d19eb0d33ee3.

It is preferable to handle the retun of the setup function.

9 years agodecklinkvideosink: Get our own "start time" instead of the one of the pipeline
Sebastian Dröge [Tue, 13 Jan 2015 16:44:17 +0000 (17:44 +0100)]
decklinkvideosink: Get our own "start time" instead of the one of the pipeline

decklinkvideosink might be added later to the pipeline, or its state might
be handled separately from the pipeline. In which case the running time when
we (last) went into PLAYING state will be different from the pipeline's.

However we need our own start time to tell the Decklink API, which running
time should be displayed at the moment we go to PLAYING and start scheduled
rendering.

9 years agointer: Use a #define for the default value of the channel property
Sebastian Dröge [Tue, 13 Jan 2015 16:00:51 +0000 (17:00 +0100)]
inter: Use a #define for the default value of the channel property

9 years agointervideosrc: Make the timeout configurable after which we start showing a black...
Sebastian Dröge [Tue, 13 Jan 2015 15:58:50 +0000 (16:58 +0100)]
intervideosrc: Make the timeout configurable after which we start showing a black frame

9 years agoaudiovisualizer: remove unused value
Luis de Bethencourt [Tue, 13 Jan 2015 15:42:26 +0000 (15:42 +0000)]
audiovisualizer: remove unused value

klass->setup (scope) will always return TRUE since all children of this class
do so, no need to store the return. Besides, the value is overwritten a few
lines down before it is used.

Change helps keep files in sync after:
-base commit a91d521a3602f33083405467db9454d422b9da1b

9 years agocompositor: Don't do any conversions if the pad is completely transparent anyway
Sebastian Dröge [Tue, 13 Jan 2015 13:54:26 +0000 (14:54 +0100)]
compositor: Don't do any conversions if the pad is completely transparent anyway

9 years agointer: silence messages for flushed / created samples
Branislav Katreniak [Mon, 12 Jan 2015 11:58:27 +0000 (12:58 +0100)]
inter: silence messages for flushed / created samples

These messages are logged periodically and polute the log

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

9 years agoglcolorconvert: fix memleak
Nicola Murino [Thu, 25 Dec 2014 22:10:19 +0000 (23:10 +0100)]
glcolorconvert: fix memleak

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

9 years agoglupload: fix some memory leaks
Nicola Murino [Thu, 25 Dec 2014 21:59:42 +0000 (22:59 +0100)]
glupload: fix some memory leaks

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

9 years agoglcontext: allow wrapped contexts to be utilised like non-wrapped contexts
Matthew Waters [Wed, 31 Dec 2014 06:45:53 +0000 (17:45 +1100)]
glcontext: allow wrapped contexts to be utilised like non-wrapped contexts

Fill in the missing pieces like get_proc_address, the gl function vtable

9 years agogitignore: ignore more files
Stefan Sauer [Mon, 12 Jan 2015 20:25:14 +0000 (21:25 +0100)]
gitignore: ignore more files

9 years agovisual: use unused value
Luis de Bethencourt [Mon, 12 Jan 2015 15:33:09 +0000 (15:33 +0000)]
visual: use unused value

ret is assigned but not used and in the next cycle of the loop it is overwritten
with default_prepare_output_buffer (). If there is a flow error the function
should return instead.

CID #1226475

9 years agoAutomatic update of common submodule
Stefan Sauer [Mon, 12 Jan 2015 15:10:31 +0000 (16:10 +0100)]
Automatic update of common submodule

From f2c6b95 to bc76a8b

9 years agodecklink: Initialize refcount of our C++ classes in the constructor
Sebastian Dröge [Mon, 12 Jan 2015 14:57:53 +0000 (15:57 +0100)]
decklink: Initialize refcount of our C++ classes in the constructor

CID 1262288
CID 1262287
CID 1262289

9 years agogaudieffects: stored value is overwritten
Luis de Bethencourt [Mon, 12 Jan 2015 14:22:47 +0000 (14:22 +0000)]
gaudieffects: stored value is overwritten

Value from left_luminance is assigned to out_luminance here, but that stored
value is not used before it is overwritten in the next cycle of the loop.
Removing assignation.

CID #1226473

9 years agompegdemux: fix dead code
Luis de Bethencourt [Mon, 12 Jan 2015 12:50:33 +0000 (12:50 +0000)]
mpegdemux: fix dead code

found is initialized to FALSE to then only be used in two conditional statements
that will always be false, making the blocks inside them dead code. Looking back
in the file's history the setting of the variable's value before it is checked
was dropped as part of the port to 0.11, bringing that value setting back.

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

9 years agompegdemux: minor optimisation when scanning for SCRs
Tim-Philipp Müller [Sun, 11 Jan 2015 20:40:34 +0000 (20:40 +0000)]
mpegdemux: minor optimisation when scanning for SCRs

Bail out early when we're scanning for SCR, no need to
parse stuff we're not going to use nor interested in.

9 years agompg123: fix compiler warning and simplify checks in set_caps
Tim-Philipp Müller [Sun, 11 Jan 2015 01:08:08 +0000 (01:08 +0000)]
mpg123: fix compiler warning and simplify checks in set_caps

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

9 years agompg123: rework set_format code so mpg123audiodec works with decodebin/playbin
Carlos Rafael Giani [Sat, 3 Jan 2015 12:06:45 +0000 (13:06 +0100)]
mpg123: rework set_format code so mpg123audiodec works with decodebin/playbin

The old code was using gst_caps_normalize() and was generally overly
complex. Simplify by picking sample rate and number of channels from
upstream and the sample format from the allowed caps. If the format caps
is a list of strins, just pick the first one. And if the srcpad isn't
linked yet, use the default format (S16).

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

9 years agogl/cocoa: Disable hack for NSApp iteration with a special #define
Sebastian Dröge [Sat, 10 Jan 2015 14:34:57 +0000 (15:34 +0100)]
gl/cocoa: Disable hack for NSApp iteration with a special #define

The hack causes deadlocks and other interesting problems and it really
can only be fixed properly inside GLib. We will include a patch for
GLib in our builds for now that handles this, and hopefully at some
point GLib will also merge a proper solution.

A proper solution would first require to refactor the polling in
GMainContext to only provide a single fd, e.g. via epoll/kqueue
or a thread like the one added by our patch. Then this single
fd could be retrieved from the GMainContext and directly integrated
into a NSRunLoop.

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

9 years agointer: interaudiosrc - fixate layout for default caps
Jan Schmidt [Sat, 10 Jan 2015 04:40:30 +0000 (15:40 +1100)]
inter: interaudiosrc - fixate layout for default caps

Makes interaudiosrc produce valid audio caps in the absence of any other
guidance by adding to the pad template and fixate function

9 years agoaggregator: Remove pointless atomic
Olivier Crête [Sat, 10 Jan 2015 02:51:40 +0000 (21:51 -0500)]
aggregator: Remove pointless atomic

It is only modified from the streaming thread

9 years agoaggregator: Fix query leak
Olivier Crête [Sat, 10 Jan 2015 02:30:36 +0000 (21:30 -0500)]
aggregator: Fix query leak

9 years agoaudiovisualizer: remove check for below zero for unsigned value
Luis de Bethencourt [Fri, 9 Jan 2015 17:56:09 +0000 (17:56 +0000)]
audiovisualizer: remove check for below zero for unsigned value

CLAMP checks both if value is '< 0' and '> max'. Value will never be a negative
number since it is an unsigned integer. Removing that check and only checking if
it is bigger than max and setting it appropriately.

Also converting the previous instance of this into MIN() for consistency.

CID 1139793

9 years agoh264parse: expose compatible profiles to downstream
Sreerenj Balachandran [Tue, 2 Dec 2014 08:10:39 +0000 (10:10 +0200)]
h264parse: expose compatible profiles to downstream

Some video bitstreams report a too restrictive set of profiles. If a video
decoder was to strictly follow the indicated profile, it wouldn't support that
stream, whereas it could in theory and in practice. So we should relax the
profile restriction for allowing the decoder to get connected with parser.

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

9 years agoaggregator: Print jitter from clock waiting in the debug logs
Sebastian Dröge [Fri, 9 Jan 2015 15:43:39 +0000 (16:43 +0100)]
aggregator: Print jitter from clock waiting in the debug logs

9 years agoaudiovisualizer: remove check if below zero for unsigned value
Luis de Bethencourt [Fri, 9 Jan 2015 14:42:34 +0000 (14:42 +0000)]
audiovisualizer: remove check if below zero for unsigned value

CLAMP checks both if y is '< 0' and '> h1'. y will never be a negative number
since it is an unsigned integer. Removing that check and only checking if it
bigger than h1 and setting it to that max approprietaly.

CID 1139792

9 years agohlsdemux: cache current file position in the list
Thiago Santos [Thu, 8 Jan 2015 19:24:29 +0000 (16:24 -0300)]
hlsdemux: cache current file position in the list

Avoids iterating the list everytime to look for the next segment
to be used (or to advance to the next one).

9 years agohlsdemux: simplify next segment checking functions
Thiago Santos [Thu, 8 Jan 2015 18:46:49 +0000 (15:46 -0300)]
hlsdemux: simplify next segment checking functions

Optimize loop by moving condition outside of it and reuse the
find_next_fragment function to check if there is next instead of
replicating the same loop

9 years agohlsdemux: cache total duration to avoid iterating at every query
Thiago Santos [Thu, 8 Jan 2015 16:03:11 +0000 (13:03 -0300)]
hlsdemux: cache total duration to avoid iterating at every query

Duration queries can be done a few times per second and would cause
the segment list to be traversed for every one. Caching the duration
prevents that.

9 years agodecklinkvideosrc: Post LATENCY message when the mode changes
Sebastian Dröge [Thu, 8 Jan 2015 17:15:27 +0000 (18:15 +0100)]
decklinkvideosrc: Post LATENCY message when the mode changes

Different modes have different framerates, and thus different latencies. We
might need to reconfigure the latency of the pipeline.

9 years agodecklinkvideosrc: Fix compiler warning
Sebastian Dröge [Thu, 8 Jan 2015 17:14:38 +0000 (18:14 +0100)]
decklinkvideosrc: Fix compiler warning

9 years agodecklinkvideosrc: Add automatic mode detection
Florian Langlois [Thu, 8 Jan 2015 15:42:31 +0000 (16:42 +0100)]
decklinkvideosrc: Add automatic mode detection

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

9 years agohlsdemux: g_return_if_fail in function with return type
Luis de Bethencourt [Thu, 8 Jan 2015 15:54:18 +0000 (15:54 +0000)]
hlsdemux: g_return_if_fail in function with return type

Need to use g_return_val_if_fail() when the function returns a type, in this
case a gboolean

9 years agortp: value truncated too short creates dead code
Luis de Bethencourt [Thu, 8 Jan 2015 15:36:04 +0000 (15:36 +0000)]
rtp: value truncated too short creates dead code

type is truncated to 0-31 with "& 0x1f", but right after that it is checks if
the value is equivalent to GST_H265_NAL_VPS, GST_H265_NAL_SPS, and
GST_H265_NAL_PPS (which are 32, 33, and 34 respectively). Obviously, this will
never be True if the value is maximum 31 after the truncation.
The intention of the code was to truncate to 0-63.

9 years agortp: fix nal unit type check
Luis de Bethencourt [Thu, 8 Jan 2015 15:27:44 +0000 (15:27 +0000)]
rtp: fix nal unit type check

After further investigation the previous commit is wrong. The code intended to
check if the type is 39 or the ranges 41-44 and 48-55. Just like gsth265parse.c
does. Type 40 would not be complete.

9 years agortp: fix dead code and check for impossible values
Luis de Bethencourt [Thu, 8 Jan 2015 13:47:09 +0000 (13:47 +0000)]
rtp: fix dead code and check for impossible values

nal_type is the index for a GstH265NalUnitType enum. There are two types of dead
code here:
First, after checking if nal_type is >= 39 there are two OR conditionals that
check if the value is in ranges higher than that number, so if nal_type >= 39
falls in the True branch those other conditions aren't checked and if it falls
in the False branch and they are checked, they will always also be False. They
are redundant.
Second, the enum has a range of 0 to 40. So the checks for ranges higher than 41
should never be True.
Removing this redundant checks.

CID 1249684

9 years agovtenc: Unlock the stream lock while waiting for pending frames to be completed in...
Florian Zwoch [Thu, 8 Jan 2015 13:47:16 +0000 (14:47 +0100)]
vtenc: Unlock the stream lock while waiting for pending frames to be completed in finish()

We might otherwise deadlock because gst_vtenc_enqueue_buffer() can be
called again and will take the stream lock again from another thread.

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

9 years agohlsdemux: implement _has_next_fragment to avoid busy looping
Thiago Santos [Thu, 8 Jan 2015 11:46:48 +0000 (08:46 -0300)]
hlsdemux: implement _has_next_fragment to avoid busy looping

It will allow the demuxer to wait for a fragment to be available instead
of busy looping polling the playlist for a new fragment

9 years agodecklink: Add a dummy value to the video connection mapping table for auto
Sebastian Dröge [Thu, 8 Jan 2015 11:55:16 +0000 (12:55 +0100)]
decklink: Add a dummy value to the video connection mapping table for auto

9 years agodecklinkaudiosrc: Add property to select the audio input connection
Sebastian Dröge [Thu, 8 Jan 2015 11:48:22 +0000 (12:48 +0100)]
decklinkaudiosrc: Add property to select the audio input connection

9 years agodecklink: Add XLR and RCA audio connection enums
Sebastian Dröge [Thu, 8 Jan 2015 11:23:53 +0000 (12:23 +0100)]
decklink: Add XLR and RCA audio connection enums

9 years agodecklinkvideosrc: Add auto value for the connection property
Sebastian Dröge [Thu, 8 Jan 2015 11:17:45 +0000 (12:17 +0100)]
decklinkvideosrc: Add auto value for the connection property

This will use the default/auto connection for video capturing, and can
be set via the Decklink configuration tools.

9 years agodecklink: Fix indention once again
Sebastian Dröge [Thu, 8 Jan 2015 11:13:03 +0000 (12:13 +0100)]
decklink: Fix indention once again

9 years agodecklink: Add property for configuring the input connection of the video sources
Florian Langlois [Tue, 6 Jan 2015 13:02:38 +0000 (14:02 +0100)]
decklink: Add property for configuring the input connection of the video sources

9 years agogl/cocoa: Don't init and clear static GMutex / GCond
Sebastian Dröge [Thu, 8 Jan 2015 08:35:23 +0000 (09:35 +0100)]
gl/cocoa: Don't init and clear static GMutex / GCond

We would potentially use it from the main loop later in
gst_gl_window_cocoa_init_nsapp() if it timed out before.

9 years agoglfilter: remove logically dead code
Luis de Bethencourt [Wed, 7 Jan 2015 16:53:41 +0000 (16:53 +0000)]
glfilter: remove logically dead code

Soon after setting two variables to 1, the code checks if their values are
different from each other. This would never be true. Removing this.

CID 1226443

9 years agoRevert "pngparse: improve parsing of the image"
Tim-Philipp Müller [Wed, 7 Jan 2015 16:40:25 +0000 (16:40 +0000)]
Revert "pngparse: improve parsing of the image"

This reverts commit 59e7f0597d1cc524174e847de7b91407922304c8.

This patch should not have been pushed, see
https://bugzilla.gnome.org/show_bug.cgi?id=740058#c3

9 years agohanddetect: remove unneeded check
Luis de Bethencourt [Wed, 7 Jan 2015 16:26:57 +0000 (16:26 +0000)]
handdetect: remove unneeded check

Variable hands is already checked to contain a value previously at the beginning
of the current block (in line 504). There is no need to check again. This is
logically dead code.

CID 1197693

9 years agopngparse: improve parsing of the image
Vineeth T M [Thu, 13 Nov 2014 10:26:07 +0000 (15:56 +0530)]
pngparse: improve parsing of the image

Everytime a buffer is being provided from baseparse, we are parsing all the data from the beginning.
But since we would have already parsed some of the data in the previous iterations,
it doesnt make much sense to keep parsing the same everytime.
Hence skipping the data which is already read in previous iterations to improve the parsing performance.

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

9 years agodecklink: Fix latency values for sources
Florian Langlois [Wed, 7 Jan 2015 14:32:05 +0000 (15:32 +0100)]
decklink: Fix latency values for sources

9 years agohlsdemux: remove duplicate call to uri_join
Thiago Santos [Wed, 7 Jan 2015 13:23:31 +0000 (10:23 -0300)]
hlsdemux: remove duplicate call to uri_join

9 years agohlsdemux: skip checking '#EXT-X-' token for all entries
Thiago Santos [Wed, 7 Jan 2015 12:30:00 +0000 (09:30 -0300)]
hlsdemux: skip checking '#EXT-X-' token for all entries

Put this common check before to avoid repeating it for all possible
entries to save some cycles

9 years agohlsdemux: avoid using g_list_append for creating segments list
Thiago Santos [Wed, 7 Jan 2015 12:21:33 +0000 (09:21 -0300)]
hlsdemux: avoid using g_list_append for creating segments list

Use g_list_prepend and reverse it at the end to skip traversing the
same list for every new segment

9 years agohlsdemux: Don't use approximate duration for fragment buffer pts
Thomas Bluemel [Fri, 20 Jun 2014 18:38:59 +0000 (12:38 -0600)]
hlsdemux: Don't use approximate duration for fragment buffer pts

The duration values in playlists are approximate only, and for
playlist versions 2 and older they are only rounded integer values.
They cannot be used to timestamp buffers.  This resulted in playback
gaps and skips because the actual duration of fragments is slightly
different.  The solution is to only set the pts of the very first
buffer processed, not for each fragment.

9 years agoadaptivedemux: only update segment if we have a valid PTS
Thiago Santos [Tue, 6 Jan 2015 21:44:15 +0000 (18:44 -0300)]
adaptivedemux: only update segment if we have a valid PTS

Otherwise we set the position to GST_CLOCK_TIME_NONE and it disrupts
bitrate switching

9 years agomssdemux: fix crash while setting bitrate in caps structure
Rajat Verma [Wed, 7 Jan 2015 06:01:30 +0000 (11:31 +0530)]
mssdemux: fix crash while setting bitrate in caps structure

q->bitrate is a guint64, but G_TYPE_INT may read fewer bits
off the stack, and if we pass more then the NULL sentinel
may not be found at the right place, which in turn might
lead to crashes.

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

9 years agoh264parse: Fix periodic SPS/PPS sending work after a seek
Duncan Palmer [Fri, 2 Jan 2015 00:59:00 +0000 (00:59 +0000)]
h264parse: Fix periodic SPS/PPS sending work after a seek

Reset the interval variable to have SPS/PPS sending work after
 a (backwards) seek.

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

9 years agowrappercamerabinsrc: fix deadlock with pad object lock
Thiago Santos [Tue, 6 Jan 2015 00:26:22 +0000 (21:26 -0300)]
wrappercamerabinsrc: fix deadlock with pad object lock

The image capture mutex and the pad object lock would cause a race
if the pad query was made right when the image probe was running.

The image probe needs the capture mutex and the querying would need
the pad object lock.

9 years agowrappercamerabinsrc: simplify weird if/else clause
Thiago Santos [Mon, 5 Jan 2015 18:16:15 +0000 (15:16 -0300)]
wrappercamerabinsrc: simplify weird if/else clause

It is not an if/else situation but an if error abort otherwise
just continue. Remove else to make it more readable

9 years agohlsdemux: Implement live seeking
Alex Ashley [Fri, 4 Apr 2014 15:45:51 +0000 (16:45 +0100)]
hlsdemux: Implement live seeking

hlsdemux assumes that seeking is not allowed for live streams,
however seek is possible if there are sufficient fragments in the
manifest. For example the BBC have live streams that contain 2 hours
of fragments.

The seek code for both live and on-demand is common code. The
difference between them is that an offset has to be calculated
for the timecode of the first fragment in the live playlist.

When hlsdemux starts to play a live stream, the possible seek range
is between 0 and A seconds. After some time has passed, the beginning of
the stream will no longer be available in the playlist and the seek
range is between B and C seconds.

Seek range:
start          0 ........... A
later               B ........... C

This commit adds code to keep a note of the B and C values
and the highest sequence number it has seen. Every time it updates the
media playlist, it walks the list of fragments, seeing if there is a
fragment with sequence number > highest_seen_sequence. If so, the values
of B and C are updated. The value of B is used when timestamping
buffers.

It also makes sure the seek range is never closer than three fragments
from the end of the playlist - see 6.3.3. "Playing the Playlist file"
of the HLS draft.

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

9 years agoadaptivedemux: prepare for supporting seeks in live streams
Thiago Santos [Mon, 5 Jan 2015 20:58:54 +0000 (17:58 -0300)]
adaptivedemux: prepare for supporting seeks in live streams

Add function to allow subclasses to specify seeking range for
live streams

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

9 years agoaggregator: don't use iterator when setting flush pending on pads
Tim-Philipp Müller [Sun, 4 Jan 2015 17:15:37 +0000 (17:15 +0000)]
aggregator: don't use iterator when setting flush pending on pads

9 years agoaggregator: check if pads are ready more efficiently
Tim-Philipp Müller [Sun, 4 Jan 2015 16:57:05 +0000 (16:57 +0000)]
aggregator: check if pads are ready more efficiently

No need to use an iterator for this which creates a temporary
structure every time and also involves taking and releasing the
object lock many times in the course of iterating. Not to mention
all that GList handling in gst_aggregator_iterate_sinkpads().

9 years agoaggregator: name vfunc arguments consistently
Tim-Philipp Müller [Sun, 4 Jan 2015 12:59:19 +0000 (12:59 +0000)]
aggregator: name vfunc arguments consistently

9 years agotests: nodist for orc generated code
Mark Nauwelaerts [Wed, 31 Dec 2014 19:47:24 +0000 (20:47 +0100)]
tests: nodist for orc generated code

9 years agoaggregator: add g-i transfer and scope annotations
Tim-Philipp Müller [Thu, 1 Jan 2015 15:46:00 +0000 (15:46 +0000)]
aggregator: add g-i transfer and scope annotations