platform/upstream/gstreamer.git
9 years agocompositor: Skip pads that are completely obscured by a higher zorder pad
Nirbheek Chauhan [Sat, 18 Apr 2015 09:39:02 +0000 (15:09 +0530)]
compositor: Skip pads that are completely obscured by a higher zorder pad

For each frame, compare the frame boundaries, check if the format contains an
alpha channel, check opacity, and skip the frame if it's going to be completely
overwritten by a higher zorder frame. The check is O(n^2), but that doesn't
matter here because the number of sinkpads is small.

More can be done to avoid needless drawing, but this covers the majority of
cases. See TODOs. Ideally, a reverse painter's algorithm should be used for
optimal drawing, but memcpy during compositing is small compared to the CPU used
for frame conversion on each pad.

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

9 years agoh265parse: Fix source caps to report cropped dimensions
Sreerenj Balachandran [Thu, 30 Apr 2015 16:08:25 +0000 (19:08 +0300)]
h265parse: Fix source caps to report cropped dimensions

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

9 years agoh265parse: Fix the memory freeing of stored VPS nals
Sreerenj Balachandran [Fri, 10 Apr 2015 12:34:40 +0000 (15:34 +0300)]
h265parse: Fix the memory freeing of stored VPS nals

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

9 years agoh265parse: Fix profile, tier and level setting in caps
Sreerenj Balachandran [Thu, 30 Apr 2015 15:36:35 +0000 (18:36 +0300)]
h265parse: Fix profile, tier and level setting in caps

Don't use the apis in codec-utils to extract the profile,tier and level
syntax elements since it is wrong if there are emulation prevention
bytes existing in the byte-stream data.

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

9 years agocodecparser: h265: Fix nal unit size checking
Sreerenj Balachandran [Fri, 17 Apr 2015 12:15:33 +0000 (15:15 +0300)]
codecparser: h265: Fix nal unit size checking

The EOS and EOB nals have the size 2 which is the size of
nal unit header itself. The gst_h265_parser_identify_nalu()
is not required to scan start code again in this case.

In other cases, for a valid nalunit the minimum required size
is 3 bytes (2 byte header and at least 1 byte RBSP payload)

9 years agocodecparser: h265: Calculate crop rectangle dimensions
Sreerenj Balachandran [Fri, 17 Apr 2015 12:03:34 +0000 (15:03 +0300)]
codecparser: h265: Calculate crop rectangle dimensions

9 years agocodecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal
Sreerenj Balachandran [Fri, 17 Apr 2015 12:01:57 +0000 (15:01 +0300)]
codecparser: h265: Fix parsing multiple SEI messages in a single SEI Nal

An SEI Nal can have more than one SEI message.

Change in API: the gst_h265_parser_parse_sei()

9 years agosrtpdec: Make sure to send caps events downstream before any segment events
Sebastian Dröge [Thu, 30 Apr 2015 19:32:29 +0000 (21:32 +0200)]
srtpdec: Make sure to send caps events downstream before any segment events

Upstream might not give us a caps event (dtlssrtpdec) because it might be an
RTP/RTCP mixed stream, but we split the two streams anyway and should report
proper caps downstream if possible.

Fixes "sticky event misordering" warnings with dtlssrtpdec.

9 years agortjpeg: remove unused quality property
Luis de Bethencourt [Thu, 30 Apr 2015 09:50:19 +0000 (10:50 +0100)]
rtjpeg: remove unused quality property

9 years agogl: readd glupload/download onto element pads
Matthew Waters [Thu, 30 Apr 2015 01:15:40 +0000 (11:15 +1000)]
gl: readd glupload/download onto element pads

Allows insertion of gl elements into non-gl pipelines without converter
(upload/download) elements.

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

9 years agoRevert "glvideomixer: implement with glmixerbin"
Matthew Waters [Wed, 29 Apr 2015 12:55:00 +0000 (22:55 +1000)]
Revert "glvideomixer: implement with glmixerbin"

This reverts commit 0fb56738a14391f248aa0be8756adeaf978baa0c.

9 years agoRevert "glimagesink: implement as a bin"
Matthew Waters [Wed, 29 Apr 2015 12:38:00 +0000 (22:38 +1000)]
Revert "glimagesink: implement as a bin"

This reverts commit 8a0017e21d5f9a8507f0593c6b24f723aa415258.

9 years agoRevert "glimagesink: forward ALL the properties on the bin"
Matthew Waters [Wed, 29 Apr 2015 12:32:33 +0000 (22:32 +1000)]
Revert "glimagesink: forward ALL the properties on the bin"

This reverts commit 4be45e5f30dc6121f2769323603447f591ca4a0a.

9 years agoRevert "glimagesink: add pixel-aspect-ratio property on the bin"
Matthew Waters [Wed, 29 Apr 2015 12:32:20 +0000 (22:32 +1000)]
Revert "glimagesink: add pixel-aspect-ratio property on the bin"

This reverts commit 2ba6bb9b9325b63f58a9ff0b2c82fa28759dcabc.

9 years agoksvideosrc: don't timestamp buffers for muxed streams
Andoni Morales Alastruey [Wed, 29 Apr 2015 07:57:52 +0000 (09:57 +0200)]
ksvideosrc: don't timestamp buffers for muxed streams

9 years agoksvideosrc: fix header size for muxed streams
Andoni Morales Alastruey [Wed, 29 Apr 2015 19:37:56 +0000 (21:37 +0200)]
ksvideosrc: fix header size for muxed streams

9 years agocodecparser: h265: Fix the number of tile rows/columns parsing
Sreerenj Balachandran [Wed, 29 Apr 2015 16:39:14 +0000 (19:39 +0300)]
codecparser: h265: Fix the number of tile rows/columns parsing

The possible minimum value for num_tile_columns_minus1 and num_tile_rows_minus1
is zero (7.4.3.3).

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

9 years agomixmatrix: remove unused property enum items
Luis de Bethencourt [Wed, 29 Apr 2015 16:20:58 +0000 (17:20 +0100)]
mixmatrix: remove unused property enum items

These two properties have been there since the origin of the element but they
aren't used. Removing them.

9 years agoadaptivedemux: Fix comparision logic
Edward Hervey [Wed, 29 Apr 2015 13:41:07 +0000 (15:41 +0200)]
adaptivedemux: Fix comparision logic

We can't answer the SEEKING query if we do *not* have the manifest

9 years agoaiff: Re-add noinst_HEADERS instruction
Edward Hervey [Wed, 29 Apr 2015 08:56:24 +0000 (10:56 +0200)]
aiff: Re-add noinst_HEADERS instruction

Was removed in the previous android cleanup commit

9 years agoGstDeviceProvider implementation for WIN Kernel Streaming plugin
Руслан Ижбулатов [Tue, 28 Apr 2015 21:43:56 +0000 (21:43 +0000)]
GstDeviceProvider implementation for WIN Kernel Streaming plugin

gst_ks_device_provider_probe() is a no-braier, just runs ks_enumerate_devices()
and reports the results.

Monitoring is a bit more tricky. We have to create a dummy message-processing
window and register device change notifications for it.

As kernel streaming can (and should) be used for audio capture and audio
playback, this change also has certain placeholders for such.

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

9 years agoglimagesink: Cache caps for passing to the client draw call
Jan Schmidt [Tue, 28 Apr 2015 16:30:05 +0000 (02:30 +1000)]
glimagesink: Cache caps for passing to the client draw call

Don't convert the GstVideoInfo to caps on every draw call,
just cache the caps and pass them into the GstSample.

9 years agoglupload: Make upload method static caps non-const.
Jan Schmidt [Tue, 28 Apr 2015 16:20:09 +0000 (02:20 +1000)]
glupload: Make upload method static caps non-const.

Retrieving a GstStaticCaps does a one time internal
initialisation and caches it - they can't be stored as
const structures.

9 years agoopus: fix includes and compilation against opus in non-standard prefix
Tim-Philipp Müller [Tue, 28 Apr 2015 16:24:04 +0000 (17:24 +0100)]
opus: fix includes and compilation against opus in non-standard prefix

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

9 years agoopus: don't use deprecated gst_buffer_new_and_alloc
Mersad Jelacic [Tue, 28 Apr 2015 14:58:21 +0000 (16:58 +0200)]
opus: don't use deprecated gst_buffer_new_and_alloc

Use the helper function available in the base class instead.

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

9 years agode265dec: use g_get_num_processors() if available
Tim-Philipp Müller [Tue, 28 Apr 2015 15:06:47 +0000 (16:06 +0100)]
de265dec: use g_get_num_processors() if available

And provide home-made fallback for older GLib versions,
so that we can later find these and remove them when
we bump the GLib requirement (which is certainly going
to happen before 2.0).

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

9 years agogst: remove some unnecessary glib version checks
Tim-Philipp Müller [Tue, 28 Apr 2015 15:02:27 +0000 (16:02 +0100)]
gst: remove some unnecessary glib version checks

We require 2.32, no need to check for anything older
than that.

9 years agomxf: fix descriptor leak
Guillaume Desmottes [Tue, 28 Apr 2015 09:28:39 +0000 (11:28 +0200)]
mxf: fix descriptor leak

Free the existing descriptor array, if any, before replacing it.

Fix leaks with the
validate.file.playback.scrub_forward_seeking.test-mpeg2-mp3_mxf scenario.

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

9 years agotsdemux: fix taglist leak
Guillaume Desmottes [Tue, 28 Apr 2015 08:13:35 +0000 (10:13 +0200)]
tsdemux: fix taglist leak

If the stream which is about to be removed still has a ref on a tag list we
should drop it.

Fix a leak which was occasionally happening with the
validate.file.playback.change_state_intensive.tron_en_ge_aac_h264_ts scenario.

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

9 years agompegtspacketizer: fix find_subtable() return value
Jimmy Ohn [Mon, 27 Apr 2015 13:44:28 +0000 (22:44 +0900)]
mpegtspacketizer: fix find_subtable() return value

find_subtable() returns a pointer, so return NULL and
not FALSE when nothing is found.

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

9 years agowin32: update defs
Edward Hervey [Tue, 28 Apr 2015 12:52:36 +0000 (14:52 +0200)]
win32: update defs

9 years agoglmemory: remove uneeded unref
Matthew Waters [Tue, 28 Apr 2015 10:46:52 +0000 (20:46 +1000)]
glmemory: remove uneeded unref

The call to _gl_mem_alloc_data will unref and NULLify 'dest' for us.
We just need to return.

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

9 years agoglimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()
Matthieu Bouron [Tue, 28 Apr 2015 07:37:59 +0000 (09:37 +0200)]
glimagesink: Use gst_pad_get_pad_template_caps in ::get_caps()

9 years agoglupload: provide the sink template caps that could be used
Matthew Waters [Tue, 28 Apr 2015 10:11:07 +0000 (20:11 +1000)]
glupload: provide the sink template caps that could be used

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

9 years agoexamples: gst-camera: add zoom property to UI
Thiago Santos [Mon, 27 Apr 2015 22:28:57 +0000 (19:28 -0300)]
examples: gst-camera: add zoom property to UI

Add a slider to modify the zoom in camerabin

9 years agoexamples: gst-camera: remove widgets deprecated in GTK3.0
Thiago Santos [Mon, 27 Apr 2015 21:33:37 +0000 (18:33 -0300)]
examples: gst-camera: remove widgets deprecated in GTK3.0

VBox and HBox are now simply Box

9 years agoexamples: gst-camera: update to GTK3
Thiago Santos [Mon, 27 Apr 2015 18:41:04 +0000 (15:41 -0300)]
examples: gst-camera: update to GTK3

When opening the .ui file it complains about being for GTK 2 and
automatically updates it to GTK3. Commit this version and update
the makefile

9 years agowrappercamerabinsrc: remove unused code
Thiago Santos [Mon, 27 Apr 2015 16:41:44 +0000 (13:41 -0300)]
wrappercamerabinsrc: remove unused code

The structure is created and never used anymore. Remove it.

9 years agowrappercamerabinsrc: use digitalzoom element
Thiago Santos [Mon, 27 Apr 2015 16:24:54 +0000 (13:24 -0300)]
wrappercamerabinsrc: use digitalzoom element

Replace videocrop ! videoscale ! capsfilter with the digitalzoom
bin that has the same pipeline internally and already updates
the capsfilter automatically when caps change, removing this code
from wrappercamerabinsrc and making it cleaner.

9 years agodigitalzoom: change videocrop parameters before passing caps event
Thiago Santos [Tue, 28 Apr 2015 00:14:02 +0000 (21:14 -0300)]
digitalzoom: change videocrop parameters before passing caps event

Avoids one extra uneeded renegotiation if the elements are already
configured to their final property values when the caps event
goes through.

Also avoids hitting bug https://bugzilla.gnome.org/show_bug.cgi?id=748344

9 years agodigitalzoom: also skip internal pipeline in upstream caps query
Thiago Santos [Wed, 22 Apr 2015 16:06:30 +0000 (13:06 -0300)]
digitalzoom: also skip internal pipeline in upstream caps query

To avoid going through our capsfilter which would limit the choices.

9 years agodigitalzoom: prevent assertion when caps is any
Thiago Santos [Wed, 22 Apr 2015 16:05:42 +0000 (13:05 -0300)]
digitalzoom: prevent assertion when caps is any

9 years agocamerabin: digitalzoom: create a bin element for digital zooming
Thiago Santos [Wed, 22 Apr 2015 02:10:05 +0000 (23:10 -0300)]
camerabin: digitalzoom: create a bin element for digital zooming

It contains videocrop ! videoscale ! capsfilter and implements digital
zooming.

At this moment, it is a private element of the camerabin plugin.

This will remove some code used in wrappercamerabinsrc to make
code clearer and digitalzoom can potentially be used by other
applications in the future, it has nothing camerabin specific.

9 years agoegl: Use maximum bits per color instead of minimum
Xavier Claessens [Mon, 27 Apr 2015 14:11:41 +0000 (10:11 -0400)]
egl: Use maximum bits per color instead of minimum

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

9 years agolibde265: W32 thread count support
Руслан Ижбулатов [Sun, 26 Apr 2015 20:55:03 +0000 (20:55 +0000)]
libde265: W32 thread count support

This code is imported from GLib g_get_num_processors(). This function
was added in 2.36 but we depend on 2.32.

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

9 years agolibde265: Fix format string for gsize
Руслан Ижбулатов [Sun, 26 Apr 2015 21:00:06 +0000 (21:00 +0000)]
libde265: Fix format string for gsize

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

9 years agospandsp: Don't use the private field 'missing_samples'
Руслан Ижбулатов [Sun, 26 Apr 2015 21:03:45 +0000 (21:03 +0000)]
spandsp: Don't use the private field 'missing_samples'

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

9 years agompegdemux: remove unused property enum item
Luis de Bethencourt [Mon, 27 Apr 2015 13:56:06 +0000 (14:56 +0100)]
mpegdemux: remove unused property enum item

The property enum item has been there since the origin of the element but it
has never been used. Removing it.

9 years agoglfiltercube: Don't initialize multiple shaders on renegotiation
Matthieu Bouron [Mon, 27 Apr 2015 12:49:59 +0000 (14:49 +0200)]
glfiltercube: Don't initialize multiple shaders on renegotiation

9 years agoRename property enums from ARG_ to PROP_
Luis de Bethencourt [Mon, 27 Apr 2015 09:55:13 +0000 (10:55 +0100)]
Rename property enums from ARG_ to PROP_

Property enum items should be named PROP_ for consistency and readability.

9 years agoglimagesink: Remove unused stop function
Matthieu Bouron [Mon, 27 Apr 2015 08:24:00 +0000 (10:24 +0200)]
glimagesink: Remove unused stop function

9 years agoglimagesink: unref the pool in the correct place
Matthew Waters [Mon, 27 Apr 2015 06:04:50 +0000 (16:04 +1000)]
glimagesink: unref the pool in the correct place

Otherwise we could hold a pool to a context that is never going to be used.

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

9 years agogltransformation: Unref shader in ::stop()
Matthieu Bouron [Mon, 27 Apr 2015 08:01:53 +0000 (10:01 +0200)]
gltransformation: Unref shader in ::stop()

9 years agogl: unref display/other-context in the correct place
Matthew Waters [Mon, 27 Apr 2015 05:20:56 +0000 (15:20 +1000)]
gl: unref display/other-context in the correct place

Otherwise state changes from PLAYING->READY->PAUSED will cause there to
to be no display configured on the element.

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

9 years agocodecparsers: h265: add helpers to convert quantization matrices
Sreerenj Balachandran [Fri, 10 Apr 2015 11:08:43 +0000 (14:08 +0300)]
codecparsers: h265: add helpers to convert quantization matrices

Add utility functions to convert quantization matrices from zig-zag scan
order into raster scan order and vice-versa

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

9 years agocodecparser: h265: skip byte alignment bits while parsing slice header
Sreerenj Balachandran [Fri, 10 Apr 2015 11:07:56 +0000 (14:07 +0300)]
codecparser: h265: skip byte alignment bits while parsing slice header

Skip the byte alignment bits as per the logic of byte_alignment()
provided in hevc specification. This will fix the calculation of
slice header size.

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

9 years agocodecparser: h265: Fix the NumDeltaPocs calculation
Sreerenj Balachandran [Fri, 10 Apr 2015 11:07:35 +0000 (14:07 +0300)]
codecparser: h265: Fix the NumDeltaPocs calculation

Always use the equation provided in spec (7-57) for finding
the NumDeltaPocs

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

9 years agocodecparser: h265: Fix the NumPocTotalCurr calculation
Sreerenj Balachandran [Fri, 10 Apr 2015 11:04:17 +0000 (14:04 +0300)]
codecparser: h265: Fix the NumPocTotalCurr calculation

The NumPocToalCurr should be calculated for all B and P slices.

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

9 years agocodecparser: h265: Fix nal size calculation for EOS and EOB
Sreerenj Balachandran [Fri, 10 Apr 2015 10:59:50 +0000 (13:59 +0300)]
codecparser: h265: Fix nal size calculation for EOS and EOB

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

9 years agoglfilter: De-camelcase onInitFBO() vfunc
Sebastian Dröge [Sun, 26 Apr 2015 19:42:03 +0000 (21:42 +0200)]
glfilter: De-camelcase onInitFBO() vfunc

9 years agoglfilter: Remove onStart/onStop vfuncs, and unused onReset()
Sebastian Dröge [Sun, 26 Apr 2015 19:39:06 +0000 (21:39 +0200)]
glfilter: Remove onStart/onStop vfuncs, and unused onReset()

onStart/onStop are just duplicates of the basetransform ones, onReset
was never called but was used everywhere when stop should've been used.

9 years agogltransformation: don't initialize multiple shaders on renegotiation
Lubosz Sarnecki [Tue, 21 Apr 2015 07:43:58 +0000 (09:43 +0200)]
gltransformation: don't initialize multiple shaders on renegotiation

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

* delete shader if one exists
* set it to NULL after unrefing

9 years agoglcolorconvert: Fix compiler warning
Sebastian Dröge [Sun, 26 Apr 2015 19:11:17 +0000 (21:11 +0200)]
glcolorconvert: Fix compiler warning

gstglcolorconvertelement.c:230:19: error: unused variable 'in_structure'
      [-Werror,-Wunused-variable]
    GstStructure *in_structure = gst_caps_get_structure (caps, 0);
                  ^

9 years agoavfvideosrc: drop frames we get before we have a clock
Ilya Konstantinov [Tue, 14 Apr 2015 22:24:45 +0000 (01:24 +0300)]
avfvideosrc: drop frames we get before we have a clock

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

9 years agoglbasefilter: Unref other context in finalize, and display in READY->NULL
Matthew Waters [Sun, 26 Apr 2015 18:33:41 +0000 (20:33 +0200)]
glbasefilter: Unref other context in finalize, and display in READY->NULL

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

9 years agoglcolorconvert: Keep colorimetry and chroma-site fields if passthrough
Matthieu Bouron [Sun, 19 Apr 2015 17:16:55 +0000 (19:16 +0200)]
glcolorconvert: Keep colorimetry and chroma-site fields if passthrough

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

9 years agoRemove obsolete Android build cruft
Tim-Philipp Müller [Sun, 26 Apr 2015 17:04:16 +0000 (18:04 +0100)]
Remove obsolete Android build cruft

This is not needed any longer.

9 years agovtdec: fix build error with clang
Yujin Lee [Sat, 18 Apr 2015 15:55:50 +0000 (00:55 +0900)]
vtdec: fix build error with clang

This commit fixes a simple build error by clang with
by clang with [-Werror,-Wtautological-pointer-compare] options.

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

9 years agoadaptivedemux: Only answer the duration query in non-live mode
Sebastian Dröge [Sun, 26 Apr 2015 17:08:00 +0000 (19:08 +0200)]
adaptivedemux: Only answer the duration query in non-live mode

9 years agoaudiovisualizer: fix the license from GPL to LGPL
Stefan Sauer [Sat, 25 Apr 2015 16:50:52 +0000 (18:50 +0200)]
audiovisualizer: fix the license from GPL to LGPL

This was a copy'n'paste buf in the initial commit done by myself.

9 years agoaudiovisualizer: fix the license from GPL to LGPL
Stefan Sauer [Sat, 25 Apr 2015 16:46:41 +0000 (18:46 +0200)]
audiovisualizer: fix the license from GPL to LGPL

This was a copy'n'paste buf in the initial commit done by myself.

9 years agoexamples: motioncells: remove GPL3 code we don't need
Tim-Philipp Müller [Sat, 25 Apr 2015 12:38:08 +0000 (13:38 +0100)]
examples: motioncells: remove GPL3 code we don't need

If 95% of the code of an example app consists of GObject
code, maybe that's defeating the point a little. So just
remove a lot of that and trim down the example to the
absolute minimum. Also removes the last remaining GPL3
licensed code in -bad.

9 years agoexamples: motioncells: simplify property setting
Tim-Philipp Müller [Sat, 25 Apr 2015 11:52:04 +0000 (12:52 +0100)]
examples: motioncells: simplify property setting

9 years agoexamples: motioncells: port to 1.x
Tim-Philipp Müller [Sat, 25 Apr 2015 11:48:28 +0000 (12:48 +0100)]
examples: motioncells: port to 1.x

9 years agoexamples: motioncells: relicense opencv example to LGPLv2
Robert Jobbagy [Wed, 19 Nov 2014 23:33:44 +0000 (00:33 +0100)]
examples: motioncells: relicense opencv example to LGPLv2

9 years agotests: camerabin: add tests for GstPhotography image capture
Thiago Santos [Fri, 24 Apr 2015 17:04:55 +0000 (14:04 -0300)]
tests: camerabin: add tests for GstPhotography image capture

GstPhotography enables new paths in wrappercamerabinsrc that allows
the source to be notified about the capture caps and provide an
alternative caps if desired bypassing the negotiation (this doesn't
seem like a good idea these days). To make sure it keeps working
until we remove it from the API in favor of standard caps negotiation
features this test was added.

It adds 3 extra tests with a simple test source that will:
1) Test that capturing with ANY caps work
2) Test that capturing with a fixed caps work
3) Test that capturing with a fixed caps and having the source
   pick a different resolution from GstPhotography API works
   by having wrappercamerabinsrc crop the capture to the final
   requested dimensions

9 years agowrappercamerabinsrc: Rework cropping for zoom and dimension reduction
Thiago Santos [Fri, 24 Apr 2015 17:19:50 +0000 (14:19 -0300)]
wrappercamerabinsrc: Rework cropping for zoom and dimension reduction

wrappercamerabinsrc has a videocrop element to be used for
zooming and for cropping when input caps is different when used
with the GstPhotography interface. The zooming part needs
the following elements:

capsfilter ! videocrop ! videoscale ! capsfilter

The capsfilters should always have the same caps to ensure the
zooming is done and preserves dimensions, unless when it is needed
to do more cropping due to input dimensions those caps
need to be modified accordingly to preserve the output dimensions.

This, however, makes it hard to get caps negotiation to work properly
as we need to have different caps in the capsfilters to account for
the extra cropping needed. It could be simple for fixed caps but it
gets tricky with unfixed ones.

To solve this, this patch splits the zooming and dimension reduction
cropping into 2 separate videocrop elements. The first one does
the dimension cropping, which is only needed when the GstPhotography
API is used and the source provides a caps that is different than
what is requested, while the second is dedicated to zoom crop only.

The first part of the pipeline goes from:

src ! videoconvert ! capsfilter ! videocrop ! videoscale ! capsfilter

to

src ! videocrop ! videoconvert ! capsfilter ! videocrop ! videoscale ! capsfilter

It might add an extra overhead in the image capture as the image might need
to be cropped twice but this can be solved by enabling videocrop to use
crop metas so only the later one does the real cropping.

It also makes the code a bit simpler.

9 years agowrappercamerabinsrc: remove obsolete comment
Thiago Santos [Fri, 24 Apr 2015 17:17:51 +0000 (14:17 -0300)]
wrappercamerabinsrc: remove obsolete comment

This is already handled in another place and doesn't make sense
in the function context anymore

9 years agowrappercamerabinsrc: error out if source fails to prepare for capture
Thiago Santos [Fri, 24 Apr 2015 17:16:24 +0000 (14:16 -0300)]
wrappercamerabinsrc: error out if source fails to prepare for capture

Post an error when preparing the image capture through photography
interface fails

9 years agowrappercamerabinsrc: intersect instead of compare for equality
Thiago Santos [Fri, 24 Apr 2015 17:13:34 +0000 (14:13 -0300)]
wrappercamerabinsrc: intersect instead of compare for equality

Intersect is enough to check if the requested caps are compatible
with what the source is going to provide. Equality will be too strict.

9 years agowrappercamerabinsrc: fix typo
Thiago Santos [Fri, 24 Apr 2015 17:13:16 +0000 (14:13 -0300)]
wrappercamerabinsrc: fix typo

9 years agocamerabin: tests: remove unused macros
Thiago Santos [Fri, 24 Apr 2015 05:22:54 +0000 (02:22 -0300)]
camerabin: tests: remove unused macros

Those macros were with the wrong name (likely a copy n paste mistake)
and were unused.

9 years agotests: camerabin: remove obsolete check for 0.10 feature
Thiago Santos [Thu, 23 Apr 2015 17:28:11 +0000 (14:28 -0300)]
tests: camerabin: remove obsolete check for 0.10 feature

9 years agoremove unused enum items PROP_LAST
Luis de Bethencourt [Fri, 24 Apr 2015 15:48:23 +0000 (16:48 +0100)]
remove unused enum items PROP_LAST

This were probably added to the enums due to cargo cult programming and are
unused.

9 years agoglimagesink: balance change_state display ref/unref
Matthew Waters [Fri, 24 Apr 2015 07:13:10 +0000 (17:13 +1000)]
glimagesink: balance change_state display ref/unref

the display was being unreffed on the incorrect state change causing
invalid state when changing from PLAYING/PAUSED->READY->PAUSED/PLAYING.

9 years agoadaptivedemux: Don't claim to be live when answering the LATENCY query
Sebastian Dröge [Thu, 23 Apr 2015 15:43:36 +0000 (17:43 +0200)]
adaptivedemux: Don't claim to be live when answering the LATENCY query

Even for "live" streams we are not live in the GStreamer meaning of the word.
We don't produce buffers that are timestamped based on their "capture time"
and our clock, but just based on whatever timestamps the stream might contain.

Also even if we wanted to claim to be live, that wouldn't work well as we
would have to return GST_STATE_CHANGE_NO_PREROLL when going from READY to
PAUSED, which we can't. We first need data to know if we are "live" or not.

9 years agohlsdemux: Use the downloader of the base class instead of creating our own
Sebastian Dröge [Thu, 23 Apr 2015 15:39:46 +0000 (17:39 +0200)]
hlsdemux: Use the downloader of the base class instead of creating our own

The one of the base class is completely unused because we override all
the downloading here, so let's just use that one instead.

9 years agohlsdemux: Don't error out if we can't match variant playlists after updating
Sebastian Dröge [Thu, 23 Apr 2015 15:36:49 +0000 (17:36 +0200)]
hlsdemux: Don't error out if we can't match variant playlists after updating

It's better to just select some random variant playlist instead of stopping,
chances are that it's still continuing to work and we might just have to
select a different variant again later.

9 years agohlsdemux: Fix how the playlists are refreshed
Sebastian Dröge [Thu, 23 Apr 2015 15:33:04 +0000 (17:33 +0200)]
hlsdemux: Fix how the playlists are refreshed

We should only refresh the currently selected variant playlist (if any,
otherwise the main playlist), not the main playlist. And only try to
refresh the main playlist if updating the variant playlist fails.

Some servers (Wowza) use the request of the main playlist to create a
"session", which is then part of the URI of the variant playlist and
also the fragments. Refreshing the main playlist would generate a new
session, and the server rate limits that usually. And after a few retries
the server just kicks us out.

Also as a side effect we now use the same downloader for all playlists, so
that we only have 2 instead of 3 connections to the server. And also
previously we just ignored the downloaded data from the main playlist that
the base class gave to us.

9 years agoadaptivedemux: Allow subclasses to override how a new manifest would be downloaded
Sebastian Dröge [Thu, 23 Apr 2015 15:22:11 +0000 (17:22 +0200)]
adaptivedemux: Allow subclasses to override how a new manifest would be downloaded

9 years agoadaptivedemux: Expose downloader
Sebastian Dröge [Thu, 23 Apr 2015 15:02:44 +0000 (17:02 +0200)]
adaptivedemux: Expose downloader

This allows subclasses to use it and share connections if possible.

9 years agoUpdate .gitignore
Tim-Philipp Müller [Thu, 23 Apr 2015 15:43:11 +0000 (16:43 +0100)]
Update .gitignore

9 years agotests: define GST_CHECK_TEST_ENVIRONMENT_BEACON
Tim-Philipp Müller [Thu, 23 Apr 2015 15:40:49 +0000 (16:40 +0100)]
tests: define GST_CHECK_TEST_ENVIRONMENT_BEACON

Make sure the test environment is set up.

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

9 years agoconfigure: bump automake requirement to 1.14 and autoconf to 2.69
Tim-Philipp Müller [Thu, 23 Apr 2015 15:39:20 +0000 (16:39 +0100)]
configure: bump automake requirement to 1.14 and autoconf to 2.69

This is only required for builds from git, people can still
build tarballs if they only have older autotools.

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

9 years agoglupload: Release glupload buffer when caps are changed
Matthieu Bouron [Thu, 23 Apr 2015 14:47:40 +0000 (16:47 +0200)]
glupload: Release glupload buffer when caps are changed

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

9 years agogaudi: don't run gaussian function if sigma is 0
Luis de Bethencourt [Thu, 23 Apr 2015 10:47:37 +0000 (11:47 +0100)]
gaudi: don't run gaussian function if sigma is 0

9 years agohlsdemux: handle too short segments
Thiago Santos [Wed, 22 Apr 2015 22:28:39 +0000 (19:28 -0300)]
hlsdemux: handle too short segments

When the segment is very short it might be the case that the
typefinding fails and when finishing the segment hlsdemux would
consider the remaining data (pending_buffer) as an encryption
leftover.

This patch fixes it and makes sure an error is properly posted
if typefind failed by refactoring buffer handling to a function
and using it from the data_received and finish_fragment functions.

9 years agohlsdemux: use correct variable type
Thiago Santos [Wed, 22 Apr 2015 22:04:43 +0000 (19:04 -0300)]
hlsdemux: use correct variable type

gst_buffer_resize needs gssize and not gsize. This makes gdb
print it correctly when debugging.

9 years agodecklinkvideosrc: fix mode autodetection
Josep Torra [Wed, 22 Apr 2015 15:08:09 +0000 (17:08 +0200)]
decklinkvideosrc: fix mode autodetection

The autodetection mode was broken because a race condition in the input mode
setting. The mode could be reverted back when it was replaced in
the streaming thread by the old mode in the middle of mode changed callback.

9 years agodecklink: do not repeat first video format in caps template
Josep Torra [Wed, 22 Apr 2015 15:04:25 +0000 (17:04 +0200)]
decklink: do not repeat first video format in caps template

The first entry in the modes array is used as default mode for autodetection.
There's no need to copy it into the caps template.