Commit graph

6792 commits

Author SHA1 Message Date
Tim-Philipp Müller be0ca93a90 app: GST_EXPORT -> GST_APP_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 10:29:55 +00:00
Tim-Philipp Müller 75c32b8afc allocators: GST_EXPORT -> GST_ALLOCATORS_API
We need different export decorators for the different libs.
For now no actual change though, just rename before the release,
and add prelude headers to define the new decorator to GST_EXPORT.
2018-03-13 10:20:23 +00:00
Mathieu Duponchelle e9be107e4a audioaggregator: fix channel-mask negotiation
When outputting more than two channels, a channel-mask has to be
specified in the output caps.

We follow the same heuristic as other cases, when downstream
does not specify a channel-mask, we use that of the first
configured pad, and if there was none we generate a fallback
mask.

https://bugzilla.gnome.org/show_bug.cgi?id=794257
2018-03-12 17:35:53 +01:00
Tim-Philipp Müller 886326bfa0 docs: video: fix typo and add since marker 2018-03-11 22:57:02 +00:00
Thibault Saunier e916ef08fd audio: Add audioaggregator.h in audio.h 2018-03-11 12:13:32 -03:00
Tim-Philipp Müller 98fc23062f docs: add GstPhysMemoryAllocator to docs 2018-03-08 01:01:53 +00:00
Nicolas Dufresne 604c1bfb4e videodecoder: Reset QoS time after pushing segment
This fixes playbin gapless playback. An ancient QoS time was used and
would lead to all frames being dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=668995
2018-03-01 11:19:31 -05:00
Mathieu Duponchelle 22981e8a42 Port to latest GstAggregator segment API
The aggregator segment is now exposed on the src pad

https://bugzilla.gnome.org/show_bug.cgi?id=793944
2018-03-01 15:33:25 +01:00
Mathieu Duponchelle 318eb61e23 audioaggregator: remove GstAudioAggregator->info
As we now require subclasses to use a subclass of
GstAudioAggregatorPad, we can reuse its info field

https://bugzilla.gnome.org/show_bug.cgi?id=793943
2018-03-01 15:33:25 +01:00
Edward Hervey 6f5c9db1cc id3v2: re-fix handling of v2.4 extended headers
The various id3v2 specs handle the extended header sizes differently
(because hey, it wouldn't be fun otherwise).

http://id3.org/id3v2.3.0 states:
"Where the 'Extended header size', currently 6 or 10 bytes, excludes
 itself."

http://id3.org/id3v2.4.0-structure states:
  Extended header size   4 * %0xxxxxxx
     Number of flag bytes       $01
     Extended Flags             $xx

   Where the 'Extended header size' is the size of the whole extended
   header, stored as a 32 bit synchsafe integer. An extended header can
   thus never have a size of fewer than six bytes.

So in id3v2.4.0 it's the *whole* extended header size (a-la ISOBMFF
atom), whereas in id3v2.3.0 it's the extended header size *excluding*
those 4 initial bytes.

And for other versions, god knows..

Fixes regression introduced in commit da607005.

https://bugzilla.gnome.org/show_bug.cgi?id=792983
2018-03-01 12:42:10 +00:00
Mathieu Duponchelle 10835e9919 audioaggregator: refactor conversion API
For the rationale, see:

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

Also test audiomixer conversion of current output buffer
2018-03-01 00:40:24 +01:00
Jan Schmidt c920d994ab glcolorconvert: Fix a typo in a debug message 2018-03-01 02:14:07 +11:00
Jan Schmidt f15f60a062 glfilter: Support non-2D texture targets
Allow for sub-classes to change pad templates to
support other texture targets, and bind input textures
accordingly.

When setting the caps, also store the texture target.

By default, glfilter only reports 2D texture targets
in the default caps, but sub-classes can change that
and it would be nice if they could easily find out
which texture targets were negotiated.

This adds 2 fields to the public struct, but since
it's unreleased -base API, it's not an ABI break.
2018-03-01 02:14:07 +11:00
Sebastian Dröge fae7f790be audioaggregator: Document that the pad's audio info is read-only and needs the object lock
Also fix indentation in the header a bit.
2018-02-28 15:23:25 +02:00
Víctor Manuel Jáquez Leal f3d98fa1a3 roi-meta: duplicate params when copying meta
When copying the meta the params list should be copy too into the
new meta.

https://bugzilla.gnome.org/show_bug.cgi?id=793883
2018-02-27 14:27:42 -05:00
Nicolas Dufresne d796188cf1 meson: Don't install GL GBM headers 2018-02-27 13:16:01 -05:00
Nicolas Dufresne fbc2375d57 gl: Move DRM_CFLAGS into gst-gl.m4 2018-02-27 13:12:59 -05:00
Nicolas Dufresne b8bc2b87d0 gl: Add missing gbm directory to dist dir
This fixes make distcheck
2018-02-26 07:46:26 -05:00
Carlos Rafael Giani ee59537657 gl: Add DRM cflags
This prevents cross compilation errors like:

usr/include/xf86drm.h:40:10: fatal error: drm.h: No such file or directory

These are caused because gstgldisplay_gbm.h includes xf86drm.h .

https://bugzilla.gnome.org/show_bug.cgi?id=793837
2018-02-26 07:27:20 -05:00
Sebastian Dröge 783e450a60 pbutils: Fix compilation of last commit 2018-02-26 11:55:46 +02:00
Thiago Santos 006c7181ed pbutils: Move locale dir initialization to a separate function and do lazy initialization
It is the only thing gst_pb_utils_init()  does and it could be
automatically called from the places in pbutils it is needed.

After 1.14 we should deprecate gst_pb_utils_init().

https://bugzilla.gnome.org/show_bug.cgi?id=793611
2018-02-26 11:49:04 +02:00
Nicolas Dufresne 1a97338dc7 gl: Add meson support for GBM backend
https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00
Carlos Rafael Giani 4df219f336 gl: Add Mesa3D GBM backend
This makes it possible to use the GStreamer OpenGL elements without a
windowing system if a libdrm- and Mesa3D-supported GPU is present

https://bugzilla.gnome.org/show_bug.cgi?id=782923
2018-02-23 21:09:45 -05:00
Nicolas Dufresne 977a2d04fd roi-meta: Fix bad doc comment syntax 2018-02-22 16:11:20 -05:00
Guillaume Desmottes f5855d50ad videometa: add support for downstream parameters to ROI meta
The current GstVideoRegionOfInterestMeta API allows elements to detect
and name ROI but doesn't tell anything about how this information is
meant to be consumed by downstream elements.
Typically, encoders may want to tweak their encoding settings for a
given ROI to increase or decrease their quality.
Each encoder has its own set of settings so that's not something that
can be standardized.

This patch adds encoder-specific parameters to the meta which can be
used to configure the encoding of a specific ROI.

A typical use case would be: source ! roi-detector ! encoder
with a buffer probe on the encoder sink pad set by the application.
Thanks to the probe the application will be able to tell to the encoder
how this specific region should be encoded.

Users could also develop their specific roi detectors meant to be used with a
specific encoder and directly putting the encoder parameters when
detecting the ROI.

https://bugzilla.gnome.org/show_bug.cgi?id=793338
2018-02-21 12:30:10 -05:00
Mikhail Fludkov d7397f0235 rtpbuffer.h: Add new RTPBuffer flags
These flags will be used for Forward Error Correction purposes

https://bugzilla.gnome.org/show_bug.cgi?id=792695
2018-02-21 12:45:41 +01:00
Tim-Philipp Müller 41d7356fa1 meson: fix multi-line string
https://bugzilla.gnome.org/show_bug.cgi?id=793629
2018-02-20 11:52:43 +00:00
Thiago Santos 400ea72b06 pbutils: add some missing gi annotations
For allow-none parameters
2018-02-19 11:23:40 -08:00
Tim-Philipp Müller 4fe5178957 appsrc: don't signal the GCond if no one is waiting on it
Performance optimisation: Keep track whenever the streaming
thread or the application thread are waiting on the GCond for
more space or new data, and only signal on the GCond if someone
is actually waiting. Avoids unnecessary syscalls and thus
context switches.
2018-02-19 16:04:22 +00:00
Tim-Philipp Müller 5a5a1f0dc6 appsrc: use GstQueueArray instead of GQueue for internal item queue
Performance optimisation.

Avoids alloc/free churn for the queue's list nodes.

Depends on new API in GstQueueArray in core.
2018-02-19 16:04:15 +00:00
Tim-Philipp Müller 0846ceef59 appsink: don't signal the GCond if no one is waiting on it
Performance optimisation: Keep track whenever the streaming
thread or the application thread are waiting on the GCond
for more space or new data, and only signal on the GCond if
someone is actually waiting. Avoids unnecessary syscalls and
thus context switches.
2018-02-19 16:03:39 +00:00
Tim-Philipp Müller 8b22d47057 appsink: use GstQueueArray instead of GQueue for internal item queue
Performance optimisation.

Avoids alloc/free churn for the queue's list nodes.
2018-02-19 16:03:06 +00:00
Víctor Manuel Jáquez Leal 1784f62895 gl/wayland: Memory leak when display couldn't connect
When trying to create a wayland display, it may fail because there
is not actually display to connect. It this case NULL is returned
but the created instance is not freed.

This patch unrefs the failed display.

https://bugzilla.gnome.org/show_bug.cgi?id=793483
2018-02-16 13:56:50 +01:00
Mathieu Duponchelle 06ae49f525 audio-converter: fix declaration-after-statement 2018-02-15 21:08:08 +01:00
Mathieu Duponchelle 9cf4293bde audio-converter: add a convenience conversion method
This is useful from python bindings

https://bugzilla.gnome.org/show_bug.cgi?id=793492
2018-02-15 20:51:30 +01:00
Mathieu Duponchelle 6a4a82f355 gst_audio_converter_new: update annotations
https://bugzilla.gnome.org/show_bug.cgi?id=793492
2018-02-15 20:51:30 +01:00
Mathieu Duponchelle 9046e6001b AudioConverter: register as boxed type
https://bugzilla.gnome.org/show_bug.cgi?id=793492
2018-02-15 20:51:30 +01:00
Mathieu Duponchelle 3d50d0e8b0 audio-info: annotate gst_audio_info_set_format
https://bugzilla.gnome.org/show_bug.cgi?id=793492
2018-02-15 20:51:30 +01:00
Edward Hervey 2c4dfa101a Update disted backup ORC files 2018-02-15 07:14:20 +01:00
Mathieu Duponchelle 73d2031ffc gstaudiopack.orc: pack_u32be_swap: actually swap
Fixes:

gst-launch-1.0 audiotestsrc ! audio/x-raw, format=U32BE ! \
audioconvert ! autoaudiosink
2018-02-15 01:32:54 +01:00
Nicolas Dufresne f2726a2b4a doc: Fix since marker in dmabuf to match a stable release 2018-02-14 14:16:14 -05:00
Nicolas Dufresne 7d8208912a doc: Remove extra . after Since marker 2018-02-14 14:14:58 -05:00
Nicolas Dufresne f0cbe02541 doc: Fix Since 1.X marker on new video formats 2018-02-14 14:10:22 -05:00
Tim-Philipp Müller 54655196e7 audioaggregator: remove declaration for function that doesn't exist 2018-02-13 17:16:53 +00:00
Tim-Philipp Müller 4984c84505 docs: add GstAudioAggregator to docs 2018-02-13 17:10:42 +00:00
Tim-Philipp Müller 4647d6684f GstAudioAggregator: hook up to build
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13 16:09:09 +00:00
Tim-Philipp Müller ab758a9a39 audioaggregator, audiomixer, audiointerleave: move from -bad to -base
https://bugzilla.gnome.org/show_bug.cgi?id=791218
2018-02-13 15:56:49 +00:00
Tim-Philipp Müller 992fb96843 gl: g-i: expose platform-specific display API in bindings
https://bugzilla.gnome.org/show_bug.cgi?id=786391
2018-02-08 17:00:31 +00:00
Sebastian Cote 9e77d9cacf rtspconnection: also add Content-Type to HTTP POST request when tunnelling
When the GstRTSPConnection class sends a RTSP over HTTP tunnelling
request, the HTTP Content-Type header is missing from the HTTP POST
request.

This isn't a problem with most servers, but there are servers that
rejects the request without there also being a Content-Type header.

RFC 1945:
Any HTTP/1.0 message containing an entity body should include a
Content-Type header field defining the media type of that body.

Apple Dispatch 28:
QuickTime Streaming uses the "application/x-rtsp-tunnelled" MIME
type in both the Content-Type and Accept headers. This reflects
the data type that is expected and delivered by the client and server.

https://bugzilla.gnome.org/show_bug.cgi?id=793110
2018-02-08 16:08:03 +00:00
Matthew Waters bc604f3597 gl: remove more deprecated type aliases
Additions on top of

https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=32a17f313494cbadaf8ec4e337d742e8d7e1b67b
https://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/?id=c8b99139b1ef3f8891548b0f2607a135917c338e
2018-02-08 21:14:56 +11:00