Commit graph

1403 commits

Author SHA1 Message Date
Seungha Yang
7aebe60809 tests: Enable unit test on Windows
Allow run some unit tests on Windows.
* Remove hardcoded path separator in whitelist env for Meson to choose
  OS-specific separator automatically (i.e., ';' for windows and ':' for *nix)
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
  loaded on uninstalled environment of Windows.
2018-12-18 22:52:24 +09:00
Seungha Yang
16af121a86 meson: Prefer to use join_paths() over '/'
... to avoid mixing '/' and '\' in a path string on Windows.
2018-12-18 22:52:24 +09:00
Jonny Lamb
9a3e8ad2d7 rtpulpfec: stop and start the harness when setting error-after
gstreamer!55 makes some changes to how the `error-after` counter works
which breaks this test. This change makes the test not rely on the
ability to alter `error-after` at runtime and explicitly stops and
starts the harness before pushing data.

An alternative would be to add another argument to
`harness_rtpulpfecdec` to set `error-after` on construction but that's
slightly more long-winded. so I went for this approach instead.

Fixes #532, even though that's already closed.
2018-12-18 12:32:48 +00:00
Mathieu Duponchelle
306d5021e5 tests: remove rtpaux test
The initial mission statement for this test was:

* demonstrate usage of the request-aux-* signals in rtpbin
* test the rtx elements

We have examples that serve the first use case, and better
(harnessed) tests for the second use case.

This test is slow and racy, it served its purpose but can now
be removed.

Fixes #533
2018-12-18 11:08:50 +00:00
Olivier Crête
59d398b66c rtpjitterbuffer tests: Validate the number of buffers 2018-12-14 12:10:16 +00:00
Olivier Crête
d857522237 rtpjitterbuffer: Run all timers immediately on EOS
When the EOS event is received, run all timers immediately and avoid
pushing the EOS downstream before this has been run. This ensures that
the lost packet statistics are accurate.
2018-12-14 12:10:16 +00:00
Olivier Crête
c6e8325945 rtpjitterbuffer test: Stop jitterbuffer before pads to avoid race
The teardown of the pads checks the refcount, but there are timers
inside the jitterbuffer that can push things, so if we're not lucky,
things could be pushed while the pads are being shut down. Putting the
jitterbuffer to NULL first avoids this.
2018-12-14 12:10:16 +00:00
Tim-Philipp Müller
193dbd20a8 tests: rtpssrcdemux: fix uninstalled autotools build and distcheck 2018-11-30 23:56:12 +00:00
Nicolas Dufresne
c596bdda38 test: rtpssrcdemux: Test event forwarding
This the first unit test of this element. It adds a test that verify
that events are forwarded correctly.
2018-11-29 15:19:17 -05:00
Jordan Petridis
515ada7e22
Run gst-indent through the files
This is required before we enabled an indent test in the CI.

https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
2018-11-28 05:52:16 +02:00
Linus Svensson
ac94c706da rtpsession: test: Plug memory leak 2018-11-13 12:30:35 +00:00
Havard Graff
65a7d39bd4 flvmux: Test that timestamps are always increasing
Decreasing timestamps break rtmpsink.

With contributions from Olivier Crête.

https://bugzilla.gnome.org/show_bug.cgi?id=796382
2018-11-05 18:17:04 -05:00
Nirbheek Chauhan
8fd3a98256 meson: Add some missing test dependencies
Without these dependencies, the enumtype may not be generated when the
test is built, which will cause a compile failure.
2018-10-28 14:10:12 +00:00
Nirbheek Chauhan
21d5005688 meson: Cleanup old FIXMEs that relied on meson changes 2018-10-28 14:10:12 +00:00
Olivier Crête
cc69c876fe rtpsession: Allow changing the SDES at runtime
Make it possible to modify the SDES in a packet at runtime.

https://bugzilla.gnome.org/show_bug.cgi?id=763502
2018-10-28 12:10:36 +00:00
Yeongjin Jeong
301142604e tests: flvmux: Fix pushing invalid audio caps in tests
Previous commit created caps with incorrect aac codec data
that did not match the audio channel.

https://bugzilla.gnome.org/show_bug.cgi?id=797256
2018-10-21 02:44:24 -04:00
Havard Graff
13aa805943 rtpsession: fix up GHashTable-behavior dependent tests
GHashTable iteration order changed in recent GLib,
and tests were relying on that.

https://mail.gnome.org/archives/desktop-devel-list/2018-October/msg00016.html
2018-10-20 12:32:44 +01:00
Havard Graff
53a45b1222 Initial commit of GstRtpFunnel
For funneling together rtp-streams into a single session.
Use-cases include multiplexing and bundle.
2018-10-15 14:20:58 +02:00
Yeongjin Jeong
afa4be4b3b tests: flvdemux: Add new test for channel detect using aac codec-data
https://bugzilla.gnome.org/show_bug.cgi?id=797275
2018-10-12 14:35:37 -04:00
Yeongjin Jeong
7b5f7249e8 tests: flvmux: Add new test for caps change after starting to write headers
https://bugzilla.gnome.org/show_bug.cgi?id=797256
2018-10-11 15:35:24 -04:00
Havard Graff
6c05180dc5 rtpmux: respect downstream "timestamp-offset" in caps.
https://bugzilla.gnome.org/show_bug.cgi?id=795162
2018-10-10 15:39:02 -04:00
Havard Graff
6f37bd8f19 rtpmux: cleanup ssrc-handling code a bit
And add some better logging.

https://bugzilla.gnome.org/show_bug.cgi?id=795162
2018-10-10 15:38:57 -04:00
Havard Graff
7cd36d2914 rtpmux: property should overrule both upstream and downstream
https://bugzilla.gnome.org/show_bug.cgi?id=762213

https://bugzilla.gnome.org/show_bug.cgi?id=795162
2018-10-10 15:35:31 -04:00
Tim-Philipp Müller
1a871b1883 meson: only build gtk gl examples if gst-gl was found
And fix typo in glliveshader example binary name.
2018-10-08 20:35:41 +01:00
Tim-Philipp Müller
553a479e89 examples: dist qt examples
https://bugzilla.gnome.org/show_bug.cgi?id=796968
2018-08-17 11:45:47 +01:00
Nirbheek Chauhan
ebcf3f5f63 meson: Add an option for tests
This is needed because we don't always have gstreamer-check available,
for instance inside Cerbero on iOS.
2018-08-17 00:31:14 +05:30
Nirbheek Chauhan
8f807477eb meson: Add feature options for all plugins
Checks for GL, Qt5, and C++ are still automagic. FIXMEs have been
added for these so they can be fixed later.

https://bugzilla.gnome.org/show_bug.cgi?id=795107
2018-07-27 18:42:54 +05:30
Nicolas Dufresne
cc38469f04 example: Build GTK and GTK GL example code 2018-07-19 22:59:11 -04:00
Havard Graff
ac6e77acad rtpsession: Don't start the RTCP thread until it's needed
Always wait with starting the RTCP thread until either a RTP or RTCP
packet is sent or received. Special handling is needed to make sure the
RTCP thread is started when requesting an early RTCP packet.

We want to wait with starting the RTCP thread until it's needed in order
to not send RTCP packets for an inactive source.

https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-07-12 18:37:33 +02:00
Matthew Waters
ee046864d8 qt: also check for un-suffixed moc
e.g. Qt windows installer doesn't have suffixes
2018-06-07 14:28:37 +10:00
Seungha Yang
aecc17251d tests: qtdemux: Add checking exposed segment event
https://bugzilla.gnome.org/show_bug.cgi?id=796480
2018-06-06 11:19:25 -04:00
Thiago Santos
0de143fa3e tests: qtdemux: Avoid using data beyond array and improve error msg
Makes it easier to debug the failures as well as prevents problems
reading out of bounds data.
2018-05-28 11:25:13 -07:00
Tim-Philipp Müller
48dd93662d tests: rtpstorage: fix potential crashes / test failures on 32-bit
Pass 64 bits to g_object_set() for 64-bit integer properties like
rtpstorage's "size-time" property.

https://bugzilla.gnome.org/show_bug.cgi?id=796429
2018-05-27 20:30:46 +01:00
Vivia Nikolaidou
d11339d616 splitmuxsink: Added new async-finalize mode
This mode is useful for muxers that can take a long time to finalize a
file. Instead of blocking the whole upstream pipeline while the muxer is
doing its stuff, we can unlink it and spawn a new muxer+sink combination
to continue running normally.

This requires us to receive the muxer and sink (if needed) as factories,
optionally accompanied by their respective properties structures. Also
added the muxer-added and sink-added signals, in case custom code has to
be called for them.

https://bugzilla.gnome.org/show_bug.cgi?id=783754
2018-05-24 12:47:24 +03:00
Havard Graff
77f3ce2e45 rtpsession: Add tests for PLI and FIR
https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-15 11:52:45 +01:00
Stian Selnes
457fdf95c4 rtpsession: Drop packet if trying to send from non-internal source
If obtain_internal_source() returns a source that is not internal it
means there exists a non-internal source with the same ssrc. Such an
ssrc collision should be handled by sending a GstRTPCollision event
upstream and choose a new ssrc, but for now we simply drop the packet.
Trying to process the packet further will cause it to be pushed
usptream (!) since the source is not internal (see source_push_rtp()).

https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-15 10:34:29 +01:00
Havard Graff
b43ee8f5b1 rtpsession: Try media_ssrc if no src can be found for PLI sender_ssrc
Some RTP stacks out there does not set the sender_ssrc. In order to be
more robust, try to lookup the media_ssrc before dropping the PLI.

https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-13 20:41:39 +01:00
Mikhail Fludkov
386ca1d378 rtpsession: Fix on-feedback-rtcp race
If there is an external source which is about to timeout and be removed
from the source hashtable and we receive feedback RTCP packet with the
media ssrc of the source, we unlock the session in
rtp_session_process_feedback before emitting 'on-feedback-rtcp' signal
allowing rtcp timer to kick in and grab the lock. It will get rid of
the source and rtp_session_process_feedback will be left with RTPSource
with ref count 0.

The fix is to grab the ref to the RTPSource object in
rtp_session_process_feedback.

https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-13 20:33:56 +01:00
John-Mark Bell
0a2b55ac3c rtpsession: do not emit RBs for internal senders.
These are the sources we send from, so there is no reason to
report receive statistics for them (as we do not receive on them,
and the remote side has no knowledge of them).

https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-13 19:16:59 +01:00
Havard Graff
cd8c12f240 tests: rtpsession: fix indentation
https://bugzilla.gnome.org/show_bug.cgi?id=795139
2018-05-13 19:09:29 +01:00
Seungha Yang
3f090be2d1 tests: qtdemux: Add test for stream change
Add test case to verify track-id change and stream change

https://bugzilla.gnome.org/show_bug.cgi?id=684790
2018-05-10 08:09:20 +02:00
Olivier Crête
168fae813b flvmux: Wait for caps from both srcs before writing header
Wait for caps on all pads to start writing data even when source is live.

Includes unit test by Havard Graff that simulates it.

https://bugzilla.gnome.org/show_bug.cgi?id=794722
2018-04-26 15:41:54 -04:00
Mathieu Duponchelle
90f5ae8f45 ulpfecdec: output perfect seqnums
ULP FEC, as defined in RFC 5109, has the protected and protection
packets sharing the same ssrc, and a different payload type, and
implies rewriting the seqnums of the protected stream when encoding
the protection packets. This has the unfortunate drawback of not
being able to tell whether a lost packet was a protection packet.

rtpbasedepayload relies on gaps in the seqnums to set the DISCONT
flag on buffers it outputs. Before that commit, this created two
problems:

* The protection packets don't make it as far as the depayloader,
  which means it will mark buffers as DISCONT every time the previous
  packets were protected

* While we could work around the previous issue by looking at
  the protection packets ignored and dropped in rtpptdemux, we
  would still mark buffers as DISCONT when a FEC packet was lost,
  as we cannot know that it was indeed a FEC packet, even though
  this should have no impact on the decoding of the stream

With this commit, we consider that when using ULPFEC, gaps in
the seqnums are not a reliable indicator of whether buffers should
be marked as DISCONT or not, and thus rewrite the seqnums on
the decoding side as well to form a perfect sequence, this
obviously doesn't prevent the jitterbuffer from doing its job
as the ulpfec decoder is downstream from it.

https://bugzilla.gnome.org/show_bug.cgi?id=794909
2018-04-19 18:17:39 +02:00
Sebastian Dröge
6d92fcd043 Revert "rtspsrc: Fix up sendonly/recvonly attribute handling"
This reverts commit af273b4de9.

While RFC 3264 (SDP) says that sendonly/recvonly are from the point of view of
the requester, the actual RTSP RFCs (RFC 2326 / 7826) disagree and say
the opposite, just like the ONVIF standard.

Let's follow those RFCs as we're doing RTSP here, and add a property at
a later time if needed to switch to the SDP RFC behaviour.

https://bugzilla.gnome.org/show_bug.cgi?id=793964
2018-04-17 17:58:01 +03:00
Matthew Waters
ca67a460ee meson: add build files for the qml plugin
Tested on linux with X11/wayland and semi-tested on Windows.

Windows crashes on item destruction however this is better than nothing.

Fix up some win32 build issues on the way with mismatched {} and
G_STMT_{START,END}
2018-04-15 23:49:57 +10:00
Mathieu Duponchelle
9b1aec0f79 flvmux test: refactor looped test.
Looping the test 500 times to only execute the test once every
33 times means we inited and deinited gstreamer 467 times
for no reason at all, which was annoying when running the test
with valgrind.
2018-04-13 23:02:26 +02:00
Mathieu Duponchelle
79f16d69af valgrind supps: ignore gnutls leaking a certificate
After investigating, we do dispose of the TLS connections
appropriately in the souphttpsrc test, which in turn
calls gnutls_deinit, but certificates get leaked anyway.
2018-04-13 21:28:44 +02:00
Mathieu Duponchelle
ec3c49e958 souphttpsrc test: free g_get_current_dir return 2018-04-13 20:35:24 +02:00
Mathieu Duponchelle
a9f01a88b8 valgrind supps: bring getaddrinfo suppression from -base 2018-04-13 20:31:07 +02:00
Mathieu Duponchelle
e74e1ec6bd valgrind supps: ignore more twolame conditional moves 2018-04-13 20:28:35 +02:00
Mathieu Duponchelle
cc9fe814d6 rtpulpfec tests: Fix leaks 2018-04-13 17:37:47 +02:00
Tim-Philipp Müller
503a854eff tests: remove broken and now pointless v4l2src-test
This tests APIs that don't exist any longer and also doesn't
work at all, and was last touched in a meaningful way in 2006.
2018-04-02 12:50:36 +01:00
Sebastian Dröge
ed2ccb1a60 rtp: Fix compilation with non-C99 compilers
By moving variable declarations out of loop headers.
2018-03-20 12:08:28 +02:00
Olivier Crête
96261ce220 flvmux: Duration & unit tests
The muxed buffers will not carry the duration of the
incoming buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=793457
2018-03-01 18:25:02 -05:00
Mathieu Duponchelle
b0dd092ea6 tests: fix redenc tests
The default of the allow-no-red-blocks property was changed in a
previous commit, thus breaking the test assumptions
2018-02-27 16:34:51 +01:00
Tim-Philipp Müller
7f6aa7c344 .gitignore more test binaries 2018-02-22 10:54:02 +00:00
Tim-Philipp Müller
4fbbf28558 tests: also dist new fec test header file 2018-02-21 20:46:10 +00:00
Mathieu Duponchelle
c8f442deb0 check: Fix ulpfec test build
The test name was updated but not the build definition
2018-02-21 18:51:17 +01:00
Mikhail Fludkov
d5ad50bd61 rtp: Implement ULPFEC (RFC 5109)
We expose a set of new elements:

* ULPFEC encoder / decoder
* A storage element, which should be placed before jitterbuffers,
  and is used to store packets in order to attempt reconstruction
  after the jitterbuffer has sent PacketLost events
* RED encoder / decoder (RFC 2198), these are necessary to
  use FEC in webrtc, as browsers will propose and expect ulpfec
  packets to be wrapped in red packets

With contributions from:

Mathieu Duponchelle <mathieu@centricular.com>
Sebastian Dröge <sebastian@centricular.com>

https://bugzilla.gnome.org/show_bug.cgi?id=792696
2018-02-21 14:15:22 +01:00
Tim-Philipp Müller
22ddef8ef4 examples: rtsp: fix meson build take 2 2018-02-16 09:42:59 +00:00
Sebastian Dröge
3e15b6651d rtsp: Fix meson.build of the example 2018-02-16 11:30:01 +02:00
Nirbheek Chauhan
befa41cdf6 rtspsrc: Implement ONVIF backchannel support
Set backchannel=onvif to enable, and use the 'push-backchannel-sample'
action signal with the correct stream id.
2018-02-16 11:06:27 +02:00
Tim-Philipp Müller
bbab8f79ad qt: hook up to build
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-12 18:40:10 +00:00
Tim-Philipp Müller
6c75e6c5e0 Move qt plugin from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-12 18:13:17 +00:00
Tim-Philipp Müller
eb29ffa36d gtk: hook up to meson build 2018-02-12 15:18:37 +00:00
Tim-Philipp Müller
9c21a17a9a gtk: hook up to autotools build 2018-02-10 13:33:42 +00:00
Tim-Philipp Müller
a12f8df0c6 Move gtk plugin from -bad
https://bugzilla.gnome.org/show_bug.cgi?id=754094
2018-02-10 12:49:36 +00:00
Tim-Philipp Müller
7ac08fd0a5 autotools: use -fno-strict-aliasing where supported
https://bugzilla.gnome.org/show_bug.cgi?id=769183
2018-02-05 08:25:45 +01:00
Jan Alexander Steffens (heftig)
54f312644e tests: aacparser: Test that short raw frames don't get concatenated
https://bugzilla.gnome.org/show_bug.cgi?id=792644
2018-01-18 19:09:25 +00:00
Mathieu Duponchelle
03dc22951b rtpbin: fix leak of elements requested by signals
When the signal returns a floating reference, as its return type
is transfer full, we need to sink it ourselves before passing
it to gst_bin_add (which is transfer floating).

This allows us to unref it in bin_remove_element later on, and
thus to also release the reference we now own if the signal
returns a non-floating reference as well.

As we now still hold a reference to the element when removing it,
we also need to lock its state and setting it to NULL before
unreffing it

Also update the request_aux_sender test.

https://bugzilla.gnome.org/show_bug.cgi?id=792543
2018-01-18 15:26:43 +01:00
Sebastian Rasmussen
0d57709d38 tests: udpsink: add check that sets QoS on IPv4/6 sockets
https://bugzilla.gnome.org/show_bug.cgi?id=757449
2017-12-23 12:45:11 +01:00
Olivier Crête
3bdb3a89c2 gtk example: Fix cflags in Makefile.am 2017-12-19 16:22:52 -05:00
Tim-Philipp Müller
2106bf0151 gl: update plugins to use GstGL from -base 2017-12-19 12:02:31 +00:00
fengalin
3464aac3c9 matroska: fix memory leaks due to toc related updates
https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
Sebastian Dröge
c55824e4fa matroskamux: Fix various memory leaks in the unit test
https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
fengalin
694c07fe63 matroska-mux: migrate test to gst_harness
... following the guide lines from Håvard Graff (see https://gstconf.ubicast.tv/videos/moar-better-tests/).

https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
fengalin
a6702a76d5 matroska: re-activate and update TOC support
TOC support in mastroskamux has been deactivated for a couple of years. This commit updates it to recent GstToc evolutions and introduces toc unit tests for both matroska-mux and matroska-demux.

There are two UIDs for Chapters in Matroska's specifications:
- The ChapterUID is a mandatory unsigned integer which internally refers to a given chapter. Except for title & language which use dedicated fields, this UID can also be used to add tags to the Chapter. The tags come in a separate section of the container.
- The ChapterStringUID is an optional UTF-8 string which also uniquely refers to a chapter but from an external perspective. It can act as a "WebVTT cue identifier" which "can be used to reference a specific cue, for example from script or CSS".

During muxing, the ChapterUID is generated and checked for unicity, while the ChapterStringUID receives the user defined UID. In order to be able to refer to chapters from the tags section, we maintain an internal Toc tree with the generated ChapterUID.

When demuxing, the ChapterStringUIDs (if available) are assigned to the GstTocEntries UIDs and an internal toc mimicking the toc is used to keep track of the ChapterUIDs and match the tags with the appropriate GstTocEntries.

https://bugzilla.gnome.org/show_bug.cgi?id=790686
2017-12-15 16:14:43 +02:00
Sebastian Dröge
4f7b995ae7 v4l2src: Fix compiler error in example caused by re-declaring index
../tests/examples/v4l2/v4l2src-renegotiate.c:57:13: error: ‘index’ redeclared as different kind of symbol
 static gint index = 0;
             ^
2017-12-14 18:28:00 +02:00
Tim-Philipp Müller
c6b686624a tests: ignore rtph264 test binary 2017-12-09 16:15:24 +00:00
George Kiagiadakis
33bddfe321 tests: udpsrc: verify the correct amount of bytes is sent to the socket
https://bugzilla.gnome.org/show_bug.cgi?id=786799
2017-12-09 16:08:49 +00:00
George Kiagiadakis
ea7d2a0257 tests: udpsrc: ensure test won't timeout if the buffers are already received
Sometimes all the buffers are received before the time we lock the
check_mutex, in which case g_cond_wait will wait forever for another
one. Just check if this is the case before waiting.

https://bugzilla.gnome.org/attachment.cgi?id=358397
2017-12-09 16:08:38 +00:00
George Kiagiadakis
45c82ee798 tests: udpsrc: fix test_udpsrc to actually run and fix locking
Previously this would silently be skipped because 1600 != 1400
and there is no assertion on this call.

Also unlock check_mutex after use.

https://bugzilla.gnome.org/show_bug.cgi?id=786799
2017-12-09 16:05:28 +00:00
Haakon Sporsheim
3c0d006c03 rtpsession: Handle zero length feedback packets
https://bugzilla.gnome.org/show_bug.cgi?id=791074
2017-12-02 13:58:34 +00:00
Havard Graff
96d837b301 tests: rtpsession: refactor tests to use GstHarness
This patch simplifies the tests (44% less code) and
makes them much more readable.

The provided SessionHarness also makes it much easier
to write new tests for rtpsession.

https://bugzilla.gnome.org/show_bug.cgi?id=791070
2017-12-02 13:05:01 +00:00
Jan Schmidt
76e458a119 splitmuxsink: Use muxer reserved space properties if present.
If the use-robust-muxing property is set, check if the
assigned muxer has reserved-max-duration and
reserved-duration-remaining properties, and if so set
the configured maximum duration to the reserved-max-duration
property, and monitor the remaining space to start
a new file if the reserved header space is about to run out -
even though it never ought to.
2017-11-25 00:56:11 +11:00
Jan Schmidt
3a813a0dcc splitmux: Fix file switch-on-caps-change.
Switching to a new fragment because the input caps have
changed didn't properly end the previous file. Use the normal
EOS sequence to ensure that happens. Add a test that it works.
2017-11-24 16:56:03 +11:00
Tim-Philipp Müller
bca8ac2cf0 tests: rtp-payloading: add unit test for rtph264pay codec_data
Make sure no trailing zero bytes sneak into our SPS or PPS.

https://bugzilla.gnome.org/show_bug.cgi?id=732758
2017-11-23 09:36:15 +01:00
Tim-Philipp Müller
a9e57f3608 tests: rtph264depay: add test for using downstream memory allocator 2017-11-23 09:36:00 +01:00
Nicolas Dufresne
3ea2621036 v4l2-renegotiate: Don't leak the option context 2017-09-13 11:38:44 -04:00
Nicolas Dufresne
22a5f56f2a v4l2src-renegotiate: Don't leak pipeline desc string 2017-09-13 11:33:33 -04:00
Nicolas Dufresne
3975e87136 v4l2-renegotiate: Change --enable-dmabuf into --io-mode=
This gives allow testing dmabuf importation but also exportation buy
letting user pick anything from the io-mode property on v4l2src.
2017-09-13 11:32:09 -04:00
Tim-Philipp Müller
ccd15c0dfd tests: mpg123audiodec: add files needed by unit tests 2017-08-26 12:59:35 +01:00
Tim-Philipp Müller
9cc395a589 tests: add basic unit test for twolame as well 2017-08-26 10:10:19 +01:00
Tim-Philipp Müller
60b6128d0c tests: lame: fix build 2017-08-26 09:59:22 +01:00
Tim-Philipp Müller
8fe7dbf8ef tests: ignore another binary 2017-08-26 09:52:33 +01:00
Tim-Philipp Müller
1473b662de lame: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-26 09:14:55 +01:00
Tim-Philipp Müller
53ec444963 Moving lame mp3 encoder plugin from -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-25 21:13:58 +01:00
Julien Isorce
a4d74fda9a gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 10:00:19 +01:00
Thibault Saunier
97b58bd263 meson: Link mpeg123audiodec test against gstfft
Fixing build error:

/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:150: undefined reference to `gst_fft_s32_new'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_window'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:151: undefined reference to `gst_fft_s32_fft'
/run/build/gst-plugins-good/_flatpak_build/../tests/check/elements/mpg123audiodec.c:147: undefined reference to `gst_fft_s32_free'
2017-08-20 20:41:20 -03:00
Tim-Philipp Müller
32591f5649 tests: tagschecking: remove gst-check-xmp-* temp files when done
Also fix temp file creation a bit.
2017-08-20 17:25:25 +01:00
Tim-Philipp Müller
5547901a37 mpg123: hook up to build system
https://bugzilla.gnome.org/show_bug.cgi?id=774252
2017-08-20 15:50:22 +01:00
Tim-Philipp Müller
4b1f43ebe3 Moving mpg123 plugin from -ugly 2017-08-20 13:48:48 +01:00
Tim-Philipp Müller
81e5b0bdee tests: icles: fix build
Can't do additions/subtractions on void* pointers.
2017-07-21 19:02:26 +01:00
Thibault Saunier
b028d91439 tests:icles: Fix previous patch by implementing our memmem
Using the string version of it will fail on '\0'.
2017-07-21 11:10:00 -04:00
Thibault Saunier
7e8fe2844b tests:icles: Do not use memmem GNU extension function
As it is not avalaible on windows/msvc and we can use pure GLib for that
2017-07-21 10:19:37 -04:00
Sebastian Dröge
7e718d6039 Revert "matroskamux: adjust unit test to modified behaviour"
This reverts commit 8fe478c8a7.

We're back to previous behaviour
2017-07-18 10:08:33 +03:00
Reynaldo H. Verdejo Pinochet
3cfec119b1 examples: v4l2: fix wrong initializations brought by 4e8ad58302
https://bugzilla.gnome.org/show_bug.cgi?id=682770
2017-07-07 23:53:01 -07:00
Nicolas Dufresne
4e8ad58302 examples: v4l2: add example for v4l2src renegotiation
Based on work from Thiago Santos <thiagoss@osg.samsung.com>

https://bugzilla.gnome.org/show_bug.cgi?id=682770
2017-07-07 17:19:17 -04:00
Tim-Philipp Müller
e5f3e2268d tests: rtpbin: fix build in uninstalled setup 2017-07-05 14:44:41 +01:00
Olivier Crête
96e71b0286 rtpsession: Send EOS if all internal sources sent bye
The ones which are not internal should not matter, and we should
wait for all sources to have sent their BYEs.

And add unit test

https://bugzilla.gnome.org/show_bug.cgi?id=773218
2017-07-04 21:14:10 -04:00
Jan Alexander Steffens (heftig)
aa8ac28d86 tests: souphttpsrc: Avoid deprecated ssl-ca-file property
SoupSession's ssl-ca-file property is deprecated. Use the recommended
tls-database property.

This is a bit more complex as it requires creating a GTlsFileDatabase
object for an absolute (!) path to the CA certificates file.

https://bugzilla.gnome.org/show_bug.cgi?id=784005
2017-06-29 15:32:30 -04:00
Jan Alexander Steffens (heftig)
9922091f1b tests: souphttpsrc: Avoid deprecated server ssl properties
The ssl-cert-file and ssl-key-file properties are deprecated. Use the
soup_server_set_ssl_cert_file function to load the files.

https://bugzilla.gnome.org/show_bug.cgi?id=784005
2017-06-29 15:32:30 -04:00
Jan Alexander Steffens (heftig)
27a0ea8cf5 tests: souphttpsrc: Make ssl_cert/key_file static
Just a bit of cleanup.

https://bugzilla.gnome.org/show_bug.cgi?id=784005
2017-06-29 15:32:30 -04:00
Jan Alexander Steffens (heftig)
e63a12c77d tests: souphttpsrc: Update test-cert.pem
Recent GnuTLS disregards the Common Name and only looks at the Subject
Alternative Name extension. Since our test-cert has no SAN extension,
validation fails.

Generate a new certificate with SAN. In addition to 127.0.0.1, for good
measure make it valid for localhost and ::1, too.

https://bugzilla.gnome.org/show_bug.cgi?id=784005
2017-06-29 15:32:30 -04:00
Tim-Philipp Müller
9f678898f8 meson: build examples
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-26 11:10:29 +01:00
Tim-Philipp Müller
0fd4a11711 meson: tests: icles: simplify build file 2017-06-26 09:39:13 +01:00
Tim-Philipp Müller
57a6e2ffd4 meson: build tests/icles/
https://bugzilla.gnome.org/show_bug.cgi?id=784134
2017-06-26 00:22:56 +01:00
Tim-Philipp Müller
dd23afb6d4 sys: remove sunaudio plugin
Even though hooked up to the build system, it's clear that no one
has ever built or used this with GStreamer 1.x. It wants to link
against libgstinterfaces, which no longer exists. And uses 0.10-style
raw audio caps. And the last meaningful change was done in 2009.
Let's just remove it.
2017-06-23 20:02:43 +01:00
Jan Schmidt
de26b9e5f3 qmlsink example: Add CMakeLists.txt
Make it possible to build using cmake instead of qmake
2017-06-22 01:01:40 +10:00
Thibault Saunier
d3cbea0919 meson: Do not use path separator in test names
Avoiding warnings like:

    WARNING: Target "elements/audioamplify" has a path separator in its name.
2017-06-07 12:47:59 -04:00
Nicolas Dufresne
e937a8856d Fix v4l2 example 2017-06-06 11:30:07 -04:00
Tim-Philipp Müller
c35292505b meson: add options to set package name and origin
https://bugzilla.gnome.org/show_bug.cgi?id=782172
2017-05-20 14:53:42 +01:00
Tim-Philipp Müller
4df3669c0c tests: rtp-payloading: add test for rtph264depay avc/byte-stream output
Make sure avc output doesn't contain SPS/PPS inline, but
byte-stream output does.
2017-04-24 17:31:04 +01:00
Edward Hervey
7e9b7658e5 tests: Add vp9enc to gitignore 2017-04-12 11:33:05 +02:00
George Kiagiadakis
21f532f1c6 tests/check/rtprtx: add checks for rtprtxqueue's max-size-{time,packets} properties
https://bugzilla.gnome.org/show_bug.cgi?id=780867
2017-04-11 09:44:33 +03:00
Vincent Penquerc'h
d7212dac2e tests: fix leak in splitmux test
https://bugzilla.gnome.org/show_bug.cgi?id=781025
2017-04-09 11:19:56 +03:00
Thibault Saunier
a7be8815b5 meson: Use get_pkgconfig_variable instead of calling pkg-config ourself
It is avalaible in meson 0.36 which is now are requirement
2017-03-28 14:23:16 -03:00
Thibault Saunier
8fab61bd22 meson: test: Fix environment object usage 2017-03-28 11:22:21 -03:00
Olivier Crête
d9cd0e2e44 pulse example: Remove
That example only tested the property probe interface, which has been removed.
The same kind of thing can now be done with the generic gst-device-monitor tool.
2017-03-14 16:42:25 -04:00
Jan Schmidt
57939fd98a splitmux test: Use passed first/last timestamps
Don't hard-code the expected timestamp range, use the
values the caller is passing in.
2017-03-14 15:48:08 +11:00
Nicolas Dufresne
27303b5904 tests: Add missing LDADD for libm in tests using math.h
Also, remove the math.h include for the one that just prentend to need
it.
2017-03-08 22:55:09 -05:00
Jan Schmidt
4335c4c160 splitmux: Add unit test for reverse playback
Ensure that reverse playback works and generates the range
of timestamps (0-3s) we expect, in monotonically descending order.
2017-03-04 00:35:32 +11:00
Edward Hervey
4ac5abcdb9 check: Fix splitmux test CFLAGS
Needs to know where the gstapp headers are
2017-02-28 11:02:54 +01:00
Sebastian Dröge
eefcdc9ee1 rtp-payloading: Add new test for Vorbis renegotiation
Check if encoding, payloading, depayloading and decoding works if the
stream configuration (and thus the headers) change.
2017-02-27 19:25:35 +02:00
George Kiagiadakis
e6bd2a5c18 tests: splitmux: add unit test for content with sparse streams
https://bugzilla.gnome.org/show_bug.cgi?id=761086
2017-02-27 12:58:21 +02:00
Guillaume Desmottes
0f719af307 tests: matroskamux, qtmux: don't add codec_data buffers to template caps
streamheader and codec_data buffers fields are only meant to be
in the negotiated caps, not the template caps.

Fixes false-positive leaks of those buffers detected by the leaks
tracer, as template caps are static, and we decided to not include
code in gstreamer core to handle this unusual case of template caps
having buffers in them.

https://bugzilla.gnome.org/show_bug.cgi?id=768762
2017-02-21 15:47:16 +00:00
Søren Juul
1184429e21 icydemux: reset tags on empty value
Some radio streams uses StreamTitle='' to reset the title after a
track stopped playing, e.g. while the host talks between tracks or
during news segments.
This change forces an empty tag object to be distributed if
StreamTitle or StreamUrl is received with empty value, thus allowing
downstream elements to get notified about this.

https://bugzilla.gnome.org/show_bug.cgi?id=778437
2017-02-14 12:24:13 +02:00
Sebastian Dröge
9f5fe2673e rtp: Remove unused variable in example
client-PCMA.c:84:22: warning: unused variable 'isrc' [-Wunused-variable]
  GObject *session, *isrc, *osrc;
                     ^
2017-01-25 20:56:24 +02:00
Thibault Saunier
44f09d74ff meson: Properly use ':' for defining keywords 2017-01-24 19:24:52 -03:00
Juan Pablo Ugarte
efa2ed59c7 gl/examples/gtk: fixed compilation on systems without GL_GEOMETRY_SHADER
https://bugzilla.gnome.org/show_bug.cgi?id=777143
2017-01-13 11:20:51 +11:00
Tim-Philipp Müller
781b5ac781 tests: rtpjitterbuffer: fix compiler warning due to c99-ism
rtpjitterbuffer.c:592:3: error: ‘for’ loop initial declarations are only allowed in C99 mode
2017-01-09 19:04:04 +00:00
Jan Schmidt
f7009eb5d7 splitmuxsink: Add format-location-full signal
Add a new signal for formatting the filename, which receives
a GstSample containing the first buffer from the reference
stream that will be muxed into that file.

Useful for creating filenames that are based on the
running time or other attributes of the buffer.

To make it work, opening of files and setting filenames is
now deferred until there is some data to write to it,
which also requires some changes to how async state changes
and gap events are handled.
2017-01-03 01:34:02 +11:00
Edward Hervey
3a4d4dcd27 check: Remove dead code 2017-01-02 15:06:33 +01:00
Nicola Murino
8fe478c8a7 matroskamux: adjust unit test to modified behaviour
Now matroskamux mark all packets of audio-only streams as keyframes so
in test_block_group after pushing the test audio data 4 buffers are produced
and not more 2. The last buffer is the original data and must match with what
pushed. The remaining ones are matroskamux headers

https://bugzilla.gnome.org/show_bug.cgi?id=754696
2016-12-21 16:58:42 +00:00
Havard Graff
0a81f71df5 tests/jitterbuffer: Major refactoring and cleanups
* Changed PCMU->TEST for common macros
* Changed verify-functions (lost & rtx) into macros.
* Remove option to add marker-bit for test-buffers (not used anywhere)
* Add new push_test_buffer function that makes sure there are correlation
  between dts and the time on the clock. (classic test-mistake)
* Established a generic starting-point for tests with the
  construct_deterministic_initial_state function and use it where
  applicable, which removes lots of "boilerplate" everywhere.
* Add basic lost-event test
* Remove as much "magic constants" as possible.
* Remove 3 tests that no longer are testing anything that others don't,
  and was completely unmaintainable.
* Remove unnecessary use of the testclock
* Verify each test is testing what it actually says it does (and modify
  where it doesn't)

In general, make the tests much smaller, better, more maintainable and
readable.

https://bugzilla.gnome.org/show_bug.cgi?id=774409
2016-12-14 15:00:37 +02:00
Sebastian Dröge
63938ef730 gst: Don't declare variables inside the for loop header
This is a C99 feature.
2016-12-13 22:32:46 +02:00
Matthew Waters
6ce990d24e tests/examples/qmlsink: scope QApplication/Engine
So they are destroyed before gst_deinit() is run and the leaks tracer
doesn't show false-positives.

https://bugzilla.gnome.org/show_bug.cgi?id=775746
2016-12-07 23:02:02 +11:00
Philippe Normand
dcd3ce9751 rtpbin: receive bundle support
A new signal named on-bundled-ssrc is provided and can be
used by the application to redirect a stream to a different
GstRtpSession or to keep the RTX stream grouped within the
GstRtpSession of the same media type.

https://bugzilla.gnome.org/show_bug.cgi?id=772740
2016-11-16 08:56:34 +01:00
Havard Graff
1a4393fb4d rtpjitterbuffer: fix timer-reuse bug
When doing rtx, the jitterbuffer will always add an rtx-timer for the next
sequence number.

In the case of the packet corresponding to that sequence number arriving,
that same timer will be reused, and simply moved on to wait for the
following sequence number etc.

Once an rtx-timer expires (after all retries), it will be rescheduled as
a lost-timer instead for the same sequence number.

Now, if this particular sequence-number now arrives (after the timer has
become a lost-timer), the reuse mechanism *should* now set a new
rtx-timer for the next sequence number, but the bug is that it does
not change the timer-type, and hence schedules a lost-timer for that
following sequence number, with the result that you will have a very
early lost-event for a packet that might still arrive, and you will
never be able to send any rtx for this packet.

Found by Erlend Graff - erlend@pexip.com

https://bugzilla.gnome.org/show_bug.cgi?id=773891
2016-11-04 16:56:56 +02:00
Havard Graff
fb9c75db36 rtpjitterbuffer: fix lost-event using dts instead of pts
The lost-event was using a different time-domain (dts) than the outgoing
buffers (pts). Given certain network-conditions these two would become
sufficiently different and the lost-event contained timestamp/duration
that was really wrong. As an example GstAudioDecoder could produce
a stream that jumps back and forth in time after receiving a lost-event.

The previous behavior calculated the pts (based on the rtptime) inside the
rtp_jitter_buffer_insert function, but now this functionality has been
refactored into a new function rtp_jitter_buffer_calculate_pts that is
called much earlier in the _chain function to make pts available to
various calculations that wrongly used dts previously
(like the lost-event).

There are however two calculations where using dts is the right thing to
do: calculating the receive-jitter and the rtx-round-trip-time, where the
arrival time of the buffer from the network is the right metric
(and is what dts in fact is today).

The patch also adds two tests regarding B-frames or the
“rtptime-going-backwards”-scenario, as there were some concerns that this
patch might break this behavior (which the tests shows it does not).
2016-11-04 16:51:20 +02:00