Commit graph

928 commits

Author SHA1 Message Date
George Kiagiadakis
184553151d tests: rtprtx::test_rtxreceive_data_reconstruction: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
2014-01-21 15:00:53 +01:00
George Kiagiadakis
7677aec2fa tests: rtprtx::test_rtxsender_packet_retention: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
2014-01-21 15:00:53 +01:00
George Kiagiadakis
7011f98d7e tests: rtprtx::test_push_forward_seq: fix race condition
Now with rtprtxsend pushing rtx buffers from a different thread,
this is necessary to ensure that the result of the test is deterministic.

This code makes use of GstCheck's global GMutex and GCond that are
being used inside GstCheck's sink pad chain() function in order
to synchronize with it.
2014-01-21 15:00:53 +01:00
George Kiagiadakis
c702e37091 tests: rtprtx::test_push_forward_seq: fix buffer refcounting 2014-01-21 15:00:53 +01:00
Olivier Crête
8a143dfcbc tests: Remove usage of the system clock from the rtprtx test 2014-01-15 10:13:12 +01:00
Olivier Crête
f0a4f26fa7 tests: Initial segment in rtpcollision test 2014-01-15 10:13:12 +01:00
George Kiagiadakis
a7823bc522 examples/*-rtpaux: specify payload type association for the audio stream, so that rtx works also for audio 2014-01-15 10:13:12 +01:00
Stefan Sauer
d1223ebd10 wavparse: split the test
This way one failure won't shadow the other test and also if one fails we get
better disgnostics through the test-name.
2014-01-06 21:13:37 +01:00
George Kiagiadakis
94e4cd203b test/check: Verify rtprtxsend::ssrc-map property works as expected 2014-01-03 20:48:29 +01:00
George Kiagiadakis
9226091235 rtprtxreceive: modify to use a payload-type map like rtprtxsend 2014-01-03 20:48:29 +01:00
Wim Taymans
130ad1b1fa rtprtxsend: Allow SSRC-multiplexing and multiple payload types in the original stream
Conflicts:
	tests/examples/rtp/server-rtpaux.c
2014-01-03 20:48:29 +01:00
Torrie Fischer
e29b5f8b41 examples: rtp: Add end-to-end rtpbin example with RTX elements
This example demonstrates how to use rtpbin with retransmission (rtx)
elements set in the place of rtpbin's "aux" elements in order to
enable RTP retransmission according to the rules of RFC4588.
2014-01-03 20:48:29 +01:00
Julien Isorce
5f360f3b13 tests/check: add rtpaux::test_simple_rtpbin_aux
It shows how to use "set-aux-receive" and "set-aux-send"
properties of rtpbin to set rtprtxsend and rtprtxreceive

Build 2 pipelines, one for rtpbin as a sender and one for
rtobin as a receive. Then transmit an audio stream.

It also drops some packets to activate restransmission and
check they are actually retransmited.
2014-01-03 20:48:29 +01:00
Julien Isorce
68149d14e1 tests/check: add rtpcollision::test_rtx_ssrc_collision unit test
check that rtxrtpsend changes its retransmission ssrc when
collision happens
2014-01-03 20:48:28 +01:00
George Kiagiadakis
123bc46b60 tests/check: add rtprtx::test_rtxreceive_data_reconstruction
This unit test verifies that retransmitted rtp packets coming out
of rtprtxreceive are the same as the original ones.
2014-01-03 20:48:28 +01:00
George Kiagiadakis
487fa8c989 rtprtxsend: retransmit packets in the same order as the rtx requests 2014-01-03 20:48:28 +01:00
George Kiagiadakis
3e818e218b tests/check: Add unit test for rtxsend's max_size_time property 2014-01-03 20:48:28 +01:00
George Kiagiadakis
f7277db9e4 tests/check: Add rtprtx::test_rtxsender_packet_retention
This unit test verifies that the rtxsend element correctly maintains
a buffer of already transmitted rtp packets and that it can
re-transmit all of them correctly on demand. It also verifies
that the limit of this buffer (max-size-packets property) is respected.
2014-01-03 20:48:28 +01:00
Julien Isorce
71bdb5e088 tests/check: add rtprtx::test_drop_multiple_sender unit test
Several senders / one receiver

Similar than test_drop_one_sender but with multiple senders
mixed through the funnel element.
It drops some packets and checks that they are retransmited
correctly.
2014-01-03 20:48:28 +01:00
Julien Isorce
2a2fa7ebc0 tests/check: add rtprtx::test_drop_one_sender unit test
Test for one sender / one receiver

Build the pipeline
videotestsrc ! rtpvrawpay ! rtprtxsend ! rtprtxreceive ! fakesink
and drop some buffers between rtprtxsend and rtprtxreceive
Then it checks that every dropped packet has been re-sent.
It also checks that not too much requests has been sent.
2014-01-03 20:48:27 +01:00
Julien Isorce
2e4ce28443 tests/check: add rtprtx::test_push_forward_seq
add simple unit test that manually push buffers
in rtprtxsend connected to rtprtxreceive.
Drops some buffers and make sure they are retransmisted.
2014-01-03 20:48:27 +01:00
Wim Taymans
c83ed4f61e tests: add AUX receiver unit test 2013-12-31 15:08:49 +01:00
Wim Taymans
b91e0096b7 tests: improve rtpbin test 2013-12-31 15:08:49 +01:00
Wim Taymans
3e83e6a33d tests: add AUX sender unit test 2013-12-31 15:08:49 +01:00
Wim Taymans
841f9ad050 tests: add decoder test 2013-12-31 15:08:48 +01:00
Wim Taymans
3f3b2d0886 rtpbin: handle multiple encoder instances
Keep track of elements that are added to multiple sessions and make sure
we only add them to the rtpbin once and that we clean them when no
session refers to them anymore.
2013-12-30 16:28:57 +01:00
Wim Taymans
76e4cbc753 tests: add unit test for encoder element 2013-12-30 15:17:05 +01:00
Wim Taymans
bcd1589a91 tests: fix leak 2013-12-30 15:17:05 +01:00
Sebastian Dröge
29840bfd96 wavpackdec: Send a CAPS event in the unit test 2013-12-30 11:07:03 +01:00
Olivier Crête
dc845c1899 tests: Initialize segment in rtpcollision test 2013-12-13 16:05:41 -05:00
George Kiagiadakis
f9b7f44938 tests/check: add an rtpsession unit test to verify all RBs are included in all SRs, roundrobin
This test checks that when we have multiple internal sender sources
in rtpsession, SRs contain RBs for every other sender source, and that
they are included roundrobin when they exceed ST_RTCP_MAX_RB_COUNT,
which is the max number of RBs that can fit in a SR.
2013-12-12 16:02:56 +01:00
Julien Isorce
d562263852 tests/check: improve rtpcollision::test_master_ssrc_collision to ensure that a collision does not BYE the whole session
Conflicts:
	tests/check/elements/rtpcollision.c
2013-12-12 15:39:40 +01:00
Julien Isorce
7b001e35ed tests/check: add rtpcollision::test_master_ssrc_collision unit test
It checks the payloader changes its ssrc when collision happens
2013-12-12 15:39:39 +01:00
Wim Taymans
eee515cb2c rtpjitterbuffer: serialize events in the buffer
Serialize events into the jitterbuffer by inserting them with a -1
seqnum.
Update unit test to expect events from the streaming thread.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=652986
2013-12-10 11:57:37 +01:00
Wim Taymans
e0a5c07e8d audioparsers: use ACCEPT_INTERSECT flag
The parser can accept input that is not completely specified. Use the
ACCEPT_INTERSECT flag on the sinkpad to tweak the acceptcaps function to
check for intersection only. This allows us to proxy downstream
constraints while still allowing non-subset caps as input.
We can then also remove the appended template caps workaround.
Make a unit-test to check the new feature.

This reverts commit 26040ee38c

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=705024
2013-12-03 22:26:44 +01:00
Nicolas Dufresne
77833b886d videoflip: Add unit test for the 'automatic' method
These new tests send a tag event before seding the buffer. Tested case are an
empty tag list, a tag list with orientation-180 set and an invalid orientation value.

https://bugzilla.gnome.org/show_bug.cgi?id=719497
2013-11-28 11:59:05 -05:00
Wim Taymans
29d9b1e7de check: fix jitterbuffer check
Don't advance the clock to 240ms too early.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=710013
2013-11-25 17:39:52 +01:00
Wim Taymans
710d1f3a2a rtpjitterbuffer: improve clear-pt-map handling
Don't reset the expected output seqnum when clearing the pt map because this
could stall the jitterbuffer forever.
Add a unit test for this.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=709800
2013-11-25 15:52:22 +01:00
George Kiagiadakis
387e3b918a rtpjitterbuffer: Fix stats property field names and documentation 2013-11-15 16:23:34 +02:00
Torrie Fischer
22ceb80ba9 rtpjitterbuffer: implement rtx statistics 2013-11-14 09:24:26 +01:00
Wim Taymans
3623ebf01e check: add rtpsession test
Add a basic rtpsession test to ensure that RR blocks are generated when
multiple SSRC senders are active.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711270
2013-11-11 14:28:52 +01:00
Thiago Santos
43602e2d8a tests: souphttpsrc: add explicit cast to silence warning
Silencing this warning:

elements/souphttpsrc.c:533:14: error: comparison between ‘SoupKnownStatusCode’ and ‘enum <anonymous>’ [-Werror=enum-compare]
   if (status != SOUP_STATUS_OK && !send_error_doc)

With gcc 4.8.2 (debian)
2013-10-31 13:22:40 -03:00
Wim Taymans
3c69d65b85 tests: add test for retransmission because of reordering 2013-09-23 14:45:27 +02:00
Wim Taymans
f40d6689f2 tests: remove timeouts from check
Timeouts make the test unreliable and are not needed.
2013-09-23 14:45:26 +02:00
Wim Taymans
a71014518c tests: add test for packet delay and retransmission 2013-09-23 14:45:24 +02:00
Wim Taymans
c959cdc8c1 tests: check both PTS and DTS 2013-09-23 14:45:24 +02:00
Wim Taymans
2e3346eff9 tests: add unit-test for multiple missing packets
Check if multiple missing packets generate retransmission events and that the
retranmission requests are canceled when the missing packet arrives.
2013-09-23 14:45:24 +02:00
Wim Taymans
3b9e2ee5a0 tests: improve debug 2013-09-23 14:45:23 +02:00
Wim Taymans
ee817363c7 tests: add retransmission jitterbuffer test
Store both DTS and PTS on buffers.
Make a queue for srcpad events.
Activate pads after linking so that we don't get RECONFIGURE events.
Add test for retransmission.
2013-09-19 14:32:48 +02:00
Wim Taymans
ee75d4b01e tests: fix comments 2013-09-18 15:08:45 +02:00
Wim Taymans
5c1f2f0045 rtpjitterbuffer: add another test
The test is modified slightly because the late lost packets are only
generated now when a large gap is received.
2013-09-18 14:23:55 +02:00
Wim Taymans
5d5fc03e04 rtpjitterbuffer: round gap duration to multiple of duration
Make sure the gap duration in the lost event is a multiple of the packet
duration.
Enable another test.
2013-09-18 14:12:47 +02:00
Wim Taymans
6e4a051d40 rtpjitterbuffer: keep track of duration
Keep track of the estimated duration of missing packets and use it in the lost
event.
Enable another unit test
2013-09-18 12:29:38 +02:00
Wim Taymans
ac3bb3acf6 rtpjitterbuffer: handle large gaps with one lost event
When we have a large number of missing packets, generate one lost event for all
the packets that have no chance of being pushed out in time.
Fix and activate unit test for large gaps.
2013-09-18 11:59:28 +02:00
Wim Taymans
99675d1161 check: change for videomixer renamed orc file 2013-09-17 15:11:41 +02:00
Wim Taymans
aa9af2c82e examples: we don't need the queue anymore 2013-09-16 15:55:55 +02:00
David Holroyd
a956a6ceb2 rtp: add L24 pay and depayloader
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707734
2013-09-09 15:13:46 +02:00
Tim-Philipp Müller
cc4f985332 tests: rganalysis: rename function for clarity 2013-09-02 22:50:58 +01:00
Christoph Reiter
92dde0760b tests: fix skipped rganalysis tests
In 0.10 elements would post tag messages on the bus
directly, and rganalysis would only post a tag message
when it changed tags. In 1.0, only sinks post tag
messages when they receive the serialised tag event.
This means that we get an additional tag message on
the bus now where we didn't expect one before.

https://bugzilla.gnome.org/show_bug.cgi?id=695090
2013-09-02 20:00:29 +01:00
Wim Taymans
43359b9244 tests: add retransmission example 2013-08-23 12:10:19 +02:00
Thibault Saunier
6c349d6ec3 videomixer: Send EOS if buf_end >= segment.stop
That means the whole segment is already played, and we are sure we
are EOS at that point.

Also handle segment seeks, and do not send EOS in that case.
2013-08-11 19:05:18 +02:00
Tim-Philipp Müller
67eb029a50 tests: skip https test if there's no TLS support in soup/glib 2013-08-04 14:32:47 +01:00
David Schleef
4a2ae4c001 tests: create/remove orc directory at proper time
Before automake creates .deps directories, and during distclean.
2013-08-02 17:38:34 -07:00
Tim-Philipp Müller
7a740479b9 tests: ignore new test binaries 2013-07-29 19:48:54 +01:00
Tim-Philipp Müller
a53dcf98f8 tests: fix test ID3 tags up not to rely on dodgy typefinding code
Change 0xff 0xfb 'mp3' marker to 'fLaC' marker, so we can fix
the typefinder.

https://bugzilla.gnome.org/show_bug.cgi?id=681368
2013-07-25 10:43:13 +01:00
Nicolas Dufresne
01b20ab901 videocrop: Fix unit for GRAY16 formats 2013-07-18 10:54:50 -04:00
Douglas Bagnall
cff0b179d3 level: Fix the spectrum example for 1.0
The "message" property has been replaced by "post-messages".

Pre-patch output:

(test_spectrum:23101): GLib-GObject-WARNING **: g_object_set_valist:
object class `GstSpectrum' has no property named `message'
New spectrum message, endtime 0:00:00.100000000

(test_spectrum:23101): GStreamer-CRITICAL **:
gst_value_list_get_value: assertion `GST_VALUE_HOLDS_LIST (value)' failed
[...]

Post-patch:

New spectrum message, endtime 0:00:00.100000000
band 0 (freq 400): magnitude -65.988777 dB phase 1.533397
band 1 (freq 1200): magnitude -65.545563 dB phase -0.780900
band 2 (freq 2000): magnitude -64.791946 dB phase -0.799611
band 3 (freq 2800): magnitude -64.556175 dB phase -0.063615
[...]

https://bugzilla.gnome.org/show_bug.cgi?id=704179
2013-07-15 08:02:01 +02:00
Sebastian Dröge
1a11a9be0c rtp: Fail payloading unit test if an error message is received 2013-07-08 14:15:34 +02:00
Stefan Sauer
115b117878 audiopanorama: cleanup and expand the tests
Split out two more tests. Extract more common code into helpers. Add coverage for float.
2013-06-11 21:48:18 +02:00
Stefan Sauer
1602f50195 level: rework the tests to cover other formats too 2013-06-09 20:39:48 +02:00
Stefan Sauer
bf250a90dc tests: cleanup level tests
Split out a few more tests to avoid checking the same stuff over and over again.
2013-06-02 13:05:09 +02:00
Stefan Sauer
19b23d3b90 level: add a test for continous timestamps
A test that checks that msg[n].ts + msg[n].dur == msg[n+1].ts.
2013-06-01 21:34:37 +02:00
Wim Taymans
1516c14881 Revert "rtph264pay/depay: Add frame dimensions a payloaded caps"
This reverts commit 3dca756a5d.

The H264 RTP spec has no attributes for width and height.
2013-05-31 15:11:12 +02:00
Wim Taymans
f870cef8bc Revert "rtpjpegpay/depay: Replace framerate caps field with fraction"
This reverts commit 9fd25a810b.

We deal with sdp attributes in application/sdp, which are always strings.
2013-05-31 15:05:51 +02:00
Thibault Saunier
03fc515f66 tests: videomixer: Add a testsuite for videomixer
This is mostly copy pasted from -base/tests/check/elements/adder.c
2013-05-25 11:05:37 -04:00
Sebastian Rasmussen
9fd25a810b rtpjpegpay/depay: Replace framerate caps field with fraction
The previous implementation had the formatting of SDP attributes happen
in each RTP payloader, now instead the constituent values are propagated
as caps fields. This allows for applications to do SDP offer/answer
based on caps negotiation.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700748
2013-05-23 21:05:49 +02:00
Sebastian Rasmussen
3dca756a5d rtph264pay/depay: Add frame dimensions a payloaded caps
This allows for applications to format SDP attributes and still do SDP
offer/answer based on caps negotiation.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=700749
2013-05-23 21:04:11 +02:00
Thibault Saunier
f1f149b503 tests: Re-enable videomixer test
https://bugzilla.gnome.org/show_bug.cgi?id=684237
2013-05-19 09:28:04 -04:00
Sebastian Dröge
381e6912a5 rgvolume: Fix event handling in the unit test 2013-05-14 17:29:18 +02:00
Sebastian Dröge
4bf7dabed1 rglimiter: Fix event handling in unit tests 2013-05-14 16:34:54 +02:00
Sebastian Dröge
4d81538090 rganalysis: Fix event handling in unit test 2013-05-14 16:31:57 +02:00
Sebastian Dröge
0e76ed510c qtmux: Fix event handling in unit test 2013-05-14 16:08:54 +02:00
Sebastian Dröge
924d7eeadf multifile: Fix event handling in unit test 2013-05-14 16:00:58 +02:00
Sebastian Dröge
3909eced0e mulaw: Fix event handling in unit test 2013-05-14 13:58:01 +02:00
Sebastian Dröge
da95e53c73 interleave: Fix event handling in unit test 2013-05-14 10:25:56 +02:00
Nicolas Dufresne
04c9f43567 rtpmux: Send stream-start before caps 2013-05-13 15:37:05 +02:00
Nicolas Dufresne
7719b19aec rtpjitterbuffer-test: Send stream-start before caps followed by segment 2013-05-13 15:36:49 +02:00
Nicolas Dufresne
c561ce0b9f rtpbin-test: Send missing stream-start and segment events 2013-05-13 15:36:34 +02:00
Sebastian Dröge
3dd14e968a tests: Fix some more event handling in tests 2013-05-13 15:36:19 +02:00
Sebastian Dröge
e1c959c60c icydemux: Fix event handling in unit test 2013-05-13 15:19:36 +02:00
Sebastian Dröge
511fb95ef8 deinterleave: Fix event handling in test 2013-05-13 14:55:27 +02:00
Nicolas Dufresne
e6a14a95ea shapewipe-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-11 09:12:35 +02:00
Nicolas Dufresne
5abd7698f3 spectrum-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-11 09:12:12 +02:00
Nicolas Dufresne
890e9e3738 videofilter-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-11 09:12:06 +02:00
Nicolas Dufresne
96df3472ba wavpackparse-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-11 09:12:01 +02:00
Nicolas Dufresne
93bd95f518 y4menc-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-11 09:11:56 +02:00
Sebastian Dröge
c5c2827114 tests: Fix some more unit tests 2013-05-10 13:34:16 +02:00
Sebastian Dröge
044fcbe901 tests: Fix parser tests 2013-05-10 13:10:29 +02:00
Nicolas Dufresne
6b56ad5d09 jpegenc-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-10 09:24:53 +02:00
Nicolas Dufresne
c944987a2a vp8enc-test: Send inital events
https://bugzilla.gnome.org/show_bug.cgi?id=700033
2013-05-10 09:24:47 +02:00