Commit graph

21 commits

Author SHA1 Message Date
Jan Schmidt
a51073c7de tests: Fix rtprtx test by handling buffer lists
Commit #1018aa made rtprtxsend handle buffer lists, breaking
the test which probes for buffers, but not buffer lists.

Use a utility function to run the probe callback on each buffer
in the list in turn and remove any buffers that are dropped.
2015-04-09 12:58:04 +10:00
Olivier Crête
4377dfeadd rtprtx: Reset state on each iteration
Otherwise it didn't wait for the test to finish before checking the results.

https://bugzilla.gnome.org/show_bug.cgi?id=728501
2014-06-03 17:59:32 -04:00
Olivier Crête
985897d8d9 rtpaux/rtprtx: Make tests non-racy
Fix the raciness by iterating on a condition instead of using the gmainloop.
Don't use the EOS as the target, otherwise the retransmission of the last
packets are lost. Also count the retranmissions requests that are dropped.
Check the condition before blocking on the GCond

https://bugzilla.gnome.org/show_bug.cgi?id=728501
2014-05-04 22:37:26 -04:00
Sebastian Dröge
2149d5a9bd rtprtx: Don't forget to unmap rtp buffer in the test 2014-04-17 18:07:09 +02:00
Sebastian Dröge
5dba8dfe59 rtprtx: Provide an ssrc in the test
And increase timeout to allow all tests to run in valgrind.
2014-04-17 17:43:12 +02:00
George Kiagiadakis
016e1562a6 tests: rtprtx::test_rtxreceive_data_reconstruction: remove useless code for triggering retransmission
There is no need anymore to push yet another buffer in rtxsend
in order to trigger the previously requested retransmissions
to actually happen.
2014-01-21 15:00:54 +01:00
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
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
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