Commit graph

654 commits

Author SHA1 Message Date
Thiago Santos
dac431ef3f tests: rtpaux: use a dynamic pt in the test
1) Tests that using dynamic PT instead of the default ones work
2) If we ever decide to change the codec here we don't need to
   worry about change the PT for the default one of the new codec
   in the test

https://bugzilla.gnome.org/show_bug.cgi?id=746445
2015-08-06 01:39:43 -03:00
Thiago Santos
5f9e5bf385 tests: rtpaux: fix test failure
The RTP PT for alaw is 8.
Less than 50 packets are received in the length of this test so it
would never drop a buffer or would drop only the last buffer and
it would fail sometimes when the received wouldn't receive the
retransmission packet in time.

https://bugzilla.gnome.org/show_bug.cgi?id=746445
2015-08-04 18:25:29 -03:00
Tim-Philipp Müller
c1382e97fa tests: add minmal matroskademux test for subtitle output
Some of the subtitle chunks will have embedded
NUL-terminators (last three), some don't (first three),
some will have markup, some won't, some will be valid
UTF-8 (all but last), some won't (last stanza).

https://bugzilla.gnome.org/show_bug.cgi?id=752421
2015-07-21 14:25:12 +01:00
Havard Graff
764bbf99a8 rtpmux: handle different ssrc's on sinkpads
Do this by not putting the ssrc from the src pads in the caps used to
probe other sinkpads, and then  intersecting with it later.

https://bugzilla.gnome.org/show_bug.cgi?id=752491
2015-07-16 16:46:11 -04:00
Thiago Santos
a1bee6eb46 gitignore: ignore rtph263 test 2015-07-09 09:26:09 -03:00
Thiago Santos
241e0c2722 rtpjitterbuffer: fix build error with gcc (Debian 4.9.2-21) 4.9.2
Replace static constants with macros to make gcc happy

  CC       elements/elements_rtpjitterbuffer-rtpjitterbuffer.o
elements/rtpjitterbuffer.c:387:1: error: initializer element is not constant
 static const GstClockTime PCMU_BUF_DURATION = PCMU_BUF_MS * GST_MSECOND;
 ^
elements/rtpjitterbuffer.c:388:1: error: initializer element is not constant
 static const guint PCMU_BUF_SIZE = 64000 * PCMU_BUF_MS / 1000;
 ^
elements/rtpjitterbuffer.c:390:5: error: initializer element is not constant
     PCMU_BUF_CLOCK_RATE * PCMU_BUF_MS / 1000;
2015-07-08 23:49:12 -03:00
Thiago Santos
3edf9e4f58 rtpjitterbuffer: run indent and fix some comments
Fix indent on this file and break some comment lines into two to make
it fit 80 chars per line
2015-07-08 23:49:09 -03:00
Havard Graff
ddd032f56b rtpjitterbuffer: fix gap-time calculation and remove "late"
The amount of time that is completely expired and not worth waiting for,
is the duration of the packets in the gap (gap * duration) - the
latency (size) of the jitterbuffer (priv->latency_ns). This is the duration
that we make a "multi-lost" packet for.

The "late" concept made some sense in 0.10 as it reflected that a buffer
coming in had not been waited for at all, but had a timestamp that was
outside the jitterbuffer to wait for. With the rewrite of the waiting
(timeout) mechanism in 1.0, this no longer makes any sense, and the
variable no longer reflects anything meaningful (num > 0 is useless,
the duration is what matters)

Fixed up the tests that had been slightly modified in 1.0 to allow faulty
behavior to sneak in, and port some of them to use GstHarness.

https://bugzilla.gnome.org/show_bug.cgi?id=738363
2015-07-08 23:18:48 +03:00
Stian Selnes
8a0dbff3f4 rtph263depay: Make sure payload is large enough
Plus new unit test.

https://bugzilla.gnome.org/show_bug.cgi?id=752112
2015-07-08 11:36:55 +01:00
Tim-Philipp Müller
4ed4d0b84c tests: rtp-payloading: add basic unit test for KLV payloading
Also make it so that the mtu is always set if specified, not
only in case of the rather weird bufferlist test code path.
This allows us to easily make the payloader fragment a payload
across multiple output packets by setting a small MTU on it.
2015-07-07 20:11:28 +01:00
Stian Selnes
ef8d630a59 rtp: add H.261 RTP payloader and depayloader
Implementation according to RFC 4587.

Payloader create fragments on MB boundaries in order to match MTU size
the best it can. Some decoders/depayloaders in the wild are very strict
about receiving a continuous bit-stream (e.g. no no-op bits between
frames), so the payloader will shift the compressed bit-stream of a
frame to align with the last significant bit of the previous frame.

Depayloader does not try to be fancy in case of packet loss. It simply
drops all packets for a frame if there is a loss, keeping it simple.

https://bugzilla.gnome.org/show_bug.cgi?id=751886
2015-07-03 11:48:41 +01:00
Sebastian Dröge
3df0cce65d rtpjitterbuffer: If possible, always update the current time before looping over all timers
If we have a clock, update "now" now with the very latest running time we have.
If timers are unscheduled below we otherwise wouldn't update now (it's only updated
when timers expire), and also for the very first loop iteration now would otherwise
always be 0.

Also the time is used for the timeout functions, e.g. to calculate any times
for the next timeouts and we would otherwise pass too old times there.

https://bugzilla.gnome.org/show_bug.cgi?id=751636
2015-07-02 16:45:59 +02:00
Nicolas Dufresne
db63796fd3 qtmux: Correctly test each segments
In presence of gaps, qtdemux will emit multiple segments. The
second segment start should match the CTTS.

https://bugzilla.gnome.org/show_bug.cgi?id=751361
2015-06-23 22:34:36 -04:00
Nicolas Dufresne
89104e35bf qtmux: Test gaps at start of stream
https://bugzilla.gnome.org/show_bug.cgi?id=751242
2015-06-22 17:45:30 -04:00
Thiago Santos
74dcd85de4 tests: qtmux: test for muxing with DTS outside the segment
https://bugzilla.gnome.org/show_bug.cgi?id=740575
2015-06-12 17:18:24 -04:00
Jan Schmidt
c16c381a89 tests: Update mp4 mux test for mdat placeholder change
The mp4 muxer now writes a place-holder mdat as a free
atom followed by a 0-byte mdat that covers the rest of the
file, making it possible to rewrite it as 64-bit, or leave
it as-is if nothing else is written afterward
2015-06-08 14:49:11 +10:00
Sebastian Dröge
b549ebd066 rtpsession: Override the SSRC from the packets' SSRC if none was given via caps or property 2015-06-07 10:33:27 +02:00
Edward Hervey
d524439b35 check: Use GST_CHECK_MAIN () macro everywhere
Makes source code smaller, and ensures we go through common initialization
path (like the one that sets up XML unit test output ...)
2015-06-02 16:27:24 +02:00
Mark Nauwelaerts
692df969ea tests: wavpackparse: fix unit test
See also https://bugzilla.gnome.org/show_bug.cgi?id=738237
2015-05-10 14:22:43 +02:00
Sebastian Dröge
91c8688ed7 rtpjitterbuffer: Fix RTX unit test
The calculations were a bit off everywhere, even before the changes done
recently to the delay for RTX of expected future packets. It only worked by
accident, but now the calculations are all correct again. Hopefully.
2015-04-27 16:37:23 +02:00
Thiago Santos
9f7c659ff0 tests: qtmux: add tests to verify it handles non-0 segments
Both input streams in this test have a segment.start = 10s, so
output should start from 0 anyway.

Another test has both starting at non-0 segments, but the running
time of both streams should still start from 0
2015-04-10 10:05:24 -03:00
Thiago Santos
48c5c0c5b3 tests: qtmux: simple muxing test
Adds a new simple test that verifies that data is properly muxed
and preserved.  PTS, DTS, duration and caps are verified.
2015-04-10 10:05:24 -03:00
Ravi Kiran K N
a833084320 tests: add test suite for alpha
Added test suite for alpha element with test cases
1. alpha
2. chroma keying

https://bugzilla.gnome.org/show_bug.cgi?id=747595
2015-04-10 10:20:03 +01:00
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
Thiago Santos
00e5d90ffc tests: multifile: increment tests to check for multifile messages
Also verify that the multifilesink file messages are being correctly
posted to the bus
2015-04-04 11:45:07 -03:00
Thiago Santos
4bba05339c tests: multifile: handle FIXME for proper checking when test finished
Use a GstBus and wait for EOS to finish the tests instead of
relying on sleeping
2015-04-04 07:58:44 -03:00
Jan Schmidt
3d59b5f814 isomp4: Make non-seekable downstream an error in normal mode
When not in fast-start or fragmented mode, we need to be able
to rewrite the size of the mdat atom, or else the output just
won't be playable - the mdat placeholder with size == 0 will
cover the rest of the file, including any moov atom we write out.

https://bugzilla.gnome.org/show_bug.cgi?id=708808
2015-04-03 23:07:04 +11:00
Sebastian Rasmussen
cf54d4cc67 rtph263pay/-depay: add framesize SDP attribute
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=726416
2015-04-02 19:38:21 -04:00
Wim Taymans
13804eab7d check: add jitterbuffer unit test
See https://bugzilla.gnome.org/show_bug.cgi?id=745539
2015-03-06 11:40:53 +01:00
Nicolas Dufresne
96b218d939 splitmux-test: Parse error message
The test had a function to print the error, but was not parsing it.
This was causing warning about dbg_info being used uninitialized. If
the test was testing any errors, this would have crashed.
2015-02-15 21:45:24 -05:00
Jan Schmidt
8ceb58122e splitmux: Add unit test for file splitting
Add a unit test for file splitting, and fix the leaks in the
splitmuxsink it found
2015-02-07 03:58:30 +11:00
Jan Schmidt
aa4c29c5d6 splitmux: Fix memory leaks until the test valgrinds clean 2015-02-07 00:19:36 +11:00
Jan Schmidt
5e2214d309 splitmux: Implement new elements for splitting files at mux level.
Implement 2 new elements - splitmuxsink and splitmuxsrc.

splitmuxsink is a bin which wraps a muxer and takes 1 video stream,
plus audio/subtitle streams, and starts a new file
whenever necessary to avoid overrunning a threshold of either bytes
or time. New files are started at a keyframe, and corresponding audio
and subtitle streams are split at packet boundaries to match
video GOP timestamps.

splitmuxsrc is a corresponding source element which handles
the splitmux:// URL and plays back all component files,
reconstructing the original elementary streams as it goes.
2015-02-06 04:26:59 +11:00
Thiago Santos
59431f663a tests: souphttpsrc: update ssl key/cert pair
Our ones were expired. The new ones were copied from libsoup's
tests files.

Also sets the property to use our own cert to validate the
server, otherwise the default system certs would be used
and it would fail.
2015-02-04 21:37:50 -03:00
Tim-Philipp Müller
d67da4c8ae tests: rtpcollision: use alawenc/dec in these tests instead of Speex
They should always be built, while the speex elements are not.

Need to check for a smaller number of buffers then (7->4) because
speexenc will add 3 header buffers while alawenc will just output
as many buffers as it receives as input.

https://bugzilla.gnome.org/show_bug.cgi?id=742098
2014-12-30 17:19:59 +00:00
Tim-Philipp Müller
d416336a6e tests: rtpaux: use alawenc/dec in these tests instead of Speex
They should always be built, while the speex elements are not.

https://bugzilla.gnome.org/show_bug.cgi?id=742098
2014-12-30 14:58:02 +00:00
Tim-Philipp Müller
da51a99403 tests: don't use deprecated property in level unit test 2014-11-02 16:58:30 +00:00
Sebastian Dröge
543c8772cb aacparse: Fix unit test now that we always have profile/level in the caps 2014-10-27 11:08:40 +01:00
Tim-Philipp Müller
146702e226 tests: fix rgvolume test on big-endian systems 2014-10-25 11:09:57 +01:00
Tim-Philipp Müller
e6f6d9045c tests: fix mulawdec/mulawenc test for big endian systems 2014-10-25 11:09:57 +01:00
Sjoerd Simons
0ee384b251 rtpmux: Don't set PROXY_CAPS flag on the src pad
rtpmux behaves like a funnel in that it forwards whatever upstream is
sending buffers. So setting proxy caps doesn't make sense as the
upstream don't have to have compatible caps, thus resulting in an empty
caps set as a result of a caps query. Instead set fixed caps just
as funnel does.

https://bugzilla.gnome.org/show_bug.cgi?id=738722
2014-10-21 10:52:00 +02:00
Olivier Crête
155ed569c3 rtpdtmfsrc: clock-base and seqnum-base -> timestamp-offset and seqnum-offset
These were renamed in GstRTPBasePayload in 1.0
2014-10-10 18:12:32 -04:00
Olivier Crête
b3069634bd rtpmux: clock-base and seqnum-base -> timestamp-offset and seqnum-offset
These were renamed in GstRTPBasePayload in 1.0
2014-10-10 18:12:23 -04:00
Edward Hervey
5765db50a1 check/soup: Temporarily disable G_ENABLE_DIAGNOSTIC
The SOUP_SERVER_PORT property has been deprecated in recent libsoup
versions.
2014-09-23 09:48:27 +02:00
Edward Hervey
9e47ea2dc8 check/soup: Define minimum version required
To avoid deprecation warnings
2014-09-23 09:48:27 +02:00
Tim-Philipp Müller
d9a7954dc9 tests: udpsrc: add check to make sure multiple memory chunks are used 2014-09-09 17:42:02 +01:00
Tim-Philipp Müller
5c76255bc1 tests: udpsrc: wait for buffers with GCond instead of sleeping
Avoids half-second sleep for no reason.
2014-09-09 17:42:02 +01:00
Tim-Philipp Müller
7b1774513e tests: udpsrc: split out socket setup 2014-09-09 17:42:02 +01:00
Thiago Santos
0430ea87a3 tests: vp8dec: add test for caps renegotiation
Check that vp8dec can properly accept a new caps when upstream
changes it

https://bugzilla.gnome.org/show_bug.cgi?id=734266
2014-09-02 01:01:43 -03:00
Mark Nauwelaerts
6ea83d97c5 tests: rtp-payloading: adjust test data to avoid NAL chopping
... and correspondingly unexpected buffer sizes.
2014-08-10 12:32:38 +02:00