platform/upstream/gst-plugins-good.git
5 years agortpbin: Factor out the code that exposes the src pad
Olivier Crête [Mon, 18 Mar 2019 19:27:21 +0000 (15:27 -0400)]
rtpbin: Factor out the code that exposes the src pad

5 years agortpreddec: Add some more debug prints
Olivier Crête [Fri, 22 Mar 2019 06:08:01 +0000 (02:08 -0400)]
rtpreddec: Add some more debug prints

5 years agortpstorage: Issue warning if request by size if 0
Olivier Crête [Thu, 21 Mar 2019 21:32:18 +0000 (17:32 -0400)]
rtpstorage: Issue warning if request by size if 0

If the size is 0, then nothing will ever be in the storage, if a request is
received, it generally implies a misconfigured pipeline.

5 years agortpstorage: Add more debug messages
Olivier Crête [Thu, 21 Mar 2019 21:24:42 +0000 (17:24 -0400)]
rtpstorage: Add more debug messages

5 years agortpstorage: Make debug category available to sub objects
Olivier Crête [Thu, 21 Mar 2019 21:12:53 +0000 (17:12 -0400)]
rtpstorage: Make debug category available to sub objects

5 years agortpstorage: Add debug funcptr to chain function
Olivier Crête [Thu, 21 Mar 2019 21:12:33 +0000 (17:12 -0400)]
rtpstorage: Add debug funcptr to chain function

5 years agoflac: report latency in flacenc and flacdec
Julian Bouzas [Fri, 22 Mar 2019 11:01:01 +0000 (12:01 +0100)]
flac: report latency in flacenc and flacdec

The FLAC specification states that the data is processed in blocks, regardless of the number of channels. Thus, The latency can be calculated using the blocksize and rate. For example a 1 second block sampled at 44.1KHz has a blocksize of 44100

5 years agoexamples: rtsp: fix compiler warning
Tim-Philipp Müller [Fri, 22 Mar 2019 23:36:42 +0000 (23:36 +0000)]
examples: rtsp: fix compiler warning

"control reaches end of non-void function"

5 years agogstrtpsession: Remove set but not use running-time
Nicolas Dufresne [Fri, 22 Mar 2019 19:07:56 +0000 (15:07 -0400)]
gstrtpsession: Remove set but not use running-time

5 years agortpmanager: Register chain functions to debug
Olivier Crête [Tue, 19 Mar 2019 13:50:04 +0000 (09:50 -0400)]
rtpmanager: Register chain functions to debug

5 years agortpbin: Allow reusing the sender AUX bin
Nicolas Dufresne [Wed, 27 Feb 2019 20:49:13 +0000 (15:49 -0500)]
rtpbin: Allow reusing the sender AUX bin

This is needed for the case you don't know in advance all the sessions
you will be using, but would like to place all the related AUX element
in the same GstBin. As per current implementation, each time an sender
AUX bin is requested and returned, RTPBin will walk the src pads and
create sessions for these pads.

In the current implementation, if a src pad already have a sessions, it
returns an error and stops. As a side effect, if an AUX bin is reused in
a following AUX bin request, it can only work if the pads are created on
the last request.

This change simply relax the restriction in order to keep walking, and
just ensure that all newly created pads have a sessions.

5 years agov4l2videoenc: set GstVideoCodecFrame sync point flag
Philipp Zabel [Mon, 25 Jun 2018 15:49:07 +0000 (17:49 +0200)]
v4l2videoenc: set GstVideoCodecFrame sync point flag

The V4L2 elements already set the delta unit buffer flag when dequeueing
the buffer, but gst_video_encoder_finish_frame overwrites it from the
passed codec frame's sync point flag. Set the flag correctly.

5 years agogstrtpsession: improve stats about rtx requests
George Kiagiadakis [Thu, 23 Aug 2018 08:47:14 +0000 (11:47 +0300)]
gstrtpsession: improve stats about rtx requests

5 years agortprtxsend: Improve looging of not found RTX packet
George Kiagiadakis [Wed, 20 Mar 2019 19:45:35 +0000 (15:45 -0400)]
rtprtxsend: Improve looging of not found RTX packet

When an RTX packet is not found, display a message that say if the
packet have not arrived yet or if it was already removed from the RTX
packet queue.

5 years agortpsession: Remove unused rtp_session_create_source
Nicolas Dufresne [Thu, 9 Aug 2018 13:40:26 +0000 (16:40 +0300)]
rtpsession: Remove unused rtp_session_create_source

5 years agomeson: add -Wno-unused also to C++ args when gst debug system is disabled
Tim-Philipp Müller [Thu, 21 Mar 2019 11:17:08 +0000 (11:17 +0000)]
meson: add -Wno-unused also to C++ args when gst debug system is disabled

And check if argument is supported instead of just passing it blindly,
and make meson code slightly cleaner, centralising the argument setting
in one place.

5 years agoUpdate LINGUAS
Piotr Drąg [Sun, 10 Mar 2019 19:30:50 +0000 (19:30 +0000)]
Update LINGUAS

5 years agoqtdemux: Don't pass zero to denominator for framerate
Seungha Yang [Tue, 19 Mar 2019 03:31:35 +0000 (12:31 +0900)]
qtdemux: Don't pass zero to denominator for framerate

Need to respect return of gst_video_guess_framerate() to ensure
non-zero denominator.

This patch is to fix below error with an abnormal (but has valid frame) file.
(gst-play-1.0:17940): GStreamer-CRITICAL **: passed '0' as denominator for `GstFraction'

5 years agov4l2: Set Hardware classifier on encoders
Philippe Normand [Tue, 5 Mar 2019 09:43:47 +0000 (09:43 +0000)]
v4l2: Set Hardware classifier on encoders

5 years agov4l2: Set Hardware classifier on video decoders
Philippe Normand [Wed, 27 Feb 2019 11:56:20 +0000 (11:56 +0000)]
v4l2: Set Hardware classifier on video decoders

5 years agov4l2transform: don't segfault if flushed without pools
Philipp Zabel [Fri, 1 Mar 2019 13:58:24 +0000 (14:58 +0100)]
v4l2transform: don't segfault if flushed without pools

The v4l2output and v4l2capture v4l2objects can have pool == NULL if they
have been stopped before.

5 years agoqtdemux: Find mp4a esds atoms in protected streams sample description tables.
Charlie Turner [Thu, 7 Feb 2019 11:58:19 +0000 (11:58 +0000)]
qtdemux: Find mp4a esds atoms in protected streams sample description tables.

This problem was found in Test. 2 of the YouTube 2018 EME
tests[1]. The code was accidentally not finding an mp4a's esds atom in
the sample description table when the stream was encrypted. It assumed
that if the stream is protected, then only an enca atom will be found
here. What happens with YouTube is they often provide protected
content with a few seconds of clear content, and then switch to the
encrypted stream.

The failure case here was an incorrect codec_data field being sent
into aacparse. The advertisement of stereo audio @ 44.1kHz for the
mp4a (unprotected) stream was incorrect. As usual, the esds contained
the real values here which were mono at 22050 Hz.

Here's what the MP4 tree looks like for these types of files,
demonstrating why the code was making a wrong assumption (or maybe
YouTube is being unusual),

[ftyp] size=8+16
...
[moov] size=8+1571
...
  [trak] size=8+559
...
          [stsd] size=12+234
            entry-count = 2
            [enca] size=8+147
              channel_count = 2
              sample_size = 16
              sample_rate = 44100
              [esds] size=12+27
                ...
            ...
            [mp4a] size=8+67
              channel_count = 2
              sample_size = 16
              sample_rate = 44100
              [esds] size=12+27
                ...

In addition to fixing this, the checks for esds atoms in mp4a and mp4v
have been made symmetrical. While I haven't seen a test case for video
with the same problem, it seemed better to make the same checks. This
also fixes a crash reported from another user[2], they also noted the
asymmetry with mp4v and mp4a.

[1] https://yt-dash-mse-test.commondatastorage.googleapis.com/unit-tests/2018.html?test_type=encryptedmedia-test
[2] https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/398

5 years agoflvmux: Fix scale of time values in warning message
Andreas Frisch [Fri, 15 Mar 2019 09:41:20 +0000 (10:41 +0100)]
flvmux: Fix scale of time values in warning message

5 years agortspsrc: Don't remove udpsrc/sink from rtspsrc if they were not added to it
Sebastian Dröge [Fri, 15 Mar 2019 08:18:00 +0000 (09:18 +0100)]
rtspsrc: Don't remove udpsrc/sink from rtspsrc if they were not added to it

This can happen in various error cases that could happen between the
creation of the element in question and the adding to the rtspsrc.

It causes an ugly critical warning right now but is otherwise harmless.

5 years agotest: imagefreeze: add test for the num-buffers property
Antonio Ospite [Wed, 13 Mar 2019 13:00:10 +0000 (14:00 +0100)]
test: imagefreeze: add test for the num-buffers property

5 years agoimagefreeze: add a num-buffers property
Antonio Ospite [Wed, 13 Mar 2019 12:03:44 +0000 (13:03 +0100)]
imagefreeze: add a num-buffers property

The imagefreeze element can be handy for benchmarking downstream
elements because it re-uses the same buffer memory and introduces less
overhead compared to always creating new frames with videotestsrc.

However it's not possible to make imagefreeze send EOS when using
gst-launch-1.0.

Add a num-buffers property to make it look more like a source in the
above scenario.

5 years agomatroskamux: add support for new color primaries
Guillaume Desmottes [Tue, 12 Mar 2019 15:52:45 +0000 (16:52 +0100)]
matroskamux: add support for new color primaries

5 years agov4l2sink: fix pool-less allocation query handling
Philipp Zabel [Thu, 7 Mar 2019 10:24:38 +0000 (11:24 +0100)]
v4l2sink: fix pool-less allocation query handling

This fixes a critical warning if the last-sample property is enabled:

  (gst-launch-1.0:391): GStreamer-CRITICAL **: 01:12:57.428: gst_object_unref: assertion 'object != NULL' failed

If the allocation query does not contain any allocation pools,
gst_query_parse_nth_allocation_pool will leave the local pool,
min, and max variables undefined, so check the array length first.
If pool is NULL, do not call gst_object_unref.

5 years agomeson: Build v4l2 example only if v4l2 plugin was built
Seungha Yang [Fri, 8 Mar 2019 02:03:31 +0000 (11:03 +0900)]
meson: Build v4l2 example only if v4l2 plugin was built

Otherwise v4l2 example will be built with MSVC

5 years agodocs: fix typos s/recieve/receive/
Antonio Ospite [Thu, 7 Mar 2019 11:38:41 +0000 (12:38 +0100)]
docs: fix typos s/recieve/receive/

5 years agortpsource: fix documentation of rtp_source_send_rtp parameters
Antonio Ospite [Thu, 28 Feb 2019 11:32:51 +0000 (12:32 +0100)]
rtpsource: fix documentation of rtp_source_send_rtp parameters

In commit 28e5f9098 (rtpbin: use PacketInfo for the sender, 2013-09-13)
the rtp_source_send_rtp signature changed but the documentation was not
adjusted to match the new one.

Update the documentation to match the function signature.

5 years agortpsession: fix typo in a comment, s/SESSION_LOCK/RTP_SESSION_LOCK/
Antonio Ospite [Wed, 6 Mar 2019 11:59:52 +0000 (12:59 +0100)]
rtpsession: fix typo in a comment, s/SESSION_LOCK/RTP_SESSION_LOCK/

Fix a typo in a comment, mainly to avoid confusing autocompletion in
text editors.

5 years agortpsession: fix typos and update parameters names in comments
Antonio Ospite [Wed, 27 Feb 2019 15:45:54 +0000 (16:45 +0100)]
rtpsession: fix typos and update parameters names in comments

Some functions now accept a generic 'gpointer data' parameter because
they can work either on a single buffer or a buffer list.

However the comments were still referring to the old 'GstBuffer *buffer'
parameter, so update the comments to match the actual functions
signature.

5 years agortpstats: fix some fields names in the RTPSourceStats documentation
Antonio Ospite [Wed, 6 Mar 2019 15:28:34 +0000 (16:28 +0100)]
rtpstats: fix some fields names in the RTPSourceStats documentation

Fix documentation of RTPSourceStats to use the actual fields names.

5 years agortpulpfdecdec: only put recovered packet back into storage if not recovered from...
Mathieu Duponchelle [Wed, 6 Mar 2019 17:40:12 +0000 (17:40 +0000)]
rtpulpfdecdec: only put recovered packet back into storage if not recovered from there

5 years agortpulpfecdec: fix buffer leak when packet is recovered from storage
Mathieu Duponchelle [Wed, 6 Mar 2019 17:38:03 +0000 (17:38 +0000)]
rtpulpfecdec: fix buffer leak when packet is recovered from storage

Exposed by rtpulpfecdec_recovered_from_storage test.

5 years agotests: rtpulpfec: fix buffer leak in unit test
Tim-Philipp Müller [Wed, 6 Mar 2019 17:35:58 +0000 (17:35 +0000)]
tests: rtpulpfec: fix buffer leak in unit test

This freed wrapped memory instead of the GstMemory or buffer.

5 years agortph264depay: fix caps leak
Tim-Philipp Müller [Wed, 6 Mar 2019 17:33:23 +0000 (17:33 +0000)]
rtph264depay: fix caps leak

Exposed by rtp_h264depay_bytestream() unit test.

5 years agotests: rtpjitterbuffer: fix leaks in new test_push_eos() test
Tim-Philipp Müller [Wed, 6 Mar 2019 17:28:57 +0000 (17:28 +0000)]
tests: rtpjitterbuffer: fix leaks in new test_push_eos() test

5 years agotests: states: blacklist gtk sinks for state change test
Tim-Philipp Müller [Wed, 6 Mar 2019 17:26:23 +0000 (17:26 +0000)]
tests: states: blacklist gtk sinks for state change test

gtk_init() throws GLib-GIO-WARNING **: unknown schema extension 'd'
unrelated to our test environment.

5 years agotests: .gitignore more test and example binaries
Tim-Philipp Müller [Wed, 6 Mar 2019 17:26:03 +0000 (17:26 +0000)]
tests: .gitignore more test and example binaries

5 years agogtkgl: Also try retrieving an EGL context from Gdk with X11
Matthew Waters [Tue, 5 Mar 2019 04:26:45 +0000 (15:26 +1100)]
gtkgl: Also try retrieving an EGL context from Gdk with X11

Some embedded platforms will use EGL instead of GLX within the X11
ecosystem.

5 years agoBack to development
Tim-Philipp Müller [Mon, 4 Mar 2019 09:07:30 +0000 (09:07 +0000)]
Back to development

5 years agomatroskademux: fix AV1 caps when there's no codec_data
Tim-Philipp Müller [Mon, 25 Feb 2019 11:23:56 +0000 (11:23 +0000)]
matroskademux: fix AV1 caps when there's no codec_data

There is no "byte-stream" format for AV1 in Matroska, this
was probably cargo-culted from H.264. codec_data / CodecPrivate
is now mandatory for AV1 in Matroska[*], but there are sample
files out there which don't have it (e.g. some Elecard ones).

[*] https://github.com/Matroska-Org/matroska-specification/blob/master/codec/av1.md#codecprivate-1

5 years agomeson: don't build icles when tests are disabled
Tim-Philipp Müller [Thu, 28 Feb 2019 08:52:28 +0000 (08:52 +0000)]
meson: don't build icles when tests are disabled

They are manual tests, so let them be controlled
via the tests option.

5 years agortpsource: small spell correct
Marc Leeman [Wed, 27 Feb 2019 14:39:12 +0000 (15:39 +0100)]
rtpsource: small spell correct

5 years agoRelease 1.15.2
Tim-Philipp Müller [Tue, 26 Feb 2019 11:47:29 +0000 (11:47 +0000)]
Release 1.15.2

5 years agoUpdate docs
Tim-Philipp Müller [Tue, 26 Feb 2019 11:47:29 +0000 (11:47 +0000)]
Update docs

5 years agoUpdate translations
Tim-Philipp Müller [Tue, 26 Feb 2019 11:47:25 +0000 (11:47 +0000)]
Update translations

5 years agov4l2: accept Bayer as possible input/output for V4L2 codecs
Mauro Carvalho Chehab [Fri, 22 Feb 2019 15:22:04 +0000 (12:22 -0300)]
v4l2: accept Bayer as possible input/output for V4L2 codecs

A V4L2 transform codec may input/output data on Bayer format.

Add support for that.

5 years agov4l2: fix a typo on a debug message at v4l2_calls
Mauro Carvalho Chehab [Fri, 22 Feb 2019 15:22:44 +0000 (12:22 -0300)]
v4l2: fix a typo on a debug message at v4l2_calls

suppored -> supported

5 years agov4l2dec: also remove the colorimetry and chroma-site fields
Matthew Waters [Mon, 25 Feb 2019 08:08:08 +0000 (19:08 +1100)]
v4l2dec: also remove the colorimetry and chroma-site fields

If a different format is chosen, then these values are incorrect.

5 years agortpsession: Fix EOS forwarding
Nicolas Dufresne [Fri, 22 Feb 2019 21:02:12 +0000 (16:02 -0500)]
rtpsession: Fix EOS forwarding

So far we assumed that if all sources are bye, this meant we needed to
send an EOS on the RTCP sink. The problem is that this case may happens
if we only had one internal source and it detected a collision.

So now we limit the EOS forwarding to when there is a send_rtp_sink pad
and that this pad has received EOS. We don'tcheck the recv_rtp_sink
since the code does not wait for the bye to be send before sending EOS
to the RTCP src pad.

5 years agowavparse: Declare support for RF64
Jan Schmidt [Sun, 24 Feb 2019 14:12:56 +0000 (01:12 +1100)]
wavparse: Declare support for RF64

RF64 encode support was added to wavenc quite some time
ago, but not declared in wavparse. It seems wavparse can
decode it though, so add it to the sink pad.

The RF64 support was added in
https://bugzilla.gnome.org/show_bug.cgi?id=735627

5 years agortp: Add property to disable RTCP reports per internal rtpsource
Nicolas Dufresne [Tue, 12 Feb 2019 23:28:40 +0000 (18:28 -0500)]
rtp: Add property to disable RTCP reports per internal rtpsource

This is useful when implementing custom retransmission mechanism like
RIST to prevent RTCP from being produces for the retransmitted SSRC.
This would also be used in general for various purpose when customizing
an RTP base pipeline.

5 years agortpsession: Emit on-new-sender-ssrc for RTX ssrc also
Olivier Crête [Tue, 12 Feb 2019 23:26:21 +0000 (18:26 -0500)]
rtpsession: Emit on-new-sender-ssrc for RTX ssrc also

5 years agortp jitterbuffer test: Test for queue filling
Olivier Crête [Tue, 15 Jan 2019 23:04:09 +0000 (18:04 -0500)]
rtp jitterbuffer test: Test for queue filling

5 years agortpjitterbuffer: Limit size to 2^15 packets
Olivier Crête [Fri, 11 Jan 2019 22:53:43 +0000 (17:53 -0500)]
rtpjitterbuffer: Limit size to 2^15 packets

If it goes over 2^15 packets, it will think it has rolled over
and start dropping all packets. So make sure the seqnum distance is not too big.

But let's not limit it to a number that is too small to avoid emptying it
needlessly if there is a spurious huge sequence number, let's allow at
least 10k packets in any case.

5 years agortpjitterbuffer: There is no automatic reorder threshold
Olivier Crête [Mon, 11 Feb 2019 16:33:32 +0000 (11:33 -0500)]
rtpjitterbuffer: There is no automatic reorder threshold

5 years agopulse: Post DEVICE_CHANGED on modification
Thibault Saunier [Wed, 30 Jan 2019 13:47:49 +0000 (10:47 -0300)]
pulse: Post DEVICE_CHANGED on modification

5 years agopulse: Mark default devices as "default"
Thibault Saunier [Mon, 26 Nov 2018 16:48:56 +0000 (13:48 -0300)]
pulse: Mark default devices as "default"

5 years agoflvmux: Use 8kHz sample rate for alaw/mulaw audio
Ilya Smelykh [Fri, 8 Feb 2019 16:10:25 +0000 (16:10 +0000)]
flvmux: Use 8kHz sample rate for alaw/mulaw audio

5 years agoflvdemux: set sample rate to 8KHz for G.711 audio
Ilya Smelykh [Thu, 7 Feb 2019 09:54:31 +0000 (09:54 +0000)]
flvdemux: set sample rate to 8KHz for G.711 audio

5 years agoqtmux: Only write timecode trak for video
Vivia Nikolaidou [Fri, 8 Feb 2019 11:59:19 +0000 (13:59 +0200)]
qtmux: Only write timecode trak for video

Recent changes in ccextractor were attaching timecode meta to the closed
caption track. We shouldn't write timecode information for the closed
caption trak.

5 years agovpx: Fix build against libvpx 1.8
Jan Alexander Steffens (heftig) [Tue, 5 Feb 2019 21:14:18 +0000 (22:14 +0100)]
vpx: Fix build against libvpx 1.8

The deprecated debug visualizer was removed.

5 years agomisc: Fix warnings on Cerbero's mingw (gcc 4.7)
Nirbheek Chauhan [Tue, 5 Feb 2019 14:11:51 +0000 (19:41 +0530)]
misc: Fix warnings on Cerbero's mingw (gcc 4.7)

error: this decimal constant is unsigned only in ISO C90 [-Werror]

5 years agopulsesink: Deal with not being able to convert a format to caps
Arun Raghavan [Wed, 6 Feb 2019 09:13:18 +0000 (14:43 +0530)]
pulsesink: Deal with not being able to convert a format to caps

It is possible that PulseAudio adds formats that are not yet supported
in pulsesink, and in those cases, we want to gracefully skip them rather
than cause an assert on a NULL caps.

5 years agoqtdemux: Remove trailing '\n' in debug
Edward Hervey [Thu, 17 Jan 2019 08:22:18 +0000 (09:22 +0100)]
qtdemux: Remove trailing '\n' in debug

5 years agoqmlgl: Fix opengl header guard changes again
Matthew Waters [Tue, 5 Feb 2019 04:27:49 +0000 (15:27 +1100)]
qmlgl: Fix opengl header guard changes again

Reapply 3d708a5bfa8961cc37671bc3226976dfc9ba50ad in the correct place
after the iOS additions.

5 years agortspsrc: use the correct segment seqnum
Mathieu Duponchelle [Sat, 2 Feb 2019 01:29:10 +0000 (02:29 +0100)]
rtspsrc: use the correct segment seqnum

5 years agortpjitterbuffer: use the correct segment seqnum
Mathieu Duponchelle [Sat, 2 Feb 2019 01:26:47 +0000 (02:26 +0100)]
rtpjitterbuffer: use the correct segment seqnum

5 years agortpsession: use the correct segment seqnum
Mathieu Duponchelle [Sat, 2 Feb 2019 01:24:01 +0000 (02:24 +0100)]
rtpsession: use the correct segment seqnum

5 years agoflvdemux: Do not error out if the first added and chained pad is not linked
Thibault Saunier [Sat, 26 Jan 2019 13:35:31 +0000 (10:35 -0300)]
flvdemux: Do not error out if the first added and chained pad is not linked

And let it the oportunity to get its other pad linked

Example:

```
$ gst-launch-1.0 uridecodebin uri=file:///home/thiblahute/gst-validate.save/gst-integration-testsuites/testsuites/../medias/defaults/flv/819290236.flv caps=audio/x-raw expose-all-streams=FALSE ! fakesink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
ERROR: from element /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0: Internal data stream error.
Additional debug info:
../subprojects/gst-plugins-good/gst/flv/gstflvdemux.c(2760): gst_flv_demux_loop (): /GstPipeline:pipeline0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstFlvDemux:flvdemux0:
streaming stopped, reason not-linked (-1)
ERROR: pipeline doesn't want to preroll.
Setting pipeline to NULL ...
Freeing pipeline ...
```

5 years agowebmmux: allow resolutions above 4096
Christopher Snowhill [Thu, 17 Jan 2019 07:54:25 +0000 (23:54 -0800)]
webmmux: allow resolutions above 4096

Modify the caps string to allow width and height greater than 4096.
There is no need to restrict it since the matroska format allows the
width and height values to be up to eight bytes long, and this also
applies to the webm subset of the format.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/issues/550

5 years agomeson: qmlgl plugin iOS definitions
Nirbheek Chauhan [Fri, 1 Feb 2019 08:57:11 +0000 (14:27 +0530)]
meson: qmlgl plugin iOS definitions

Tested with cross-ios-arm64 and cross-ios-x86, since those two are the
only archs shipped with the official Qt binaries.

5 years agoqt: Don't define GLsync inside gstglfuncs.h
Nirbheek Chauhan [Fri, 1 Feb 2019 08:57:11 +0000 (14:27 +0530)]
qt: Don't define GLsync inside gstglfuncs.h

This was originally added for fixing conflicting definitions between
Android and Qt, but times have changed and now this breaks the build
on iOS:

 [...]/OpenGLES.framework/Headers/ES3/gl.h:1006:48: error: unknown type name 'gst_qt_GLsync'
 GL_API void           GL_APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values)   OPENGLES_DEPRECATED(ios(7.0, 12.0), tvos(9.0, 12.0));
                                               ^
 ../ext/qt/gstqtgl.h:49:16: note: expanded from macro 'GLsync'
 #define GLsync gst_qt_GLsync
                ^
 6 errors generated.

Instead, we simply avoid defining GLsync ourselves if we're using Qt.

5 years agomeson: Fix indentation in qt plugin and add a FIXME comment
Nirbheek Chauhan [Fri, 1 Feb 2019 08:57:11 +0000 (14:27 +0530)]
meson: Fix indentation in qt plugin and add a FIXME comment

5 years agortph265depay; Fix handling of marker on aggregated packet
Nicolas Dufresne [Sun, 27 Jan 2019 02:02:27 +0000 (21:02 -0500)]
rtph265depay; Fix handling of marker on aggregated packet

When multiple nals are aggrgated, the marker bit should be associated only
with the last NAL of the packet. Otherwise we may break rendering in with
AU alignment.

5 years agortph264depay: Fix handling or marker on STAP-A
Nicolas Dufresne [Sun, 27 Jan 2019 02:01:08 +0000 (21:01 -0500)]
rtph264depay: Fix handling or marker on STAP-A

Only forward the marker for the last NAL of the STAP-A. Otherwise each NAL
endup being assumed to be a full frame which may break rendering.

Fixes 557

5 years agotest: h265depay: Add todo for testing aggregate packets with marker
Nicolas Dufresne [Sun, 27 Jan 2019 14:19:00 +0000 (09:19 -0500)]
test: h265depay: Add todo for testing aggregate packets with marker

We are missing a sample to test this, but a fix has been made, so add a
todo.

5 years agotest: rtph264depay: Check handling of STAP-A marker
Nicolas Dufresne [Sun, 27 Jan 2019 01:42:40 +0000 (20:42 -0500)]
test: rtph264depay: Check handling of STAP-A marker

Related to #557

5 years agomeson: orc-test is not required
Nirbheek Chauhan [Thu, 31 Jan 2019 09:53:43 +0000 (15:23 +0530)]
meson: orc-test is not required

This is especially never available on iOS.

5 years agomeson: Add support orc fallback
Seungha Yang [Wed, 30 Jan 2019 10:44:01 +0000 (19:44 +0900)]
meson: Add support orc fallback

Allow fallback to orc subproject if any.
Additionally 'dependencies' keyword is removed from find_library,
because it's invalid keyword for find_library.

5 years agogdkpixbufdec: always output a TIME segment
Mathieu Duponchelle [Thu, 17 Jan 2019 20:06:54 +0000 (21:06 +0100)]
gdkpixbufdec: always output a TIME segment

It makes no sense for a decoder to output a BYTES segment, and
many elements one would plug downstream of a video decoder assume
the segments they receive are in TIME format, for example this fixes:

gst-validate-1.0 filesrc location=opacity01.svg ! gdkpixbufdec ! \
videobalance ! videoconvert ! fakesink

In that case, videobalance was emitting an assertion when trying to
call gst_object_sync_values()

5 years agomeson: Add macOS definitions for qmlgl plugin
Nirbheek Chauhan [Tue, 29 Jan 2019 06:42:51 +0000 (12:12 +0530)]
meson: Add macOS definitions for qmlgl plugin

Tested with Cerbero.

5 years agomeson: Fix building of qmlgl plugin on Android
Nirbheek Chauhan [Tue, 29 Jan 2019 06:42:51 +0000 (12:12 +0530)]
meson: Fix building of qmlgl plugin on Android

Needs gnustl for C++ STL support, which is the GNU STL on Android API
19 and older, and is a wrapper for the llvm-libc++ STL on newer APIs.

QtGui C++ templates use GL functions, so GLESv2 is needed at link time

5 years agodeinterleave: Allow switching between 1 channel configs
Vincent Penquerc'h [Thu, 24 Jan 2019 21:21:12 +0000 (16:21 -0500)]
deinterleave: Allow switching between 1 channel configs

regardless of whether they're positioned, since positioning
with a 1 channel stream doesn't change anything.

5 years agoconfigure.ac: Fix Qt Android integration
Nirbheek Chauhan [Tue, 22 Jan 2019 06:15:49 +0000 (11:45 +0530)]
configure.ac: Fix Qt Android integration

The Qt Android integration is now signalled with HAVE_QT_ANDROID

See: https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/merge_requests/86

5 years agoMeson: fallback to libsoup subproject
Xavier Claessens [Tue, 18 Dec 2018 19:46:25 +0000 (14:46 -0500)]
Meson: fallback to libsoup subproject

5 years agomeson: detect opengl api from -base .pc files correctly
Tim-Philipp Müller [Tue, 22 Jan 2019 12:52:25 +0000 (12:52 +0000)]
meson: detect opengl api from -base .pc files correctly

There was a mismatch between the .pc files generated by
autotools and by meson that would lead to meson not detecting
that opengl api is available even though it is, if -base was
built with autotools. The mismatch has now been rectified in
-base, so we need to update for that.

This is mostly for consistency, this problem didn't seem
to affect anything in -good.

See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/871

5 years agomeson: ximage: check for XShmAttach()
Tim-Philipp Müller [Tue, 22 Jan 2019 09:51:33 +0000 (09:51 +0000)]
meson: ximage: check for XShmAttach()

Fixes FIXME.

5 years agomeson: add options for ximagesrc xshm, xfixes, xdamage checks
Tim-Philipp Müller [Tue, 22 Jan 2019 09:32:31 +0000 (09:32 +0000)]
meson: add options for ximagesrc xshm, xfixes, xdamage checks

And rename x11 option to ximagesrc.

Fixes #553

5 years agoqmlgl: add README.md with information on building for non-linux platforms with qmake
George Kiagiadakis [Mon, 21 Jan 2019 09:53:53 +0000 (11:53 +0200)]
qmlgl: add README.md with information on building for non-linux platforms with qmake

5 years agoqmlgl: meson: fix theoretical support for building for android
George Kiagiadakis [Sat, 19 Jan 2019 14:46:41 +0000 (15:46 +0100)]
qmlgl: meson: fix theoretical support for building for android

The android code path is slightly different than the EGLFS one,
so I added previously a HAVE_QT_ANDROID define for use with qmake.
Here I also add it in meson, although I expect nobody will ever use
meson to build this, as it's complicated.

5 years agoqmlgl: qmake: add support for MacOS target
George Kiagiadakis [Sat, 19 Jan 2019 14:37:45 +0000 (15:37 +0100)]
qmlgl: qmake: add support for MacOS target

5 years agoqmlgl: qmake: remove cerbero's include dir from the include path
George Kiagiadakis [Sat, 19 Jan 2019 14:21:43 +0000 (15:21 +0100)]
qmlgl: qmake: remove cerbero's include dir from the include path

pkg-config should do it's job here, this is unnecessary and implies using cerbero

5 years agoqmlgl: qualify Qt includes with their module and remove module include dir from the...
George Kiagiadakis [Sat, 19 Jan 2019 14:19:26 +0000 (15:19 +0100)]
qmlgl: qualify Qt includes with their module and remove module include dir from the .pro file

it is perfectly legal to use the <module/class> style of includes with Qt
and it avoids the need for having the module's include dir in the include path

5 years agoqmlgl: qmake: don't link against QtWidgets, it's not used
George Kiagiadakis [Sat, 19 Jan 2019 14:10:09 +0000 (15:10 +0100)]
qmlgl: qmake: don't link against QtWidgets, it's not used

5 years agoqmlgl: qmake: fix building for android
George Kiagiadakis [Sat, 19 Jan 2019 14:07:44 +0000 (15:07 +0100)]
qmlgl: qmake: fix building for android

5 years agomeson: Generate pkg-config file for qmlgl plugin
Nirbheek Chauhan [Fri, 18 Jan 2019 21:09:32 +0000 (02:39 +0530)]
meson: Generate pkg-config file for qmlgl plugin