Commit graph

1542 commits

Author SHA1 Message Date
Stéphane Cerveau
3b8769e673 codec-utils: add h264 constrained and progressive profiles
Those profiles have been added in the version 2012-01
and 2011-06 of the AVC spec.

Aligned code with https://bugzilla.gnome.org/show_bug.cgi?id=794127
2019-12-03 23:35:23 +00:00
Mart Raudsepp
dec2750e96 tests: expand compositor repeat-after-eos tests for multiple pads
If there are any pads with repeat-after-eos NOT set, then the compositor
should EOS after all of those pads have gone EOS, but not before all
repeat-after-eos pads have as well.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/664
2019-11-27 22:21:14 +02:00
Sebastian Dröge
c363747251 videorate: Fix max-duplication-time handling
Previously this would've only set discont=TRUE and then for all future
buffers simply returned immediately.

Instead we also need to
  a) drain previous input until its buffer time
  b) update next_ts and base_ts accordingly for the gap
  c) actually store the new buffer after the gap so it can be used in
     the future and so the old buffer before the gap is gone

Also update the unit test accordingly so that it actually tests for this
behaviour. Previously it only tested that after the gap we got no output
at all.
2019-11-04 19:01:10 +00:00
Seungha Yang
dc274ea9ca compositor: Add support for VUYA format
Reversed order of AYUV format. Most of core methods are prepared
already.
2019-11-04 14:50:28 +00:00
Guillaume Desmottes
75680e5d34 videometa: add alignment field
By adding this field, buffer producers can now explicitly set the exact
geometry of planes, allowing users to easily know the padded size and
height of each plane.

GstVideoMeta is always heap allocated by GStreamer itself so we can
safely extend it.
2019-11-02 13:05:43 +01:00
Guillaume Desmottes
36ce08826e video-info: add gst_video_info_align_full()
When using gst_video_info_align() user had no easy way to retrieve the
padded size and height of each plane.
This can easily be implemented in fill_planes() as it's already called
in align() with the padded height.

Ideally we'd add a plane_size field to GstVideoInfo but the remaining
padding is too small so that would be an ABI break.

Fix #618
2019-11-02 13:05:43 +01:00
Seungha Yang
8b92d144a1 tests: audio: Add test for gst_audio_info_from_caps() method
Test gst_audio_info_from_caps() with raw and encoded formats.
2019-10-25 20:53:47 +09:00
Tim-Philipp Müller
289d8e53e2 Remove autotools build system 2019-10-13 14:15:43 +01:00
Edward Hervey
7eb98ba4f3 check: Don't use real audio devices for tests
When checking the behaviour of live seeking on audiomixer or
adder we don't *really* need real audio devices. audiotestsrc
in live mode is enough to test the behaviour of those elements.

Also avoids people repeatedly wasting hours trying to figure out
whether that failing behaviour is due to their code or not.
2019-10-10 16:58:26 +02:00
Thibault Saunier
8d32de0905 glupload: Add VideoMetas and GLSyncMeta to the raw uploaded buffers
This is done by reusing `gst_gl_memory_setup_buffer` avoiding to
duplicate code.

Without a VideoMeta, mapping those buffers lead to GstBuffer mapping the
buffer in system memory even when specifying the GL flags (through the
buffer merging mechanism) making the result totally broken.
2019-10-02 19:27:39 +00:00
Tim-Philipp Müller
c8d0edfea9 tests: fix up valgrind suppressions for glibc getaddrinfo leaks
Make more flexible. There is an extra
  gethostbyname2_r@@GLIBC_2.2.5 (getXXbyYY_r.c:217)
in the trace on the build bots (F30).

Fixes the -base and -good valgrind jobs on the 1.16 branch CI.
2019-09-08 01:52:36 +01:00
Thibault Saunier
909baa2360 Pass the code through codespell 2019-08-30 13:05:36 +00:00
Mathieu Duponchelle
f72e71903a aggregator tests: fix seek event seqnums
In
https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/207,
aggregator starts ignoring seek events with duplicate seqnums. We thus
need to update the seqnum of events when reusing them multiple times.
2019-07-19 18:53:43 +02:00
Guillaume Desmottes
509d4c31f0 video-format: add gst_video_format_info_component()
New API to find out which components are packed in a given plane.
Will prevent us from assuming a 1-1 mapping between planes and
components.
2019-07-19 15:47:02 +05:30
Seungha Yang
7327214bce tests: video: Add test conversion between colorimetry and ISO/IEC 23001-8 values
Test forward/backword conversion of color{matrix,transfer,primaries}.
2019-07-15 20:55:34 +09:00
Sebastian Dröge
1381e3e2be sdp: Add support for parsing the extmap attribute from caps and storing inside caps
The extmap attribute allows mapping RTP extension header IDs to
well-known RTP extension header specifications. See RFC8285 for details.

We store the extmap attribute either as string in the caps
  extmap-X=extensionname
where X is the integer extension header ID, or as 3-tuple of strings
  extmap-X=<direction,extensionname,extensionattributes>
where direction or extensionattributes are allowed to be the empty
string.

Both formats are allowed because usually only the extension name is
given and it's much simpler to handle in caps.
2019-07-13 12:18:15 +00:00
Sumaid Syed
18351dcd24 tag: Add tags for acoustid id & acoustid fingerprint
Mapping followed: https://picard.musicbrainz.org/docs/mappings/

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/612
2019-07-08 17:06:37 +05:30
Sumaid
8718458dc7 tag: Repair support for MusicBrainz IDs
Add missing release group ID and track ID
Mapping Followed:
https://picard.musicbrainz.org/docs/mappings/

https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/612
2019-07-08 16:31:34 +05:30
Seungha Yang
3dc9f772ec tests: pbutils: Add test parsing H265 profiles 2019-06-15 17:17:36 -04:00
Stian Selnes
eaade96409 rtpbasedepayload: Add max-reorder property
Add max-reorder property to make the old hard coded reordering limit of
100 configurable. It's particularly useful in some scenarios to set
max-reorder=0 to disable the behavior that the depayloader will drop
packets.

Note that although the default value is 100, the default limit has
increased with one because of the changed if-test. This was done to
allow the max-reorder value to be more intuitive. See tests.
2019-06-13 19:41:11 +03:00
Matthew Waters
7ff2cfa977 tests/gl-launch-lines: gltestsrc works on gles2/opengl3 now
There's no need to feature gate the gltestsrc pipelines anymore
2019-06-13 09:37:37 +00:00
Matthew Waters
b596bf7cb7 glmosaic: port to opengl3/gles2
Fixes: https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/543
2019-06-13 09:37:37 +00:00
Havard Graff
5d51c45b17 meson: add rtpmeta-tests 2019-06-12 15:33:41 +00:00
Havard Graff
2e342a16ce rtpbasedepayload: don't consider existing GstRTPSourceMeta
The meta should always be generated based on what is present in the
rtp-header.
2019-06-12 12:38:26 +00:00
Matthew Waters
bdb43689a9 gl/tests: fix shader creation tests part 2
Continuation of 4fd7a2c783

We check the availability of the high precision floats in GLSL shaders
which involves an OpenGL call and thus is required to be executed on the
OpenGL thread.

The tests were not respecting that and could fail on more strict
drivers.

Tests update for 675415bf2e
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590
2019-06-08 02:59:13 +10:00
Matthew Waters
4fd7a2c783 gl/tests: fix shader creation tests
We check the availability of the high precision floats in GLSL shaders
which involves an OpenGL call and thus is required to be executed on the
OpenGL thread.

The tests were not respecting that and could fail on more strict
drivers.

Tests update for 675415bf2e
Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/590
2019-06-07 11:14:39 +00:00
Mathieu Duponchelle
944396af33 valgrind: suppress incorrect conditional error in orc backup code 2019-06-05 20:51:47 +00:00
Mathieu Duponchelle
81ae045e3d valgrind: free buffer list in audiorate test 2019-06-05 20:51:47 +00:00
Mathieu Duponchelle
5934dc6ba3 valgrind: suppress conditional jump or move error
valgrind gets confused with the following piece of code:

var37.i = ORC_CLAMP_SL((orc_int64)var33.i + (orc_int64)var34.i);

Where all variables are orc_int32
2019-06-05 20:51:47 +00:00
Mathieu Duponchelle
59dd2af6d6 compositor: remove invalid test
With https://gitlab.freedesktop.org/gstreamer/gstreamer/merge_requests/159,
a single flush start on an aggregator sinkpad will start the flushing
process if the aggregator isn't already flushing.

The behaviour that this test was checking for is thus no longer correct
2019-06-03 14:05:14 +00:00
Seungha Yang
b9bb240c6b tests: video: Enable PQ and HLG transfer en/decode tests 2019-05-24 09:30:40 +00:00
Antonio Ospite
f8bed33d4b test: add subparse test for SRT subtitles with no newline at the end
Add a test to verify that SRT subtitles work even if the last chunk does
not have an empty line after it.
2019-05-06 13:28:02 +02:00
Antonio Ospite
1c454fdafc subparse: fix pushing WebVTT cue when last is not an empty line
If the last WebVTT cue does not have an empty line after it, or if it
does not end with a newline at all, it does not get pushed out and it
won't be displayed.

gst_sub_parse_sink_event() already handles the issue for other subtitle
formats, enable handling it for GST_SUB_PARSE_FORMAT_VTT too.

While at it also add a test for this case.
2019-05-06 13:28:02 +02:00
A. Wilcox
57e2bc3c1c video test: Keep BE test inline with LE test 2019-05-03 06:26:27 +00:00
Seungha Yang
630d3c3d12 tests: video: Add test for video-hdr 2019-04-30 15:45:44 +00:00
Sebastian Dröge
cbccda6f3b video-anc: Handle SD formats correctly
VANC is stored linearly in SD formats instead of separating the Y and YV
components from each other and having first all Y and then all UV
values.
2019-04-23 11:25:05 +00:00
Kristofer Bjorkstrom
1dea6d52ce rtspconnection: add Content-Length limit
Add the possible to limit the Content-Length
Define an appropriate request size limit and reject requests exceeding
the limit (413 Request Entity Too Large)
2019-04-22 09:01:32 +00:00
Aaron Boxer
b27b31e099 discoverer: set 30 second for long-running tests 2019-04-01 18:35:06 +00:00
Aaron Boxer
6146d8c622 discoverer: fix a race bug in disco test 2019-04-01 18:35:06 +00:00
Jimmy Ohn
ee077a1cb3 tests: rtpmeta: Avoid C99 declaration in 'for' loop
Avoid C99 declaration in for loop
2019-04-01 22:34:28 +09:00
Guillaume Desmottes
10ce73b6eb video-info: check if alternate caps has the feature as well
It's invalid to have a 'interlace-mode=alternate' without the Interlaced caps
feature as well.
Modify gst_video_info_from_caps() to reject such case so we can easily
spot them in bugged elements.
2019-03-25 15:36:57 +01:00
Guillaume Desmottes
6ba860021c video-info: handle 'field-order' in alternate mode
The alternate interlace mode may also use the 'field-order' field in caps.
2019-03-25 15:35:46 +01:00
Tim-Philipp Müller
3288093c75 tests: video: speed up test_video_color_convert
This test takes a long time. It tests ca. 8900 conversion
combinations, and then it also runs each conversion for
at least 100ms in order to come up with some kind of benchmark.

Remove the benchmarking from the unit test, we have a separate
benchmarking tool for that now.

Also split the conversions into groups and run those as
separate checks, which allows better parallelisation at
the runner level (normal runs and when using valgrind).
2019-03-24 16:39:30 +00:00
Tim-Philipp Müller
b05e70ea94 tests: video: reduce debug log spam
This shouldn't be logged at info level.
2019-03-24 16:39:30 +00:00
Stian Selnes
eadeec791a rtpbasedepayload: Drop gap events before first buffer
Before a gap event is pushed downstream a segment event must be pushed
since the gap event can cause packet concealment downstream and hence
data flow. Since concealment before receiving any data packets usually
doesn't make any sense, the gap event is not sent downstream.

Alternatively one could generate a default caps and segment event, but
no need to complicate things until it's proven necessary.

https://bugzilla.gnome.org/show_bug.cgi?id=773104
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/301
2019-03-20 15:30:50 +00:00
Tim-Philipp Müller
eed2e9d52b tests: audiodecoder: speed up audiodecoder_buffer_after_segment test
We're creating buffers with one sample here for some reason. The
actual value of the segment stop is irrelevant for what we're testing
here, so lower it to 10ms so that we create fewer buffers which speeds
things up on slow machines and in valgrind.
2019-03-09 17:17:11 +00:00
Matthew Waters
d5b18ae58f tests/glbin: setting a full reference means we need to unref
Fixes the element leaks in the full variants of the glbin test.
2019-03-06 23:32:18 +11:00
Tim-Philipp Müller
273da3ed2f tests: vorbisec: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
9f664f62ee tests: glmatrix: fix leaks in unit test 2019-03-06 10:51:40 +00:00
Tim-Philipp Müller
afe5ed8ad7 tests: glmemory: fix leaks in unit test 2019-03-06 10:51:40 +00:00