platform/upstream/gstreamer.git
8 years agoRelease 1.7.90
Sebastian Dröge [Tue, 1 Mar 2016 16:23:36 +0000 (18:23 +0200)]
Release 1.7.90

8 years agoUpdate .po files
Sebastian Dröge [Tue, 1 Mar 2016 15:10:28 +0000 (17:10 +0200)]
Update .po files

8 years agopo: Update translations
Sebastian Dröge [Tue, 1 Mar 2016 14:53:50 +0000 (16:53 +0200)]
po: Update translations

8 years agovideoparsers: h264: Disable passthorugh mode enabling
Sreerenj Balachandran [Mon, 29 Feb 2016 10:35:58 +0000 (12:35 +0200)]
videoparsers: h264: Disable passthorugh mode enabling

Enabling passthorugh mode is causing multiple issue:
For nal aligned multiresoluton streams, passthrough mode
make h264parse unable to advertise the new resoultions.
Also causing issues while parsing MVC streams which have two
separate layers (base-view and non-base-view).

This fix is only a temporary workaround.

For MVC, proper fixes needed in many places:
(handle prefix nal unit, handle non-base-view slice nal extension,
fix the picture_start detection for multi-layer-mvc streams etc)

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

8 years agosdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned...
Sebastian Dröge [Mon, 29 Feb 2016 09:53:19 +0000 (11:53 +0200)]
sdpdemux: Set caps to application/x-rtp instead of application/x-unknown as returned by the SDP helpers

The SDP helpers can't know if this is going to be RTP, SRTP, or ....

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

8 years agosdpdemux: Add pads with the correct names in case an rtpbin is used
Sebastian Dröge [Mon, 29 Feb 2016 09:51:28 +0000 (11:51 +0200)]
sdpdemux: Add pads with the correct names in case an rtpbin is used

They're supposed to be stream_%u and not recv_rtp_src_%u_%u_%u.

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

8 years agovkswapper/vkutils: Fix gerror memory leak
Vineeth TM [Mon, 29 Feb 2016 01:38:32 +0000 (10:38 +0900)]
vkswapper/vkutils: Fix gerror memory leak

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

8 years agovkdevice: Fix duplicate assignment of queue variable
Vineeth TM [Mon, 29 Feb 2016 01:37:11 +0000 (10:37 +0900)]
vkdevice: Fix duplicate assignment of queue variable

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

8 years agovksink: Fix GError memory leak
Vineeth TM [Mon, 29 Feb 2016 01:33:45 +0000 (10:33 +0900)]
vksink: Fix GError memory leak

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

8 years agowin32: update exports for new libgstgl function
Tim-Philipp Müller [Sun, 28 Feb 2016 14:06:14 +0000 (14:06 +0000)]
win32: update exports for new libgstgl function

8 years agoamcvideodec: When outputting on a surface, accept all color formats
Sebastian Dröge [Sun, 28 Feb 2016 08:12:01 +0000 (10:12 +0200)]
amcvideodec: When outputting on a surface, accept all color formats

We don't have to understand them, we handle them as a GL texture.

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

8 years agoadaptivedemux: handle snap seeking without setting any position
Thiago Santos [Fri, 26 Feb 2016 21:17:37 +0000 (18:17 -0300)]
adaptivedemux: handle snap seeking without setting any position

When the start_type is GST_SEEK_TYPE_NONE for a forward seek
(or stop_type for a reverse) is not set on a snap seeking operation,
the element should use the current position and then snap as requested.

Also fixes uninitialized variable complaint by clang about
'ts' variable.

8 years agodashdemux: sync index and the selected chunk when seeking
Thiago Santos [Fri, 26 Feb 2016 20:31:44 +0000 (17:31 -0300)]
dashdemux: sync index and the selected chunk when seeking

Otherwise the chunk selected isn't matched to the index and
the timing will be different, causing it to actually start
from a different position

8 years agoAutomatic update of common submodule
Sebastian Dröge [Fri, 26 Feb 2016 10:41:13 +0000 (12:41 +0200)]
Automatic update of common submodule

From a253974 to 6f2d209

8 years agoeglimagememory: add compatibility definitions for EGL dmabuf
Matthew Waters [Wed, 17 Feb 2016 09:13:21 +0000 (20:13 +1100)]
eglimagememory: add compatibility definitions for EGL dmabuf

e.g. the RPi doesn't have them defined

8 years agoopus: rename plugin to opusparse for the time being
Tim-Philipp Müller [Fri, 26 Feb 2016 00:35:30 +0000 (00:35 +0000)]
opus: rename plugin to opusparse for the time being

Until we fix it up and get rid of the opus dependency and
move it elsewhere too.

8 years agoopus: remove Opus encoder/decoder, moved to -base
Tim-Philipp Müller [Fri, 19 Feb 2016 00:38:33 +0000 (00:38 +0000)]
opus: remove Opus encoder/decoder, moved to -base

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

8 years agoglcontext: add a method to add a context to another share group
Matthew Waters [Thu, 25 Feb 2016 21:34:11 +0000 (08:34 +1100)]
glcontext: add a method to add a context to another share group

Intended for use with wrapped contexts that are created shared with gst's
gl contexts in order to manage the internal sharegroup state correctly.

e.g. with caopengllayer (which is used in glimagesink and caopengllayersink
on OS X), we create a CGL context from the gst context and the sharing state
was not being correctly set on either GL context and gst_gl_context_is_shared()
was always returning FALSE.

With 11fb4fff80b63b9d67a731d4bb238b6c0a29d774 only flushing with multiple
shared contexts, the required flush was not occuring causing screen
corruption or stuttering.

Note: this didn't affect GST_GL_API=opengl pipelines

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

8 years agoopus: remove Opus RTP elements, they have moved to -good
Tim-Philipp Müller [Wed, 17 Feb 2016 15:20:47 +0000 (15:20 +0000)]
opus: remove Opus RTP elements, they have moved to -good

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

8 years agohlsdemux: tests: pass test name into test setup function
Alex Ashley [Mon, 18 Jan 2016 08:50:34 +0000 (08:50 +0000)]
hlsdemux: tests: pass test name into test setup function

All hlsdemux tests create a GstStructure called "state" that can be used
by test cases to store information during a test. The name of this
structure is arbitrary. When the code was written, the intention was
to use the name of the test, to aid debugging. However, during
development this was lost, so that the state GstStructure is always
given the name "setup_test_variables".

This commit changes this so that the name of the test is used.

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

8 years agotests: compositor: drop special case for valgrind timeout
Thiago Santos [Tue, 23 Feb 2016 15:42:19 +0000 (12:42 -0300)]
tests: compositor: drop special case for valgrind timeout

The default one is 6 minutes, the test was using 5 minutes so just
resort to using the default.

For the non-valgrind test also use the default 20 secs instead of
reducing it to 6s. No real reason to set a custom value here.

8 years agotests: compositor: add tests for caps queries
Thiago Santos [Tue, 23 Feb 2016 15:17:59 +0000 (12:17 -0300)]
tests: compositor: add tests for caps queries

Verifies that proper caps are returned based on what downstream
restricts.

8 years agovideoaggregator: fix caps queries to allow proper renegotiation
Thiago Santos [Thu, 18 Feb 2016 13:57:51 +0000 (10:57 -0300)]
videoaggregator: fix caps queries to allow proper renegotiation

When caps are already negotiated it should be possible to
select formats other than the one that was negotiated. If downstream
allows alpha video caps and it has already negotiated to a non-alpha
format, caps queries should still return the alpha caps as a possible
format as caps renegotiation can happen.

Includes tests (for compositor) to check that caps queries done after
a caps has been negotiated returns complete results

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

8 years agovtdec: Negotiate the decoder in set_format() already
Sebastian Dröge [Wed, 24 Feb 2016 15:07:17 +0000 (17:07 +0200)]
vtdec: Negotiate the decoder in set_format() already

Don't wait until later, we want to know here if the codec can be opened or not
for the requested format. This was removed (accidentially?) by
  119e09eac315f79ac2cf45b4441ad1d932130614

Without this decodebin has no way to switch to a different decoder if this one
does not work.

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

8 years agoavfvideosrc: Frame durations as CTime to the API, not double
Joe Gorse [Thu, 25 Feb 2016 09:34:40 +0000 (11:34 +0200)]
avfvideosrc: Frame durations as CTime to the API, not double

Newer iOS seems to automatically convert, older iOS/OSX just crashes.

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

8 years agonvenc: release the frames and list when searching for an output buffer
Matthew Waters [Wed, 24 Feb 2016 12:48:19 +0000 (23:48 +1100)]
nvenc: release the frames and  list when searching for an output buffer

Fixes a massive leak in:

videotestsrc ! nvh264enc ! fakesink

8 years agoqt: use a static_cast instead of dynamic one
Matthew Waters [Tue, 23 Feb 2016 12:10:20 +0000 (23:10 +1100)]
qt: use a static_cast instead of dynamic one

The dynamic_cast is a little but of overkill as the app will still crash if it
fails in the later g_assert.

Allows compilation with -fno-rtti

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

8 years agoglmixer: iterator didn't advance in continue statement
Wang Xin-yu (王昕宇) [Wed, 24 Feb 2016 02:45:17 +0000 (10:45 +0800)]
glmixer: iterator didn't advance in continue statement

Leading to a deadlock.

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

8 years agodataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_curr...
Sebastian Dröge [Tue, 23 Feb 2016 16:17:42 +0000 (18:17 +0200)]
dataurisrc: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()

Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

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

8 years agodisparity: Don't assume that get_current_caps() returns non-NULL caps after has_curre...
Dave Craig [Tue, 23 Feb 2016 16:13:37 +0000 (18:13 +0200)]
disparity: Don't assume that get_current_caps() returns non-NULL caps after has_current_caps()

Remove calls to gst_pad_has_current_caps() which then go on to call
gst_pad_get_current_caps() as the caps can go to NULL in between. Instead just
use gst_pad_get_current_caps() and check for NULL.

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

8 years agodashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the date string
Florin Apostol [Tue, 23 Feb 2016 10:49:40 +0000 (10:49 +0000)]
dashdemux: correctly handle an HTTP-XSDATE that is exactly the size of the date string

The code in the gst_dash_demux_parse_http_xsdate() was trying to
handle the case where the string is not null terminated by resizing
the buffer and appending a zero byte. This does not work if the buffer
is exactly the length of the string because the gst_buffer_resize()
function does not re-allocate the buffer, it just changes its size.

If a buffer is passed to gst_dash_demux_parse_http_xsdate() that is
exactly the length of the string, the function fails with an assert
failure in gst_buffer_resize().

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

8 years agodocs: Add audiointerleave
Sebastian Dröge [Tue, 23 Feb 2016 09:59:52 +0000 (11:59 +0200)]
docs: Add audiointerleave

8 years agofbdevsink: fix bytes per pixel calculation
Peter Seiderer [Mon, 22 Feb 2016 09:21:47 +0000 (10:21 +0100)]
fbdevsink: fix bytes per pixel calculation

Simple pipeline

$ gst-launch-1.0 videotestsrc ! fbdevsink

crashes with SIGSEGV in case the frambuffer xres is smaller
than the virtual xres resolution, e.g.:

$ fbset

  mode "800x480-0"
          # D: 0.000 MHz, H: 0.000 kHz, V: 0.000 Hz
          geometry 800 480 1920 1200 16
          timings 0 0 0 0 0 0 0
          accel true
          rgba 5/11,6/5,5/0,0/0
  endmode

Debug:
$ gdb gst-launch-1.0
  (gdb) run videotestsrc ! fbdevsink
  (gdb) where
  #0  0xb6bd2d24 in __memcpy_neon ()
      at ../sysdeps/arm/armv7/multiarch/memcpy_impl.S:591
  #1  0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378,
      buf=0xb5c08838) at gstfbdevsink.c:269
  #2  0xb69e88c4 in gst_base_sink_do_preroll (sink=sink@entry=0x10a3378,
      obj=0xb5c08838, obj@entry=0xa0) at gstbasesink.c:2281
  #3  0xb69e92bc in gst_base_sink_do_sync (basesink=basesink@entry=0x10a3378,
      obj=0xa0, obj@entry=0xb5c08838, late=0x0, late@entry=0xb6548ba0,
      step_end=0x140, step_end@entry=0xb6548ba4) at gstbasesink.c:2500
  #4  0xb69ea67c in gst_base_sink_chain_unlocked (
      basesink=basesink@entry=0x10a3378, obj=0x0, obj@entry=0xb5c08838,
      is_list=is_list@entry=0, pad=<optimized out>) at gstbasesink.c:3486
  #5  0xb69ec1c0 in gst_base_sink_chain_main (basesink=0x10a3378,
      pad=<optimized out>, obj=0xb5c08838, is_list=0) at gstbasesink.c:3647
  #6  0xb6eb5b10 in gst_pad_chain_data_unchecked (pad=0x10a6170,
      type=<optimized out>, data=0xb5c08838) at gstpad.c:4086
  #7  0xb6eb7a34 in gst_pad_push_data (pad=pad@entry=0x10a6020,
      type=type@entry=4112, data=0xb5c08838) at gstpad.c:4338
  #8  0xb6ebf344 in gst_pad_push (pad=pad@entry=0x10a6020,
      buffer=<optimized out>) at gstpad.c:4454
  #9  0xb69f22f0 in gst_base_src_loop (pad=0x10a6020) at gstbasesrc.c:2845
  #10 0xb6eeddfc in gst_task_func (task=0x10a8828) at gsttask.c:331
  #11 0xb6d485a0 in g_thread_pool_thread_proxy (data=<optimized out>)
   at gthreadpoQuit
  (gdb) frame 1
  #1  0xb69b04e8 in gst_fbdevsink_show_frame (videosink=0x10a3378,
      buf=0xb5c08838) at gstfbdevsink.c:269
  269     gstfbdevsink.c: No such file or directory.
  (gdb) p fbdevsink
  $1 = (GstFBDEVSink *) 0x10a3378
  (gdb) p *fbdevsink
  $2 = {videosink = {element = {element = {object = {object = {
              g_type_instance = {g_class = 0x10a2d60}, ref_count = 3,
              qdata = 0x0}, lock = {p = 0x0, i = {0, 0}},
            name = 0x10a2f30 "fbdevsink0", parent = 0x10a70a0, flags = 32,
            control_bindings = 0x0, control_rate = 100000000,
            last_sync = 18446744073709551615, _gst_reserved = 0x0},
          state_lock = {p = 0x109f9a8, i = {0, 0}}, state_cond = {p = 0x0, i = {
              3, 0}}, state_cookie = 2, target_state = GST_STATE_PAUSED,
          current_state = GST_STATE_READY, next_state = GST_STATE_PAUSED,
          pending_state = GST_STATE_PAUSED,
          last_return = GST_STATE_CHANGE_ASYNC, bus = 0x108bcb8, clock = 0x0,
          base_time = 0, start_time = 0, numpads = 1, pads = 0x109cc20,
          numsrcpads = 0, srcpads = 0x0, numsinkpads = 1, sinkpads = 0x109cc30,
          pads_cookie = 1, _gst_reserved = {0x0, 0x0, 0x0, 0x0}},
        sinkpad = 0x10a6170, pad_mode = GST_PAD_MODE_PUSH, offset = 0,
        can_activate_pull = 0, can_activate_push = 1, preroll_lock = {p = 0x1,
          i = {1, 0}}, preroll_cond = {p = 0x0, i = {0, 0}}, eos = 0,
        need_preroll = 1, have_preroll = 0, playing_async = 1,
        have_newsegment = 1, segment = {flags = GST_SEGMENT_FLAG_NONE, rate = 1,
          applied_rate = 1, format = GST_FORMAT_TIME, base = 0, offset = 0,
          start = 0, stop = 18446744073709551615, time = 0, position = 33333333,
          duration = 18446744073709551615, _gst_reserved = {0x0, 0x0, 0x0,
            0x0}}, clock_id = 0x0, sync = 1, flushing = 0, running = 0,
        max_lateness = 20000000, priv = 0x10a3188, _gst_reserved = {
          0x0 <repeats 20 times>}}, width = 0, height = 0, priv = 0x10a3180,
      _gst_reserved = {0x0, 0x0, 0x0, 0x0}}, fixinfo = {
      id = '\000' <repeats 15 times>, smem_start = 1078984704,
      smem_len = 4608000, type = 0, type_aux = 0, visual = 2, xpanstep = 1,
      ypanstep = 1, ywrapstep = 0, line_length = 3840, mmio_start = 0,
      mmio_len = 0, accel = 0, capabilities = 0, reserved = {0, 0}}, varinfo = {
    xres = 800, yres = 480, xres_virtual = 1920, yres_virtual = 1200,
    xoffset = 0, yoffset = 0, bits_per_pixel = 16, grayscale = 0, red = {
      offset = 11, length = 5, msb_right = 0}, green = {offset = 5,
      length = 6, msb_right = 0}, blue = {offset = 0, length = 5,
      msb_right = 0}, transp = {offset = 0, length = 0, msb_right = 0},
      nonstd = 0, activate = 0, height = 4294967295, width = 4294967295,
      accel_flags = 1, pixclock = 0, left_margin = 0, right_margin = 0,
      upper_margin = 0, lower_margin = 0, hsync_len = 0, vsync_len = 0,
      sync = 0, vmode = 0, rotate = 0, colorspace = 0, reserved = {0, 0, 0, 0}},
    fd = 5,
    framebuffer = 0xb654a000 <error: Cannot access memory at address 0xb654a000>, device = 0x10a38d8 "/dev/fb0", width = 320, height = 240, cx = 240, cy = 120,
    linelen = 1280, lines = 240, bytespp = 4, fps_n = 30, fps_d = 1}
  (gdb) p map
  $3 = {memory = 0xb5d24008, flags = GST_MAP_READ,
    data = 0xb5d24058 '\377' <repeats 90 times>, "\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\340\377\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a\377\a"...,
    size = 153600, maxsize = 153603, user_data = {0x0,
      0xb69e3ba4 <gst_base_sink_set_last_buffer_unlocked+92>, 0x10a3378, 0x0},
    _gst_reserved = {0x1, 0x10a3378, 0xb6f50dd8 <_gst_debug_min>, 0xb5c08838}}
  (gdb) p i
  $4 = 121

Fix this by changing the fbdevsink->bytespp calculation using
the frame buffer xres_virtual size instead of xres.

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

8 years agoplayer: Expose more GstVideoOverlay API in the GstPlayerVideoOverlayVideoRenderer
Sebastian Dröge [Mon, 22 Feb 2016 10:53:00 +0000 (12:53 +0200)]
player: Expose more GstVideoOverlay API in the GstPlayerVideoOverlayVideoRenderer

Expose the expose() and set_render_rectangle() methods. These are useful for
proper functioning of the video overlay in various situations and toolkits.

8 years agogl: fix the build
Matthew Waters [Mon, 22 Feb 2016 10:03:14 +0000 (21:03 +1100)]
gl: fix the build

2d287812 was incomplete

8 years agogl: error out if the configured GL API is unsupported by our element
Matthew Waters [Mon, 22 Feb 2016 09:49:52 +0000 (20:49 +1100)]
gl: error out if the configured GL API is unsupported by our element

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

8 years agoqmlglsink: Schedule onSceneGrpahInitialized to execute on render thread
Sergey Borovkov [Sun, 24 Jan 2016 14:40:37 +0000 (17:40 +0300)]
qmlglsink: Schedule onSceneGrpahInitialized to execute on render thread

onSceneGraphInitialized() is called from non render thread currently when
scene graph is already initialized.

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

8 years agoaiffparse: fix negotiation errors with multi-channel files
Tim-Philipp Müller [Thu, 7 Jan 2016 18:26:26 +0000 (18:26 +0000)]
aiffparse: fix negotiation errors with multi-channel files

Set fallback channel layout on files with more than two
channels. Not clear where to retrieve the real layout from
or what the default layout is for AIFF files, the spec
only seems to specify some layout for up to 6 channels
and the file in question doesn't have a CHAN chunk.

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

8 years agowin32: remove outdated build cruft
Tim-Philipp Müller [Sun, 21 Feb 2016 10:34:56 +0000 (10:34 +0000)]
win32: remove outdated build cruft

This hasn't been touched for generations, doesn't work,
and is just causing confusion. We also don't want to
maintain these files manually.

8 years agodaala: don't use exported but undeclared core debug category symbols
Tim-Philipp Müller [Sat, 20 Feb 2016 12:55:08 +0000 (12:55 +0000)]
daala: don't use exported but undeclared core debug category symbols

It's not right and won't work on Windows with MSVC.

8 years agocodecparsers: h265: Fix initialization of slice_deblocking_filter_disabled_flag
Scott D Phillips [Fri, 19 Feb 2016 22:27:59 +0000 (14:27 -0800)]
codecparsers: h265: Fix initialization of slice_deblocking_filter_disabled_flag

H.265 7.4.7.1 says:

> When slice_deblocking_filter_disabled_flag is not present, it is
> inferred to be equal to pps_deblocking_filter_disabled_flag.

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

8 years agompeg4parser: prevent assertion when scanning for sync code
Thiago Santos [Fri, 19 Feb 2016 19:40:54 +0000 (16:40 -0300)]
mpeg4parser: prevent assertion when scanning for sync code

Only search if there is indeed enough data to be searched otherwise
an assertion is raised

8 years agotsparse: Fix per-program-pad pushing
Edward Hervey [Fri, 19 Feb 2016 16:48:55 +0000 (17:48 +0100)]
tsparse: Fix per-program-pad pushing

This fixes a couple of issues regarding the output of (request)
per-program pads output:

We would never push out PAT sections (ok, that was one reallly stupid
mistake. I guess nobody ever uses this feature ...).

In the case where the PMT section of a program was bigger than one
packet, we would only end up pushing the last packet of that PMT. Which
obviously results in the resulting stream never containing the proper
(complete) PMT.

The problem was that the program is only started (in the base class)
after the PMT section is completely parsed. When dealing with single-program
pads, tsparse only wants to push the PMT corresponding to the requested
program (and not the other ones). tsparse did that check by looking
at the streams of the program...
... but that program doesn't exist for the first packets of the initial
PMT.

The fix is to use the base class program information (if it parsed the
PAT it already has some information, like the PMT PID for a given program)
if the program hasn't started yet.

8 years agotsparse: Use GstFlowCombiner
Edward Hervey [Fri, 19 Feb 2016 16:45:26 +0000 (17:45 +0100)]
tsparse: Use GstFlowCombiner

In addition to the fact that it's a sane thing to do for multi-source
pad elements, it also avoids the situation where just using a request
pad (and not the main static pad) would result in the processing
stopping.

8 years agoBack to development
Sebastian Dröge [Fri, 19 Feb 2016 10:38:31 +0000 (12:38 +0200)]
Back to development

8 years agoRelease 1.7.2
Sebastian Dröge [Fri, 19 Feb 2016 09:50:25 +0000 (11:50 +0200)]
Release 1.7.2

8 years agopo: Update translations
Sebastian Dröge [Fri, 19 Feb 2016 08:32:28 +0000 (10:32 +0200)]
po: Update translations

8 years agouninstalled.pc: add support for non libtool build systems
Julien Isorce [Thu, 18 Feb 2016 14:32:23 +0000 (14:32 +0000)]
uninstalled.pc: add support for non libtool build systems

Currently the .la path is provided which requires to use libtool as
mentioned in the GStreamer manual section-helloworld-compilerun.html.
It is fine as long as the application is built using libtool.

So currently it is not possible to compile a GStreamer application
within gst-uninstalled with CMake or other build system different
than autotools.

This patch allows to do the following in gst-uninstalled env:
gcc test.c -o test $(pkg-config --cflags --libs gstreamer-1.0 \
    gstreamer-gl-1.0)
Previously it required to prepend libtool --mode=link

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

8 years agogldebug: make sure debug is initialized when calling gst_gl_insert_debug_marker
Julien Isorce [Thu, 18 Feb 2016 16:21:38 +0000 (16:21 +0000)]
gldebug: make sure debug is initialized when calling gst_gl_insert_debug_marker

Usually gl debug is initialized in gst_gl_context_create_thread.
But this function is not used when using the GstGLContextGPUProcess
from ChromiumGStreamerBackend.

Received signal 11 SEGV_MAPERR 000000000000
gst_debug_category_get_threshold
gst_gl_insert_debug_marker
gst_gl_base_filter_gl_start

8 years agogl: Fix compiler warning about unused const variable with gcc 6
Sebastian Dröge [Thu, 18 Feb 2016 08:33:20 +0000 (10:33 +0200)]
gl: Fix compiler warning about unused const variable with gcc 6

  CC       libgstgl_x11_la-gstglcontext_glx.lo
In file included from gstglcontext_glx.c:39:0:
../utils/opengl_versions.h:52:43: error: ‘gles2_versions’ defined but not used [-Werror=unused-const-variable]
 static const struct { int major, minor; } gles2_versions[] = {
                                           ^~~~~~~~~~~~~~

8 years agogl: Move private headers from SOURCES to noinst_HEADERS
Sebastian Dröge [Thu, 18 Feb 2016 08:29:21 +0000 (10:29 +0200)]
gl: Move private headers from SOURCES to noinst_HEADERS

8 years agomodplug: Fix compiler warning about C++11 compatibility
Sebastian Dröge [Wed, 17 Feb 2016 22:24:04 +0000 (00:24 +0200)]
modplug: Fix compiler warning about C++11 compatibility

gstmodplug.cc:94:17: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE (S32)", "GST_AUDIO_NE (S16)", U8 }"
                 ^
gstmodplug.cc:94:39: error: invalid suffix on literal; C++11 requires a space between literal and string macro [-Werror=literal-suffix]
 #define FORMATS "{ "GST_AUDIO_NE (S32)", "GST_AUDIO_NE (S16)", U8 }"
                                       ^

8 years agocurlbasesink: don't send empty buffers
David Fernandez [Tue, 16 Feb 2016 14:10:34 +0000 (15:10 +0100)]
curlbasesink: don't send empty buffers

Fixes problem in curlhttpsink when qtmux uses faststart.

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

8 years agoladspa: Fix some debugs
Thibault Saunier [Wed, 17 Feb 2016 10:16:53 +0000 (11:16 +0100)]
ladspa: Fix some debugs

8 years agouvch264_src: Fix caps memory leak
Vineeth TM [Tue, 26 Jan 2016 00:34:00 +0000 (09:34 +0900)]
uvch264_src: Fix caps memory leak

v4l_caps and new_caps are being allocated new memory before freeing the
old allocation.

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

8 years agompegtsbase: Refactor code to check for subclass seek handling
Vineeth TM [Thu, 24 Dec 2015 06:36:54 +0000 (15:36 +0900)]
mpegtsbase: Refactor code to check for subclass seek handling

If subclass is not able to handle seek event, then there is no need to
stop streaming and send flush events. We should simply return FALSE

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

8 years agompegtsbase: Add condition to check for non working negative rate
Vineeth TM [Thu, 24 Dec 2015 06:10:16 +0000 (15:10 +0900)]
mpegtsbase: Add condition to check for non working negative rate

tsdemux is not able to handle negative playback rates.
But in mpegtsbase, the same check is not being done.
added a check to not handle negative rate while seeking unless
the same is handled upstream.

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

8 years agoglfilter: insert the debug marker from the GL thread
Matthew Waters [Wed, 17 Feb 2016 02:00:46 +0000 (13:00 +1100)]
glfilter: insert the debug marker from the GL thread

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

8 years agoglimagesink: remove unsed reconfigure variable
Matthew Waters [Wed, 17 Feb 2016 00:42:23 +0000 (11:42 +1100)]
glimagesink: remove unsed reconfigure variable

8 years agoglimagesink: don't push a reconfigure event from the GL thread
Matthew Waters [Wed, 13 Jan 2016 02:17:56 +0000 (13:17 +1100)]
glimagesink: don't push a reconfigure event from the GL thread

Doing so may cause deadlocks when other elements attempt destroy or created
GL resources.

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

8 years agoglvideomixer: don't leak pad's vertex buffer on release_pad
Wang Xin-yu (王昕宇) [Thu, 21 Jan 2016 02:40:36 +0000 (10:40 +0800)]
glvideomixer: don't leak pad's vertex buffer on release_pad

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

8 years agoglmixer: Remove usage of GstGLMixerFrameData
Matthew Waters [Tue, 16 Feb 2016 14:08:18 +0000 (01:08 +1100)]
glmixer: Remove usage of GstGLMixerFrameData

Subclasses can just iterate over the list of pads themselves

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

8 years agoglmixer: don't hold the object lock while calling into GL
Matthew Waters [Wed, 13 Jan 2016 03:41:22 +0000 (14:41 +1100)]
glmixer: don't hold the object lock while calling into GL

Doing so can deadlock between the GL thread and the object lock e.g.
when performing reconfigure events in glimagesink on a resize event.

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

8 years agoUpdate common: make check-exports not fail for libgstgl.def
Tim-Philipp Müller [Tue, 16 Feb 2016 22:34:43 +0000 (22:34 +0000)]
Update common: make check-exports not fail for libgstgl.def

Should fix distcheck on some build bots.

8 years agoacmenc/acmmp3dec: remove unnecessary break after return
Vineeth TM [Tue, 26 Jan 2016 00:37:04 +0000 (09:37 +0900)]
acmenc/acmmp3dec: remove unnecessary break after return

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

8 years agoconfigure: improve check for wayland-scanner binary
Thiago Santos [Tue, 21 Jul 2015 21:02:38 +0000 (18:02 -0300)]
configure: improve check for wayland-scanner binary

The plugin doesn't need the wayland-scanner package to be built
or run, it only needs the wayland-scanner program during compile time.

When cross-compiling, build systems might not have the wayland-scanner
package for the target system as it is a developer's tool, while it should
still be possible to use wayland-scanner from the host system.

This patch fixes it by not requiring the wayland-scanner package but
just the binary itself.

Note that the check is done outside of the PKG_CHECK_MODULES
as it doesn't work inside of it.

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

8 years agoadaptivedemux: restore bitrate averaging support
Philippe Normand [Thu, 21 Jan 2016 10:53:33 +0000 (11:53 +0100)]
adaptivedemux: restore bitrate averaging support

This was accidentally removed in commit ccff3be3.
https://bugzilla.gnome.org/show_bug.cgi?id=733959

8 years agoadaptivedemux: remove queue2 overrun notification
Philippe Normand [Wed, 20 Jan 2016 14:33:28 +0000 (15:33 +0100)]
adaptivedemux: remove queue2 overrun notification

Due to performance impact concerns this is removed. An alternative
approach would be to rely on buffering messages monitoring.

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

8 years agovkdevice: add the necessary but arbitrary queue priority
Matthew Waters [Tue, 16 Feb 2016 05:18:21 +0000 (16:18 +1100)]
vkdevice: add the necessary but arbitrary queue priority

Silences an error in the validation layers.

8 years agovkswapper: add the necessary call to check if the physical device supports the surface
Matthew Waters [Tue, 16 Feb 2016 05:12:07 +0000 (16:12 +1100)]
vkswapper: add the necessary call to check if the physical device supports the surface

Silences an error in the validation layers.

8 years agovulkan: update to SDK 1.0.3.1
Matthew Waters [Tue, 16 Feb 2016 04:53:56 +0000 (15:53 +1100)]
vulkan: update to SDK 1.0.3.1

8 years agovulkan/build: search for the correct library
Matthew Waters [Tue, 16 Feb 2016 04:36:41 +0000 (15:36 +1100)]
vulkan/build: search for the correct library

SDK 1.0.1 used libvulkan-1.so, 1.0.2 uses libvulkan.so

8 years agovkswapper: iterate over the device queue's using the new iteration API
Matthew Waters [Tue, 16 Feb 2016 00:51:28 +0000 (11:51 +1100)]
vkswapper: iterate over the device queue's using the new iteration API

8 years agovkdevice: add callback iteration over the device queue's
Matthew Waters [Tue, 16 Feb 2016 00:49:24 +0000 (11:49 +1100)]
vkdevice: add callback iteration over the device queue's

8 years agovkqueue: add context helpers
Matthew Waters [Tue, 16 Feb 2016 00:22:37 +0000 (11:22 +1100)]
vkqueue: add context helpers

8 years agovkutils: move object-specific context queries to their respective files
Matthew Waters [Wed, 10 Feb 2016 14:31:14 +0000 (01:31 +1100)]
vkutils: move object-specific context queries to their respective files

vkutils now just contains some utility functions to further simplify retrieving
multiple objects.

8 years agovkdevice: remove unneeded error parameter from get_queue()
Matthew Waters [Wed, 10 Feb 2016 13:50:53 +0000 (00:50 +1100)]
vkdevice: remove unneeded error parameter from get_queue()

8 years agovkupload: implement an uploader abstraction
Matthew Waters [Wed, 10 Feb 2016 07:06:46 +0000 (18:06 +1100)]
vkupload: implement an uploader abstraction

8 years agovkdisplay: unref the instance
Matthew Waters [Wed, 10 Feb 2016 08:50:27 +0000 (19:50 +1100)]
vkdisplay: unref the instance

fixes memory leak

8 years agovulkan: chain up in finalize
Matthew Waters [Wed, 10 Feb 2016 08:34:55 +0000 (19:34 +1100)]
vulkan: chain up in finalize

They were missing in some cases

8 years agovksink: only unref if the pointers are non-NULL
Matthew Waters [Wed, 10 Feb 2016 07:58:32 +0000 (18:58 +1100)]
vksink: only unref if the pointers are non-NULL

8 years agovkimagememory: free the managing struct on _free
Matthew Waters [Wed, 10 Feb 2016 07:05:47 +0000 (18:05 +1100)]
vkimagememory: free the managing struct on _free

fixes a memory leak

8 years agovkdevice: perform a waitIdle before destroying the device
Matthew Waters [Tue, 9 Feb 2016 07:26:40 +0000 (18:26 +1100)]
vkdevice: perform a waitIdle before destroying the device

8 years agoRevert "vulkan: remove views from the memory objects."
Matthew Waters [Tue, 9 Feb 2016 06:46:53 +0000 (17:46 +1100)]
Revert "vulkan: remove views from the memory objects."

This reverts commit 1ea817298ee4d5ef9b00f888f8ebe16a888b1150.

8 years agovulkanmemory: remove bind variants
Matthew Waters [Tue, 9 Feb 2016 06:31:26 +0000 (17:31 +1100)]
vulkanmemory: remove bind variants

8 years agovulkan: remove views from the memory objects.
Matthew Waters [Tue, 9 Feb 2016 05:21:00 +0000 (16:21 +1100)]
vulkan: remove views from the memory objects.

They are not used and it's not possible to create the view before binding the
VkDeviceMemory object to them.

8 years agovkswapper: alpha flags are now supported by LunarG's driver
Matthew Waters [Tue, 9 Feb 2016 00:34:57 +0000 (11:34 +1100)]
vkswapper: alpha flags are now supported by LunarG's driver

8 years agovulkan: add a vulkanbuffer bufferpool
Matthew Waters [Mon, 8 Feb 2016 13:07:38 +0000 (00:07 +1100)]
vulkan: add a vulkanbuffer bufferpool

8 years agovulkan: add upload element
Matthew Waters [Mon, 8 Feb 2016 11:49:15 +0000 (22:49 +1100)]
vulkan: add upload element

8 years agovkutils: fix assert inversion
Matthew Waters [Mon, 8 Feb 2016 07:28:29 +0000 (18:28 +1100)]
vkutils: fix assert inversion

8 years agovulkan: add caps feature names for the buffer and image memories
Matthew Waters [Mon, 8 Feb 2016 07:27:16 +0000 (18:27 +1100)]
vulkan: add caps feature names for the buffer and image memories

8 years agovulkan: add device to handle_context_query
Matthew Waters [Mon, 8 Feb 2016 03:44:20 +0000 (14:44 +1100)]
vulkan: add device to handle_context_query

8 years agovulkan: move instance_open into the utility ensure_element_data
Matthew Waters [Mon, 8 Feb 2016 03:32:10 +0000 (14:32 +1100)]
vulkan: move instance_open into the utility ensure_element_data

So callers don't have to perform it themselves.

8 years agovkinstance: add signal for overriding device creation
Matthew Waters [Mon, 8 Feb 2016 03:25:49 +0000 (14:25 +1100)]
vkinstance: add signal for overriding device creation

8 years agovulkan: separate allocation and binding of memory
Matthew Waters [Mon, 8 Feb 2016 01:22:11 +0000 (12:22 +1100)]
vulkan: separate allocation and binding of memory

8 years agovkbuffermemory: follow the rest of the struct macros
Matthew Waters [Mon, 8 Feb 2016 01:14:44 +0000 (12:14 +1100)]
vkbuffermemory: follow the rest of the struct macros

8 years agovkswapper: use buffer memory to upload video frames to the GPU
Matthew Waters [Fri, 5 Feb 2016 08:31:49 +0000 (19:31 +1100)]
vkswapper: use buffer memory to upload video frames to the GPU

8 years agovulkan: add a buffer memory allocator
Matthew Waters [Fri, 5 Feb 2016 08:18:40 +0000 (19:18 +1100)]
vulkan: add a buffer memory allocator

Wraps the VkBuffer in a GstMemory subclass.

8 years agovkmemory: align struct members in the header
Matthew Waters [Fri, 5 Feb 2016 08:11:51 +0000 (19:11 +1100)]
vkmemory: align struct members in the header

8 years agovkmacros: use specific _INIT macros to initialize structures
Matthew Waters [Fri, 5 Feb 2016 08:10:43 +0000 (19:10 +1100)]
vkmacros: use specific _INIT macros to initialize structures