Commit graph

1447 commits

Author SHA1 Message Date
Sebastian Dröge c02d3b03c2 videotimecode: Add API for initializing from a GDateTime with validation
The old API would only assert or return an invalid timecode, the new API
returns a boolean or NULL. We can't change the existing API
unfortunately but can at least deprecate it.
2018-12-19 23:11:24 +00:00
Seungha Yang 362f771fe8 tests: Disable some tests for Windows
Disable some tests which are unstable on windows or need fix
2018-12-18 10:34:01 +00:00
Seungha Yang 548b72d693 tests: Use OS-specific seperator for whitelist
... instead of hardcoded ':', since G_SEARCHPATH_SEPARATOR_S
varies depending on OS (e.g., ':' for *nix and ';' for Windows).
Note that, when the seperator is not specified explicitly, Meson
will use ';' for Windows and ':' for *nix respectively.
2018-12-18 10:34:01 +00:00
Seungha Yang 076d023508 meson: Use join_paths() instead of '/'
Let Meson decide correct seperator such as '\' for Windows and
'/' for others
2018-12-18 10:34:01 +00:00
Justin Kim 5303e2c32b rtcpbuffer: add support XR packet parsing
According to RFC3611, the extended report blocks in XR packet can
have variable length. To visit each block, the iterator should look
into block header. Once XR type is extracted, users can parse the
detailed information by given functions.

Loss/Duplicate RLE
The Loss RLE and the Duplicate RLE have same format so
they can share parsers. For unit test, randomly generated
pseudo packet is used.

Packet Receipt Times
The packet receipt times report block has a list of receipt
times which are in [begin_seq, end_seq).

Receiver Reference Time paser for XR packet
The receiver reference time has ntptime which is 64 bit type.

DLRR
The DLRR report block consists of sub-blocks which has ssrc, last RR,
and delay since last RR. The number of sub-blocks should be calculated
from block length.

Statistics Summary
The Statistics Summary report block provides fixed length
information.

VoIP Metrics
VoIP Metrics consists of several metrics even though they are in
a report block. Data retrieving functions are added per metrics.

https://bugzilla.gnome.org/show_bug.cgi?id=789822
2018-12-13 14:01:06 -05:00
Sebastian Dröge 70d8c174ac video: Split the success and error convert_frame_async() test into two tests
To make it more obvious which of the two is actually failing.
2018-11-30 12:39:43 +02:00
Jordan Petridis 2229d53f60
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:51:53 +02:00
Sebastian Dröge 71427eb0f4 video-anc: Add test for VBI encoder 2018-11-12 14:09:28 +00:00
Sebastian Dröge 932e9f5eee video-anc: Add support for parsing composite ADF and check the packets' checksum
And add the checksum to the data we test in the unit test.
2018-11-12 13:14:57 +00:00
Matthew Waters 5a53e89c1a tests/urisourcebin: add get/set watermark test
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
2018-11-07 15:10:05 +00:00
Matthew Waters af166b5b22 urisourcebin: add a statistics property for queueing
It contains the minimum/maximum/average byte and time levels of the
queues inside this urisourcebin

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/60
2018-11-07 15:10:05 +00:00
Sebastian Dröge a1c14959d6 video-anc: Add unit tests for VBI parsing
https://bugzilla.gnome.org/show_bug.cgi?id=797363
2018-11-01 19:30:41 +02:00
Nicolas Dufresne c2ec68f0c7 glupload-test: Don't use gboolean to store enums
The unit test makes mixed usage of ret value. Sometimes its does
stores an enum and at other moment a boolean. Also fix test
using boolean instead of the correct enum value.

https://bugzilla.gnome.org/show_bug.cgi?id=783521
2018-11-01 06:22:28 -04:00
Sebastian Dröge 088b4c0c52 overlaycomposition: New element that allows applications to draw GstVideoOverlayComposition on a stream
https://bugzilla.gnome.org/show_bug.cgi?id=797234
2018-10-28 17:03:47 +00:00
Edward Hervey 33e92afd91 tests: Solidify tcp connection check
The previous failure was a timeout which was due to the sending pipeline
pushing test buffer *before* the remote client was accepted. We would
therefore never get the buffer on the other side.

While the client socket would indeed appear as "connected", this doesn't
mean that the remote server side did "accept" it (which is where we then
add it to the list of remote parties to which data will be sent).

The problem isn't with the element implementation, but to the nature of
TCP 3-way handshake.

In order to make the test reliable, wait for the sink to have accepted
the remote client (by checking the number of handles) before sending out
test buffers.
2018-10-27 15:48:13 +02:00
Stian Selnes f766b85b96 rtpbasepayload: rtpbasedepayload: Add source-info property
Add a source-info property that will read/write meta to the buffers
about RTP source information. The GstRTPSourceMeta can be used to
transport information about the origin of a buffer, e.g. the sources
that is included in a mixed audio buffer.

A new function gst_rtp_base_payload_allocate_output_buffer() is added
for payloaders to use to allocate the output RTP buffer with the correct
number of CSRCs according to the meta and fill it.

RTPSourceMeta does not make sense on RTP buffers since the information
is in the RTP header. So the payloader will strip the meta from the
output buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=761947
2018-10-10 14:38:01 -04:00
George Kiagiadakis a85a59e4a8 tests: audioconvert: test caps fixate with layout conversion
https://bugzilla.gnome.org/show_bug.cgi?id=797225
2018-10-05 15:40:13 +03:00
Zeeshan Ali 0c034f3894 test: Ensure gst_video_info_set_format() calls succeed
https://bugzilla.gnome.org/show_bug.cgi?id=796106
2018-08-29 12:14:38 -04:00
Zeeshan Ali 0fbe4634a6 video: Add gst_video_info_set_interlaced_format()
Add a helper to set the interlacing mode while creating the GstVideoInfo
in addition to format and resolution. Using this helper will ensure that
size is correctly calculated for split-field interlacing mode.

https://bugzilla.gnome.org/show_bug.cgi?id=796106
2018-08-29 12:14:38 -04:00
Zeeshan Ali bd9c7b36d8 video: Add GST_VIDEO_INTERLACE_MODE_ALTERNATE
Add a new interlace mode enum to represent buffers containing a single
field of an interlaced video in a buffer. The name is based on the
equivalent video format in the V4L2 API, V4L2_FIELD_ALTERNATE:

https://01.org/linuxgraphics/gfx-docs/drm/media/uapi/v4l/field-order.html

Since caps fields are optional, we also introduce a new caps feature,
"format:Interlaced" that always goes with "alternate" interlace mode to ensure
that caps for this incompatible format are incompatible with other interlaced
and progressive video caps.

https://bugzilla.gnome.org/show_bug.cgi?id=796106
2018-08-29 12:14:38 -04:00
Tim-Philipp Müller 14c7c9f89e tests: remove unused build definition 2018-08-13 00:00:27 +01:00
Justin Kim 4fa850e3e6 audiorate: accumulate offset by time diff
The fomula, 'offset = time / rate', is correct only if
the rate is never changed. When the rate is changed,
the offset should be re-calculated based on the previous
offset.

https://bugzilla.gnome.org/show_bug.cgi?id=791269
2018-07-19 18:19:19 -04:00
George Kiagiadakis fe8f7dac83 tests: audio: test gst_audio_buffer_reorder_channels() also with non-interleaved buffers
https://bugzilla.gnome.org/show_bug.cgi?id=796743
2018-07-12 13:38:27 +03:00
George Kiagiadakis adf48c9d3b tests: audio: add unit tests for planar audio support in gst_audio_buffer_clip()
https://bugzilla.gnome.org/show_bug.cgi?id=796740
2018-07-12 11:59:13 +03:00
George Kiagiadakis 22373acee3 tests: simple-launch-lines: fixate audioconvert caps now that the layout is also convertable
Because audioconvert can now convert between interleaved and non-interleaved,
this pipeline fails on the upstream capsfilter not being able to fixate its
output caps. This is unavoidable.
2018-07-11 18:29:52 +03:00
George Kiagiadakis d57a572172 tests: audioconvert: add tests for planar audio
https://bugzilla.gnome.org/show_bug.cgi?id=705986
2018-07-11 16:26:13 +03:00
George Kiagiadakis 5c39510905 tests: audioconvert: add support for specifying the layout on tests
https://bugzilla.gnome.org/show_bug.cgi?id=705986
2018-07-11 16:26:13 +03:00
George Kiagiadakis 294bfb7300 tests/check/Makefile.am: link audiotestsrc test with libgstaudio
Needed for the new planar audio unit test
2018-07-11 14:48:57 +03:00
George Kiagiadakis 48fa908e15 tests: audiotestsrc: add unit test for non-interleaved audio output
https://bugzilla.gnome.org/show_bug.cgi?id=796739
2018-07-11 12:23:32 +03:00
Matthew Waters 16cba63d43 gl/utils: fixup matrix math again for column major
e4bf9ed8f0 was not quite right and changed
the wrong thing. Intead we needed to change the multiplication order
and should have kept the previous to/from matrices as is done in this
patch.
2018-07-10 20:13:22 +10:00
George Kiagiadakis e9b4f2b317 tests: audio: add unit test for GstAudioBuffer & GstAudioMeta
https://bugzilla.gnome.org/show_bug.cgi?id=751605
2018-07-03 14:06:43 +03:00
Matthew Waters 8e641a9277 gl/tests: matrix use the affine matrix setter to convert matrices
Removes some duplicated matrices that didn't really need to be
hardcoded.
2018-06-21 17:47:09 +10:00
Matthew Waters af3f307277 gl/tests: add extension/version parsing checks 2018-06-15 13:17:14 +10:00
Matthew Waters e4bf9ed8f0 gl/utils: Fix NDC conversion matrices for column-majorness
The matrices were converting the wrong values with non-diagonal-only matrices.
e.g. a typical yflip matrix in [-1,1]^3 such as
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0  0  0  1

Would have actually required a matrix like this in [0,1]^3
 1  0  0  0
 0 -1  0  0
 0  0  1  0
 0 -2  0  1

Which is
1. not consistent with our multiplication convention and would require
   transposing matrices or changing our multiplication order (from what is
   generally used on opengl matrix guides/tutorials).
2. Produces incorrect values when input with actual vertices accounting for
   the difference in multiplication order.  e.g. some vertices multiplied by
   the yflip matrix using vertex * yflip(== transpose(yflip) * vertex):

     vertex:       -> result:           expected:
     vec4(1,0,1,1) -> vec4(1,-2,1,1)    vec4(1,1,1,1)
     vec4(1,1,1,1) -> vec4(1,-3,1,1)    vec4(1,0,1,1)

With the updated values, we now get the expected values.

Includes a test for this behaviour and the example above
2018-06-06 23:36:08 +10:00
Philippe Normand 8cfd85ec61 subparse: support for more than 32 unclosed markup tags
https://bugzilla.gnome.org/show_bug.cgi?id=796043
2018-05-12 17:05:06 +01:00
Nirbheek Chauhan 1e1a5d658e meson: Update option names to omit disable_ and with- prefixes
Also yield common options to the outer project (gst-build in our case)
so that they don't have to be set manually and use array types for some
options.
2018-05-05 20:30:52 +05:30
Matthew Waters b8b87694a1 glformat: add test for formats 2018-05-05 21:29:40 +10:00
Matthew Waters 131f9b4e2b gl/memory/tests: split test into separate subtests
Allows for more fine-grained notification of failures
2018-05-05 21:24:25 +10:00
Michael Olbrich 1b36477d9e videodecoder: add test for event order
When frames are dropped or reordered then the serialized events are
collected and pushed with the next frame. This test verifies that the
order is preserved.

https://bugzilla.gnome.org/show_bug.cgi?id=794192
2018-04-26 17:05:04 -04:00
Zeeshan Ali cc3942e673 tests: videodecoder: Fix a minor c&p mistake
This completes what commit 0de0f3b2c should have already done. :)

https://bugzilla.gnome.org/show_bug.cgi?id=795483
2018-04-23 15:31:27 +01:00
Zeeshan Ali 0de0f3b2c4 tests: videodecoder: Fix a minor c&p mistake
https://bugzilla.gnome.org/show_bug.cgi?id=795483
2018-04-23 11:29:47 +01:00
Mathieu Duponchelle 8467939538 rtpbasedepayload: condition the sending of gap events
The default implementation for packet loss handling previously
always sent a gap event.

While this is correct as long as we know the packet that was
lost was actually a media packet, with ULPFEC this becomes
a bit more complicated, as we do not know whether the packet
that was lost was a FEC packet, in which case it is better
to not actually send any gap events in the default implementation.

Some payloaders can be more clever about, for example VP8 can
use the picture-id, and the M and S bits to determine whether
the missing packet was inside an encoded frame or outside,
and thus whether if it was a media packet or a FEC packet,
which is why ulpfecdec still lets these lost events go through,
though stripping them of their seqnum, and appending a new
"might-have-been-fec" field to them.

This is all a bit terrible, but necessary to have ULPFEC
integrate properly with the rest of our RTP stack.

https://bugzilla.gnome.org/show_bug.cgi?id=794909
2018-04-19 16:39:06 +02:00
Mathieu Duponchelle d00e0b612d appsink: Reuse sample object in pull_sample if possible
Simple optimization to reduce memory allocations.

https://bugzilla.gnome.org/show_bug.cgi?id=795145
2018-04-19 16:14:12 +02:00
Tim-Philipp Müller 3a669b7413 tests: make getaddrinfo suppression more generic
So it works for me on debian sid.
2018-04-13 01:23:38 +01:00
Mathieu Duponchelle 89222216f0 valgrind supps: ignore leaks where pango is the first frame 2018-04-13 01:07:21 +02:00
Mathieu Duponchelle bc3d1fbfb6 valgrind supps: ignore intentional leak in GL test 2018-04-13 01:07:21 +02:00
Mathieu Duponchelle ab1cc64a62 valgrind supps: conditional moves in nvidia-glcore
Not much we can do here
2018-04-13 01:07:21 +02:00
Mathieu Duponchelle 04ea088891 valgrind supps: getaddrinfo leaks when resolving addresses
https://lists.debian.org/debian-glibc/2016/03/msg00243.html
2018-04-13 01:07:21 +02:00
Mathieu Duponchelle 225651e6c5 tests/audiomixer: fix caps leak 2018-04-13 01:07:21 +02:00
Mathieu Duponchelle b003cb8cdf valgrind supps: ignore bash leaks
gst_install_plugins_* can instantiate bash
2018-04-13 01:07:21 +02:00