platform/upstream/gst-plugins-bad.git
8 years agotemplatematch: fix buffer leak in test
Guillaume Desmottes [Thu, 2 Jun 2016 11:53:38 +0000 (13:53 +0200)]
templatematch: fix buffer leak in test

Need to call gst_check_drop_buffers() to unref the buffers exchanged
during the test.

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

8 years agoglimagesink: fix query leak in test
Guillaume Desmottes [Thu, 19 May 2016 10:31:56 +0000 (13:31 +0300)]
glimagesink: fix query leak in test

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

8 years agoglimagesink: properly setup/teardown tests
Guillaume Desmottes [Thu, 19 May 2016 10:29:15 +0000 (13:29 +0300)]
glimagesink: properly setup/teardown tests

tcase_add_checked_fixture() is suppose to call the setup and teardown
functions so the tests don't have to do it manually.

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

8 years agoglupload: fix shader leak in test
Guillaume Desmottes [Thu, 19 May 2016 10:09:41 +0000 (13:09 +0300)]
glupload: fix shader leak in test

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

8 years agouvch264demux: fix buffer leaks in test
Guillaume Desmottes [Thu, 19 May 2016 09:51:17 +0000 (12:51 +0300)]
uvch264demux: fix buffer leaks in test

The mock chain functions aren't unreffing the buffers so the caller
should do it.

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

8 years agocamerabin: fix element leak in test
Guillaume Desmottes [Thu, 19 May 2016 09:36:42 +0000 (12:36 +0300)]
camerabin: fix element leak in test

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

8 years agofix buffer leaks in tests
Guillaume Desmottes [Thu, 19 May 2016 08:19:57 +0000 (11:19 +0300)]
fix buffer leaks in tests

gst_check_drop_buffers() release the buffers exchanged during the test.

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

8 years agofix event leaks in tests
Guillaume Desmottes [Thu, 19 May 2016 08:19:20 +0000 (11:19 +0300)]
fix event leaks in tests

The events are supposed to be unreffed when finishing the test, not
reffed.

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

8 years agoaudiointerleave: fix message leaks by flushing the bus
Guillaume Desmottes [Thu, 19 May 2016 08:19:01 +0000 (11:19 +0300)]
audiointerleave: fix message leaks by flushing the bus

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

8 years agoaudioaggregator: fix buffer leak
Guillaume Desmottes [Thu, 19 May 2016 08:16:37 +0000 (11:16 +0300)]
audioaggregator: fix buffer leak

If the pad was still owning a buffer when being destroyed it was leaked.

Fix a leak with the test_flush_start_flush_stop test.

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

8 years agoautoconvert: fix factories leak in test
Guillaume Desmottes [Wed, 18 May 2016 13:58:44 +0000 (16:58 +0300)]
autoconvert: fix factories leak in test

The factories returned by gst_registry_find_feature() have to be
unreffed.

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

8 years agoh264parse: fix default time_offset_length
Michael Olbrich [Fri, 17 Jun 2016 12:58:44 +0000 (14:58 +0200)]
h264parse: fix default time_offset_length

The default value for time_offset_length should be 24, see
section E2.2 of the H264 spec.

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

8 years agodc1394src: check for disabled transmission in _stop_cam
Joan Pau Beltran [Fri, 17 Jun 2016 12:31:42 +0000 (14:31 +0200)]
dc1394src: check for disabled transmission in _stop_cam

For symetry with _start_cam, check that the transmission
is effectively disabled in _stop_cam.

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

8 years agodvbsrc: do not rely on temp var for fail detection
Reynaldo H. Verdejo Pinochet [Fri, 17 Jun 2016 22:32:08 +0000 (15:32 -0700)]
dvbsrc: do not rely on temp var for fail detection

Use errno instead as local var might be overwritten
before the check.

8 years agodvbsrc: rework set_pids()
Reynaldo H. Verdejo Pinochet [Tue, 14 Jun 2016 22:29:08 +0000 (15:29 -0700)]
dvbsrc: rework set_pids()

- Reflow to avoid unneeded nesting
- Free aux pids array earlier
- Adjust debug output to deliver more meaningful information

8 years agodvbsrc: drop pointless debug msg
Reynaldo H. Verdejo Pinochet [Tue, 14 Jun 2016 21:24:35 +0000 (14:24 -0700)]
dvbsrc: drop pointless debug msg

8 years agocodecparsers: drop all otherwizes
Reynaldo H. Verdejo Pinochet [Thu, 9 Jun 2016 23:05:39 +0000 (16:05 -0700)]
codecparsers: drop all otherwizes

8 years agojpeg2000parse: support j2c format
Aaron Boxer [Sun, 12 Jun 2016 17:53:18 +0000 (13:53 -0400)]
jpeg2000parse: support j2c format

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

8 years agotests/glcontext: link against gstvideo for gst_video_info_*
Matthew Waters [Wed, 15 Jun 2016 15:54:16 +0000 (01:54 +1000)]
tests/glcontext: link against gstvideo for gst_video_info_*

fixes make distcheck complaining about it.

8 years agoqml: Enable qmlglsink for eglfs
Sergey Borovkov [Thu, 14 Apr 2016 15:14:32 +0000 (18:14 +0300)]
qml: Enable qmlglsink for eglfs

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

8 years agoqmlglsink: propagate GL context creation failure upwards
Matthew Waters [Wed, 15 Jun 2016 14:44:48 +0000 (00:44 +1000)]
qmlglsink: propagate GL context creation failure upwards

Otherwise an application cannot know if the qmlglsink will be displaying frames
incorrectly/at all.

8 years agoqmlglsink: also allow wayland-egl as a platform name
Matthew Waters [Wed, 15 Jun 2016 14:44:16 +0000 (00:44 +1000)]
qmlglsink: also allow wayland-egl as a platform name

8 years agoqmlglsink: Add Wayland support
Haihua Hu [Sun, 12 Jun 2016 07:35:28 +0000 (15:35 +0800)]
qmlglsink: Add Wayland support

Don't use gstgldisplay to get wayland display. Should use QPA on wayland
to get wayland display for QT.

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

8 years agotests/glcontext: update test for gen,del_texture removal
Matthew Waters [Wed, 15 Jun 2016 14:46:57 +0000 (00:46 +1000)]
tests/glcontext: update test for gen,del_texture removal

8 years agoladspa: simplify registry cache structure creation
Stefan Sauer [Tue, 14 Jun 2016 20:12:18 +0000 (22:12 +0200)]
ladspa: simplify registry cache structure creation

Create and fill structure in one go.

8 years agogleffects: fix little rectangle that appears at the center of squeeze and tunnel...
Haihua Hu [Tue, 14 Jun 2016 05:48:09 +0000 (13:48 +0800)]
gleffects: fix little rectangle that appears at the center of squeeze and tunnel effects

These two shader will calculate the vector length and use it as denominator.
But length could be zero which will cause undefine behaviour. Add protection for
this condition

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

8 years agoglsl: add some debugging
Matthew Waters [Wed, 15 Jun 2016 08:10:59 +0000 (18:10 +1000)]
glsl: add some debugging

8 years agoglutils: remove unused functions for texture creation/deletion
Matthew Waters [Wed, 15 Jun 2016 06:08:57 +0000 (16:08 +1000)]
glutils: remove unused functions for texture creation/deletion

Everyone uses GstGLMemory now and any future code should as well.

8 years agoglfilter: remove unused class fields in/out_tex_id
Matthew Waters [Wed, 15 Jun 2016 05:47:47 +0000 (15:47 +1000)]
glfilter: remove unused class fields in/out_tex_id

The functionality is not used by any subclass nor are the values set anywhere.

8 years agogldeinterlace: remove dead code accessing filter->in_tex_id
Matthew Waters [Wed, 15 Jun 2016 05:08:39 +0000 (15:08 +1000)]
gldeinterlace: remove dead code accessing filter->in_tex_id

It's not set by anyone or anything and gldeinterlace is the only user of it now.

8 years agogl/upload/meta: remove unneeded texture deletion
Matthew Waters [Wed, 15 Jun 2016 04:40:40 +0000 (14:40 +1000)]
gl/upload/meta: remove unneeded texture deletion

The textures are managed by the GstGLMemory inside the output buffer.  Freeing
them prematurely may result in a use-after-free.

8 years agosrtpenc: remove get-rollover-counter signal and add stats property
Aleix Conchillo Flaqué [Mon, 30 May 2016 12:10:23 +0000 (14:10 +0200)]
srtpenc: remove get-rollover-counter signal and add stats property

We remove get-rollover-counter signal in favor of the "stats"
property. The "stats" property is a GstStructure with caps
application/x-srtp-encoder-stats that contains an array of
structures with caps application/x-srtp-stream.
Each stream structure contains "ssrc" and "roc" fields.

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

8 years agoh264parse: support for handling of config-interval = -1
Mats Lindestam [Wed, 25 May 2016 10:55:36 +0000 (12:55 +0200)]
h264parse: support for handling of config-interval = -1

Added support for handling of config-interval = -1.
config-inteval = -1 represents resending SPS and PPS for each
I-/IDR-frame.

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

8 years agoh264parse: refactored handling of SPS/PPS when pushing frames
Mats Lindestam [Wed, 25 May 2016 10:45:17 +0000 (12:45 +0200)]
h264parse: refactored handling of SPS/PPS when pushing frames

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

8 years agoh264parse: change "config-interval" property type from uint to int
Mats Lindestam [Wed, 25 May 2016 09:54:55 +0000 (11:54 +0200)]
h264parse: change "config-interval" property type from uint to int

So we can use -1 as special value like in rtph264pay.

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

8 years agoavfassetsrc: Don't escape the URI before passing it to NSURL
Sebastian Dröge [Mon, 13 Jun 2016 06:20:22 +0000 (09:20 +0300)]
avfassetsrc: Don't escape the URI before passing it to NSURL

The URI must already be escaped by the caller, we don't support passing around
invalid (unescaped) URIs via the GstURIHandler interface.

Also it will escape too much of the URI in this case, e.g.
  ipod-library://item/item.m4a?id=3143338395173862951
becomes
  ipod-library://item/item.m4a%3Fid%3D3143338395173862951

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

8 years agoiosassetsrc: Print the correct URI if it was rejected
Sebastian Dröge [Mon, 13 Jun 2016 06:20:02 +0000 (09:20 +0300)]
iosassetsrc: Print the correct URI if it was rejected

We were printing the previously set URI instead of the new one.

8 years agocurlsmtpsink: Lock and don't send final boundary upon error
Sebastian Rasmussen [Wed, 8 Jun 2016 23:20:36 +0000 (01:20 +0200)]
curlsmtpsink: Lock and don't send final boundary upon error

Previously GstCurlSmtpSink could cause the pipeline thread to end up
waiting for a stopped thread to perform work.

The scenario was that the sink could be rendering a buffer and waiting
for the curl transfer thread to have sent the data. As soon as the
transfer thread has copied all data to curl's data buffer in
gst_curl_base_sink_transfer_read_cb() then the render call would stop
waiting and return GST_FLOW_OK. While this takes place the transfer
thread may suffer from an error e.g. due gst_poll_wait() timing out.
This causes the transfer thread to record the error, claim (it is not
really true since there was an error) that the data has been sent and
that a response has been received by trying to signal the pipeline
thread (but this has already stopped waiting). Finally the transfer
thread stops itself. A short while later the pipeline thread may attempt
to push an EOS event into GstCurlSmtpSink. Since there is no check in
gst_curl_smtp_sink_event() to check if the sink has suffered from any
error it may attempt to add a final boundary and ask the, now deceased,
transfer thread to transfer the new data. Next the sink element would
have waited for the transfer to complete (using a different mechanism
than normal transfers through GstCurlBaseSink). In this case there was
an error check to avoid waiting if an error had already been seen.
Finally GstCurlSmtpSink would chain up to GstCurlBaseSink which would
then block waiting for a response (normally this would be prevented by
the transfer thread suffering the error claiming that it had been
received, but GstCurlSmtpSink clobbered this flag after the fact).

Now GstCurlSmtpSink avoids this by locking over the entire event handing
(preventing simultaneous changes to flags by the two threads) and also
by avoiding to initiate transfer of final boundary if an error has
already been seen.

Also add GST_FIXME() for remaining similar issue where the pipeline
thread may block indefinitely waiting for transfer thread to transfer
data but the transfer thread errors out and fails to notify the pipeline
thread that the transfer failed.

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

8 years agojpeg2000parse: Require either colorspace or sampling field in sink caps
Aaron Boxer [Wed, 8 Jun 2016 15:32:28 +0000 (11:32 -0400)]
jpeg2000parse: Require either colorspace or sampling field in sink caps

And always set the sampling field on the src caps, if necessary guessing a
correct value for it from the colorspace field.

Also, did some cleanup: removed sampling enum - redundant.

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

8 years agofacedetect: Fix compiler warning with clang 3.8
Heinrich Fink [Fri, 10 Jun 2016 08:32:46 +0000 (11:32 +0300)]
facedetect: Fix compiler warning with clang 3.8

Use namespace only after it was actually defined by a header.

gstfacedetect.cpp:79:17: error: using directive refers to implicitly-defined namespace 'std' [-Werror]
using namespace std;
                ^

8 years agodvbsrc: unify exit paths on _start()
Reynaldo H. Verdejo Pinochet [Mon, 6 Jun 2016 23:35:15 +0000 (16:35 -0700)]
dvbsrc: unify exit paths on _start()

8 years agodvbsrc: use proper acronym for PID (Packet Identifier)
Reynaldo H. Verdejo Pinochet [Mon, 6 Jun 2016 22:31:31 +0000 (15:31 -0700)]
dvbsrc: use proper acronym for PID (Packet Identifier)

Drop formatting tab from message while at it.

8 years agodvbsrc: set common PES filter params once and reuse
Reynaldo H. Verdejo Pinochet [Mon, 6 Jun 2016 19:25:22 +0000 (12:25 -0700)]
dvbsrc: set common PES filter params once and reuse

Avoid setting the same harcoded values over and over again.

8 years agodc1394src: minor clean-up
Tim-Philipp Müller [Thu, 9 Jun 2016 21:01:45 +0000 (22:01 +0100)]
dc1394src: minor clean-up

We always call _parse_caps() with non-NULL out vars.

8 years agodc1394src: fix some more c99-isms
Tim-Philipp Müller [Thu, 9 Jun 2016 21:01:13 +0000 (22:01 +0100)]
dc1394src: fix some more c99-isms

8 years agodocs: fix for renamed dc1394 source file
Tim-Philipp Müller [Thu, 9 Jun 2016 20:47:05 +0000 (21:47 +0100)]
docs: fix for renamed dc1394 source file

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

8 years agodc1394src: prefix and file names according to Gstreamer conventions
Joan Pau Beltran [Tue, 7 Jun 2016 13:50:50 +0000 (15:50 +0200)]
dc1394src: prefix and file names according to Gstreamer conventions

Replace the type and function prefix to follow the conventions:

  - Use `GST_TYPE_DC1394_SRC` instead of `GST_TYPE_DC1394`.

  - Use `GstDC1394Src` and `GstDC1394SrcClass` instead of
    `GstDc1394` and `GstDc1394Class`.

  - Use `gst_dc1394_src` instead of `gst_dc1394`.

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

8 years agodc1394src: port to 1.X
Joan Pau Beltran [Tue, 10 May 2016 16:30:35 +0000 (18:30 +0200)]
dc1394src: port to 1.X

The dc1394src is a PushSrc element for IIDC cameras based on libdc1394.
The implementation from the 0.x series is deffective:
caps negotiation does not work, and some video formats
provided by the camera are not supported.

Refactor the code to port it to 1.X and enhance the support
for the full set of video options of IIDC cameras:

  - The IIDC specification includes a set of camera video modes
    (video format, frame size, and frame rates).
    They do not map perfectly to Gstreamer formats, but those that
    do not match are very rare (if used at all by any camera).
    In addition, although the specification includes a raw format,
    some cameras use mono video formats to capture in Bayer format.
    Map corresponding video modes to Gstreamer formats in capabilities,
    allowing both gray raw and Bayer video formats for mono video modes.

  - The specification includes scalable video modes (Format7),
    where the frame size and rate can be set to arbitrary values
    (within the limits of the camera and the bus transport).
    Allow the use of such mode, using the frame size and rate
    from the negotiatied caps, and set the camera frame rate
    adjusting the packet size as in:
    <http://damien.douxchamps.net/ieee1394/libdc1394/faq/#How_do_I_set_the_frame_rate>

    The scalable modes also allow for a custom ROI offset.
    Support for it can be easily added later using properties.

  - Camera operation using libdc1394 is as follows:

      1. Enumerate cameras on the system and open the camera
         identified the enumeration index or by a GUID (64bit hex code).

      2. Query the video formats supported by the camera.

      3. Configure the camera for the desired video format.

      4. Setup the capture resources for the configured video format
         and start the camera transmission.

      5. Capture frames from the camera and release them when not used.

      6. Stop the camera transmission and clear the capture resources.

      7. Close the camera freeing its resources.

    Do steps 2 and 3 when getting and setting the caps respectively.
    Ideally 4 and 6 would be done when going from PAUSED to PLAYING
    and viceversa, but since caps might not be set yet, the video mode
    is not properly configured leaving the camera in a broken state.
    Hence, setup capture and start transmission in the set caps method,
    and consequently clear the capture and stop the transmission
    when going from PAUSED to READY (instead of PLAYING to PAUSED).
    Symmetrycally, open the camera when going from READY to PAUSED,
    allowing to probe the camera caps in the negotiation stage.
    Implement that using the `start` and `stop` methods of `GstBaseSrc`,
    instead of the `change-state` method of `GstElement`.
    Stop the camera before setting new caps and restarting it again
    to handle caps reconfiguration while in PLAYING (it has no effect
    if the camera is not started).

  - Create buffers copying the bytes of the captured frames.
    Alternatively, the buffers could just wrap the bytes of the frames,
    releasing the frame in the buffer's destroy notify function,
    if all buffers were destroyed before going from PLAYING to PAUSED.

  - No timestamp nor offset is set when creating buffers.
    Timestamping is delegated to the parent class BaseSrc,
    setting `gst_base_src_set_live` TRUE, `gst_base_src_set_format`
    with GST_FORMAT_TIME and `gst_base_src_set_do_timestamp`.
    Captured frames have a timestamp field with the system time
    at the completion of the transmission of the frame,
    but it is not sure that this comes from a monotonic clock,
    and it seems to be left NULL in Windows.

  - Use GUID and unit properties to select the camera to operate on.
    The camera number used in version 0.X does not uniquely identify
    the device (it depends on the set of cameras currently detected).
    Since the GUID is 64bit identifier (same as MAC address),
    handle it with a string property with its hexadecimal representation.
    For practicality, operate on the first camera available if the GUID
    is null (default) and match any camera unit number if unit is -1.
    Alternatively, the GUID could be handed with an unsigned 64 bit
    integer type property, using `0xffffffffffffffff` as default value
    to select the first camera available (it is not a valid GUID value).

  - Keep name `GstDc1394` and prefix `gst_dc1394` as in version 0.X,
    although `GstDC1394Src` and `gst_dc1394_src` are more descriptive.

  - Adjust build files to reenable the compilation of the plugin.

    Remove dc1394 from the list of unported plugins in configure.ac.

    Add the missing flags and libraries to Makefile.
    Use `$()` for variable substitution, as many plugins do,
    although other plugins use `@@` instead.

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

8 years agoadaptivedemux: Move SEEK handling to a separate function
Edward Hervey [Wed, 8 Jun 2016 16:02:32 +0000 (18:02 +0200)]
adaptivedemux: Move SEEK handling to a separate function

Just for code readability. Doesn't change behaviour

8 years agowebpdec: Wait for segment event before checking it
Nicolas Dufresne [Wed, 8 Jun 2016 01:10:04 +0000 (21:10 -0400)]
webpdec: Wait for segment event before checking it

The heuristic to choose between packetise or not was changed to use the
segment format. The problem is that this change is reading the segment
during the caps event handling. The segment event will only be sent
after. That prevented the decoder to go in packetize mode, and avoid
useless parsing.

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

8 years agovmncdec: Wait for segment event before checking it
Nicolas Dufresne [Wed, 8 Jun 2016 01:04:21 +0000 (21:04 -0400)]
vmncdec: Wait for segment event before checking it

The heuristic to choose between packetise or not was changed to use the
segment format. The problem is that this change is reading the segment
during the caps event handling. The segment event will only be sent
after. That prevented the decoder to go in packetize mode, and avoid
useless parsing.

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

8 years agoopenjpeg: fix builddir != srcdir build, and distcheck
Tim-Philipp Müller [Tue, 7 Jun 2016 13:15:41 +0000 (14:15 +0100)]
openjpeg: fix builddir != srcdir build, and distcheck

8 years agojpeg2000parse: Add JPEG2000 parser element
Aaron Boxer [Wed, 1 Jun 2016 23:02:33 +0000 (19:02 -0400)]
jpeg2000parse: Add JPEG2000 parser element

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

8 years agoopenjpeg: set sampling in the caps
Aaron Boxer [Wed, 1 Jun 2016 23:01:44 +0000 (19:01 -0400)]
openjpeg: set sampling in the caps

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

8 years agompegtsmux: Set PTS on aligned buffers
Jan Alexander Steffens (heftig) [Mon, 2 May 2016 15:38:50 +0000 (17:38 +0200)]
mpegtsmux: Set PTS on aligned buffers

This was broken in 09c05df (make "alignment" property more useful for
packetisation).

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

8 years agovtdec: always drain in ::negotiate
Alessandro Decina [Tue, 7 Jun 2016 07:22:01 +0000 (17:22 +1000)]
vtdec: always drain in ::negotiate

Move calling gst_vtdec_push_frames_if_needed from ::set_format to ::negotiate so
that we always drain even when renegotiation is triggered by downstream.

8 years agovtdec: try to preserve downstream caps order
Alessandro Decina [Tue, 7 Jun 2016 06:00:01 +0000 (16:00 +1000)]
vtdec: try to preserve downstream caps order

vtdec specifies sysmem; GLMemory as template caps. When negotiating, we used to
call gst_pad_peer_query_caps (..., filter) with our template caps as filter. The
query does gst_caps_intersect (filter, peercaps) internally which gives
precedence to the order of the filter caps. While we want to output sysmem by
default, when negotiating with glimagesink which returns GLMemory; sysmem; we
do want to do GL, so we now query using a NULL filter and intersect the result
with our template caps giving precedence to downstream's caps.

tl;dr: make sure we end up negotiating GLMemory with glimagesink

8 years agoahcsrc: Avoid a div by 0 warning
Xavier Claessens [Mon, 6 Jun 2016 18:08:43 +0000 (14:08 -0400)]
ahcsrc: Avoid a div by 0 warning

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

8 years agoamcvideoenc: Do not call gst_object_unref on GstCaps
Xavier Claessens [Mon, 6 Jun 2016 16:38:45 +0000 (12:38 -0400)]
amcvideoenc: Do not call gst_object_unref on GstCaps

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

8 years agoadaptivedemux: Set DISCONT on startup, resume and after seeks
Edward Hervey [Thu, 19 May 2016 09:16:50 +0000 (11:16 +0200)]
adaptivedemux: Set DISCONT on startup, resume and after seeks

Initial buffers after STREAM_START and seeks should always have the
DISCONT flag set.

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

8 years agotsdemux: Change the pad naming scheme to include a generation ID
Jan Schmidt [Tue, 22 Sep 2015 16:51:57 +0000 (02:51 +1000)]
tsdemux: Change the pad naming scheme to include a generation ID

A simple fix for the problem of creating new pads with duplicate
names when switching program, easier than the alternative of
trying to work out which pads might persist and manage that.

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

8 years agoplayer: pause() should not inhibit signals but work exactly like play()
Sebastian Dröge [Mon, 6 Jun 2016 08:13:00 +0000 (11:13 +0300)]
player: pause() should not inhibit signals but work exactly like play()

https://bugzilla.gnome.org/show_bug.cgi?id=766607#c23

8 years agodvbsrc: improve description of PIDs property
Reynaldo H. Verdejo Pinochet [Fri, 3 Jun 2016 22:58:52 +0000 (15:58 -0700)]
dvbsrc: improve description of PIDs property

8 years agoapplemedia: Only use the OpenGL framework on OSX
Edward Hervey [Fri, 3 Jun 2016 05:11:33 +0000 (07:11 +0200)]
applemedia: Only use the OpenGL framework on OSX

It's not available on ios (uses OpenGLES already)

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

8 years agogst-libs: gl, video: use MAY_BE_LEAKED flag
Guillaume Desmottes [Tue, 17 May 2016 14:14:49 +0000 (17:14 +0300)]
gst-libs: gl, video: use MAY_BE_LEAKED flag

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

8 years agoa2dpsink: unref avdtpsink if state transition failed
Guillaume Desmottes [Wed, 18 May 2016 09:48:48 +0000 (12:48 +0300)]
a2dpsink: unref avdtpsink if state transition failed

If for some reason the avdtpsink element can't go READY then the
gsta2dpsink can't either and so should release the ressources it
allocates when trying to do so.

Fix a leak with the generic/states test.

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

8 years agoapplemedia: CGLTexImageIOSurface2D needs the OpenGL framework on OSX
Havard Graff [Sat, 28 May 2016 19:34:52 +0000 (21:34 +0200)]
applemedia: CGLTexImageIOSurface2D needs the OpenGL framework on OSX

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

8 years agoavsamplevideosink: check we are compiling for 10.1 up to 10.4
Havard Graff [Sat, 28 May 2016 19:39:00 +0000 (21:39 +0200)]
avsamplevideosink: check we are compiling for 10.1 up to 10.4

This API was deprecated in 10.4, so don't use it for 10.5 and onwards.

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

8 years agoapplemedia: vtenc: Register a hardware-only vtenc_h264_hw element on OSX
Heinrich Fink [Wed, 1 Jun 2016 11:43:32 +0000 (13:43 +0200)]
applemedia: vtenc: Register a hardware-only vtenc_h264_hw element on OSX

Similar to vtdec_hw, this commit adds a vtenc_h264_hw element that fails
caps negotiation unless a hardware encoder could actually be acquired.
This is useful in situations where a fallback to a software encoder
other than the vtenc_h264 software encoder is desired (e.g. to x264enc).

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

8 years agovtdec: make vtdec_hw fallback to software on renegotiation
Alessandro Decina [Thu, 2 Jun 2016 06:30:02 +0000 (16:30 +1000)]
vtdec: make vtdec_hw fallback to software on renegotiation

When renegotiating mid stream - for example with variable bitrate
streams - and therefore destroying and recreating VTSessions, the
hw decoder might become temporarily unavailable.

To deal with this and avoid erroring out on bitrate changes,
vtdec_hw now falls back to using the software decoder if the hw
one was available at some point but isn't anymore. At
renegotiation/bitrate change time, it will still retry to open
the hardware one.

8 years agovtdec: fix switching from GLMemory to Sysmem
Alessandro Decina [Thu, 2 Jun 2016 03:10:51 +0000 (13:10 +1000)]
vtdec: fix switching from GLMemory to Sysmem

When renegotiating from GLMemory to Sysmem do teardown the texture_cache.

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

8 years agovtdec: optimize renegotiation
Alessandro Decina [Thu, 2 Jun 2016 01:36:57 +0000 (11:36 +1000)]
vtdec: optimize renegotiation

::negotiate can be called several times before the CAPS event is sent downstream
so use the currently configured output state caps instead of the pad current
caps when deciding whether to recreate the VTSession or not.

This leads to creating/destroying less VTSessions which makes renegotiation more
reliable especially when using hw decoding.

8 years agodvbsrc: remove comment on self-explanatory code
Reynaldo H. Verdejo Pinochet [Wed, 1 Jun 2016 20:52:10 +0000 (13:52 -0700)]
dvbsrc: remove comment on self-explanatory code

8 years agodvbsrc: avoid out-bound write on PID filter array
Reynaldo H. Verdejo Pinochet [Wed, 1 Jun 2016 20:18:21 +0000 (13:18 -0700)]
dvbsrc: avoid out-bound write on PID filter array

There's no need for an end-of-list marker in the filter
PIDs array if full, as the absolute maximum number of
elements (MAX_FILTERS) is known.

CID #1362441

8 years agoandroidmedia: fix error debug message when camera doesn't exist
Tim-Philipp Müller [Tue, 31 May 2016 19:41:14 +0000 (20:41 +0100)]
androidmedia: fix error debug message when camera doesn't exist

Makes no sense to include the system error here since errno
will likely not be set and then it says 'system error: success'
which is confusing.

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

8 years agoahcsrc: release resources in 'finalize' function
Justin Kim [Tue, 31 May 2016 09:58:43 +0000 (18:58 +0900)]
ahcsrc: release resources in 'finalize' function

In general, 'dispose' function is used for dropping all references
and 'finalize' is called for releasing instances.

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

8 years agoplayer: inhibit signals after gst_player_stop() has been called
Guillaume Desmottes [Wed, 25 May 2016 13:01:31 +0000 (15:01 +0200)]
player: inhibit signals after gst_player_stop() has been called

Also wait for the state change to STOP to have been announced before
destroying the player so it won't appear as leaked by leak detector
tools.

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

8 years agoplayer: handle uri-loaded in test
Guillaume Desmottes [Wed, 25 May 2016 10:48:13 +0000 (12:48 +0200)]
player: handle uri-loaded in test

Had to adapt the existing tests because of this new callback.

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

8 years agoh265parse: Don't assume contiguous id's in make_codec_data
Scott D Phillips [Wed, 25 May 2016 23:57:49 +0000 (16:57 -0700)]
h265parse: Don't assume contiguous id's in make_codec_data

vps/sps/pps id's are not required to be used contiguously.

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

8 years agodvbsrc: add sample ATSC launch line
Reynaldo H. Verdejo Pinochet [Sat, 28 May 2016 08:22:32 +0000 (01:22 -0700)]
dvbsrc: add sample ATSC launch line

8 years agogl: glquery: cast to silence compiler warning
Havard Graff [Sat, 28 May 2016 19:36:04 +0000 (21:36 +0200)]
gl: glquery: cast to silence compiler warning

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

8 years agogltestsrc: gltestsrc.h already defines GstGLTestSrc
Havard Graff [Sat, 28 May 2016 19:35:37 +0000 (21:35 +0200)]
gltestsrc: gltestsrc.h already defines GstGLTestSrc

And redefinition is not allowed.

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

8 years agoplayer: use correct _NONE enum
Havard Graff [Fri, 27 May 2016 21:24:54 +0000 (23:24 +0200)]
player: use correct _NONE enum

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

8 years agoh264parser: maintain minimal ABI compat
Tim-Philipp Müller [Sat, 28 May 2016 09:44:04 +0000 (10:44 +0100)]
h264parser: maintain minimal ABI compat

Because we can.

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

8 years agoh264parser: Remove unused fps_num/fps_den fields
Sebastian Dröge [Thu, 22 May 2014 14:12:01 +0000 (16:12 +0200)]
h264parser: Remove unused fps_num/fps_den fields

Instead the newly added function should be used to calculate
the framerate properly.

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

8 years agosmoothstreaming: update fps calculation for h264 codec parser API changes
Tim-Philipp Müller [Wed, 25 May 2016 09:59:00 +0000 (10:59 +0100)]
smoothstreaming: update fps calculation for h264 codec parser API changes

Use new gst_h264_video_calculate_framerate() API instead of fps_n/fps_d
fields in SPS struct which are to be removed.

Apparently H264 content in MSS is always non-interlaced/progressive,
so we can just pass 0 for field_pic_flag and don't need to parse any
slice headers first if there's no external signalling. But even if
that's not the case the new code is not worse than the existing code.

https://msdn.microsoft.com/en-us/library/cc189080%28VS.95%29.aspx

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

8 years agodvbsrc: use single marker at end of filtering PID list
Reynaldo H. Verdejo Pinochet [Thu, 26 May 2016 17:28:14 +0000 (10:28 -0700)]
dvbsrc: use single marker at end of filtering PID list

Avoids at least ~100 unneeded assignment operations at runtime

8 years agodvbsrc: simplify reporting of set polarity
Reynaldo H. Verdejo Pinochet [Mon, 23 May 2016 23:31:05 +0000 (16:31 -0700)]
dvbsrc: simplify reporting of set polarity

8 years agodvbsrc: fix bandwidth-hz property description
Reynaldo H. Verdejo Pinochet [Mon, 23 May 2016 21:41:40 +0000 (14:41 -0700)]
dvbsrc: fix bandwidth-hz property description

Bandwidth Hz is no longer a DVBT-only property

8 years agodvbsrc: fix usage of PES & DVR acronyms everywhere
Reynaldo H. Verdejo Pinochet [Mon, 23 May 2016 21:02:10 +0000 (14:02 -0700)]
dvbsrc: fix usage of PES & DVR acronyms everywhere

Additionally, improve message on gst_poll_new() failure

8 years agogldisplay: always unref the context on a collision
Matthew Waters [Thu, 26 May 2016 10:16:07 +0000 (20:16 +1000)]
gldisplay: always unref the context on a collision

Otherwise we will leak GstGLContext's when adding the same context more than
once.

Fixes a regression caused by 5f9d10f6036068502ad23e1ec86a73e341801ae1 in the
gstglcontext unit test that failed with:

Assertion 'tmp == NULL' failed

8 years agoRevert "aggregator: Start the task when linked"
Nicolas Dufresne [Wed, 25 May 2016 17:38:47 +0000 (13:38 -0400)]
Revert "aggregator: Start the task when linked"

This reverts commit 302580c3815136d29479c3a8cae611d6e2ff3709.

8 years agocaopengllayersink: Don't cache buffer pool
Nicolas Dufresne [Fri, 20 May 2016 18:34:37 +0000 (14:34 -0400)]
caopengllayersink: Don't cache buffer pool

Pools cannot be used by the two elements at the same time.

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

8 years agoaggregator: Start the task when linked
Nicolas Dufresne [Wed, 13 Apr 2016 20:30:28 +0000 (16:30 -0400)]
aggregator: Start the task when linked

Until now we would start the task when the pad is activated. Part of the
activiation concist of testing if the pipeline is live or not.
Unfortunatly, this is often too soon, as it's likely that the pad get
activated before it is fully linked in dynamic pipeline.

Instead, start the task when the first serialized event arrive. This is
a safe moment as we know that the upstream chain is complete and just
like the pad activation, the pads are locked, hence cannot change.

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

8 years agogl: win32: Add debug category in gstglcontext_wgl.c
Xavier Claessens [Wed, 25 May 2016 13:09:01 +0000 (09:09 -0400)]
gl: win32: Add debug category in gstglcontext_wgl.c

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

8 years agoglimagesink: support video rotation using transform matrix
Haihua Hu [Mon, 16 May 2016 12:02:28 +0000 (20:02 +0800)]
glimagesink: support video rotation using transform matrix

Add "rotate-method" to glimagesink and apply transform matrix
to vertex coordinate to control rotation.

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

8 years agoglvideomixer: fix race retrieving the GL context from the display
Matthew Waters [Tue, 24 May 2016 13:39:27 +0000 (23:39 +1000)]
glvideomixer: fix race retrieving the GL context from the display

_get_gl_context() can be called concurrently from either propose_allocation() or
decide_allocation().  If it so happens that this happens at the same time,
the check for whether we already had a GL context was outside the lock.  Inside
the lock and loop, the first thing that happens is that we unref the current GL
context (if valid) as if there was a conflict adding it to the display.  If the
timing was unlucky, subsequent use of the GL context would be referencing an
already unreffed GL context object resulting in a critical:

g_object_ref: assertion 'object->ref_count > 0' failed

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

8 years agogldisplay: add some debugging about retrieving GL contexts
Matthew Waters [Tue, 24 May 2016 13:38:22 +0000 (23:38 +1000)]
gldisplay: add some debugging about retrieving GL contexts

8 years agoeglimage: Re-add accidentially removed GST_DEFINE_MINI_OBJECT_TYPE()
Sebastian Dröge [Wed, 25 May 2016 07:01:38 +0000 (10:01 +0300)]
eglimage: Re-add accidentially removed GST_DEFINE_MINI_OBJECT_TYPE()

8 years agoplayer: fix suburi getter debug message
Guillaume Desmottes [Mon, 23 May 2016 12:24:53 +0000 (15:24 +0300)]
player: fix suburi getter debug message

The property is a string, not a boolean.

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