Commit graph

1163 commits

Author SHA1 Message Date
Stefan Sauer
9cff4f69cb ipcpipeline: work around gcc bug in struct initializers
Unfortunately we need to use an extra set of parenthesis for each data level.

For details see:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53119
Affected versions are e.g.
gcc (Ubuntu 4.8.4-2ubuntu1~14.04.3) 4.8.4
which is the default on ubuntu-trusty. I looks like the fix was never
backported.
2017-10-20 10:36:36 +02:00
Stefan Sauer
17dfaf83dc aggregator: add two more tests for a sequence of data
This verifies that we handle events and queries at the head of the queue and
then buffers.
2017-10-14 18:20:30 +02:00
Stefan Sauer
9c1b85115c aggregator: refactor the test helper
Make the test helpers use a queue. This lets us also test sequences of events,
queries and data.
2017-10-14 18:20:30 +02:00
Stefan Sauer
8e43094a17 aggregator: test cleanup
Remove gst_init() from a few tests. Use _OBJECT variants in logging. Remove
arbitrary extra blank lines. Make push_event() more like push_buffer() - set
the event to NULL and add cleanup to _chain_data_clear().
2017-10-14 18:20:30 +02:00
Reynaldo H. Verdejo Pinochet
0f71d2e408 Use proper GtkDoc notation for NULL/FALSE/TRUE 2017-10-03 14:35:48 -07:00
George Kiagiadakis
275592927b tests/check: disable all ipcpipeline tests until I find a way to make them run reliably 2017-09-21 11:46:22 +03:00
Stefan Sauer
820cf44f7d tests: simplify audiomixer test
Use _link_many() and reuse a helper to reduce the test code.
2017-09-17 10:20:09 -07:00
Edward Hervey
58a2df001c check: Fix usage of dual probes
Using two (or more) probes on the same pad where one of the probe
returns HANDLED or DROP is tricky since the other probes might
not be called.

Instead use regular probes and a proper pad (the sinkpad already existed,
it only required to be activated and have a dummy chain function for
the events/buffers to be received/handled properly)
2017-09-05 14:28:54 +02:00
George Kiagiadakis
282b682cab tests: ipcpipeline: provide pipe2() on systems that don't have it
https://bugzilla.gnome.org/show_bug.cgi?id=786763
2017-08-31 15:09:24 +03:00
George Kiagiadakis
cf1bb83d8d tests: ipcpipeline: make the state_changes test more deterministic
Watching the STATE_CHANGED messages is way more deterministic than
polling the state.

https://bugzilla.gnome.org/show_bug.cgi?id=786006
2017-08-30 18:55:32 +03:00
George Kiagiadakis
acc2719720 tests: ipcpipeline: fix broken exclusivity checks
In most cases we want to stop the pipeline just once, but we have
to do this from code that runs in the streaming threads and in case
we have multiple streams, we need to make sure that we do this only
once. The previous checks were broken, this should fix it.

https://bugzilla.gnome.org/show_bug.cgi?id=786006
2017-08-30 18:55:32 +03:00
George Kiagiadakis
f6cc14c85a tests: ipcpipeline: attempt to make tags test more deterministic
Instead of using a timeout and pushing the tags from an outside
thread, use a pad probe and push them from the streaming thread.

https://bugzilla.gnome.org/show_bug.cgi?id=786006
2017-08-30 18:55:32 +03:00
Tim-Philipp Müller
54d7e2811f meson: fix build for isoff lib addition 2017-08-26 12:03:06 +01:00
Seungha Yang
98576325e3 isoff: Add parsing mss specific tfrf and tfxd boxes
This code is imported from mssdemux's tfxd/tfrf parsing function

https://bugzilla.gnome.org/show_bug.cgi?id=777825
2017-08-25 17:21:32 -07:00
Seungha Yang
3db9152ec6 isoff: Add parsing moov and tfdt
To extract isobmff level timestamp, moov and tfdt parsing is required.

https://bugzilla.gnome.org/show_bug.cgi?id=777825
2017-08-25 17:21:11 -07:00
Seungha Yang
7d06ecb3a4 isoff: Move isoff to gst-libs
Also rename unit test dash_isoff to isoff

https://bugzilla.gnome.org/show_bug.cgi?id=777825
2017-08-25 17:21:04 -07:00
Tim-Philipp Müller
9da2de1968 tests: ipcpipeline: skip broken tests
These fail on the build bots. Blacklist until someone
investigates.

https://bugzilla.gnome.org/show_bug.cgi?id=786006
2017-08-25 19:33:41 +01:00
Philippe Normand
8b7aa50bc9 tests/player: check for media-info-updated before duration-changed
The media-info-updated signal is now emitted before duration-changed since
commit 8a29da8023.

https://bugzilla.gnome.org/show_bug.cgi?id=786201
2017-08-25 19:09:00 +01:00
Matthew Waters
63dd27a785 gl/checks: fix build 2017-08-24 01:18:40 +10:00
Matthew Waters
d8bc42fb30 glutils: fix matrix operations everywhere
- correct the matrix multiplication
- Use column-major matrices
  - reverse order of matrix multiplications

https://bugzilla.gnome.org/show_bug.cgi?id=785980
2017-08-23 15:32:10 +10:00
Julien Isorce
2fd84a6c86 gl: do not include GL headers in public gstgl headers
Except for gst/gl/gstglfuncs.h

It is up to the client app to include these headers.
It is coherent with the fact that gstreamer-gl.pc does not
require any egl.pc/gles.pc. I.e. it is the responsability
of the app to search these headers within its build setup.

For example gstreamer-vaapi includes explicitly EGL/egl.h
and search for it in its configure.ac.

For example with this patch, if an app includes the headers
  gst/gl/egl/gstglcontext_egl.h
  gst/gl/egl/gstgldisplay_egl.h
  gst/gl/egl/gstglmemoryegl.h
it will *no longer* automatically include EGL/egl.h and GLES2/gl2.h.
Which is good because the app might want to use the gstgl api only
without the need to bother about gl headers.

Also added a test: cd tests/check && make libs/gstglheaders.check

https://bugzilla.gnome.org/show_bug.cgi?id=784779
2017-08-22 10:00:19 +01:00
Tim-Philipp Müller
dea349d9ba tests: export symbols of parser tests helper lib and make it static
And only make the tests that use it link against the helper lib.
2017-08-10 09:08:03 +01:00
George Kiagiadakis
30f5abc32c ipcpipeline: move to sys/ and make it dependent on platform support for unix sockets 2017-08-02 10:40:24 +03:00
George Kiagiadakis
35a01f41ce tests/check: add automatic unit test suite for the ipcpipeline elements
All tests run within a common framework for splitting processes
and making them interract properly with the gst check system.
2017-08-01 14:43:06 +03:00
Stefan Sauer
b5a5f75b44 tests: audiomixer: set all properties at once 2017-07-15 21:28:38 +02:00
Stefan Sauer
c06c67746b tests: audiomixer: use the buffer helper for other tests too 2017-07-15 19:34:15 +02:00
Stefan Sauer
5b4d907709 audiomixer: add a helper for buffer creation
This makes the test setup easier to read.
2017-07-14 08:09:25 +02:00
Stefan Sauer
f3bcf65f92 audiomixer: use test helper once more 2017-07-13 22:02:17 +02:00
Stefan Sauer
636cce13b9 audiomixer: more test cleanups
Port over the test helpers from the adder tests.
2017-07-10 21:08:09 +02:00
Stefan Sauer
4ce4a71d5b audiomixer: refactor test
Apply cleanups from the adder tests. Use a fixture for common code.
2017-07-10 20:16:56 +02:00
Thibault Saunier
7f62c6164a meson: Do not use path separator in test names
Avoiding warnings like:

    WARNING: Target "elements/audioamplify" has a path separator in its name.
2017-06-28 11:39:50 -04:00
Nicolas Dufresne
5a8ffe2aa3 meson: Enable netsim unit test 2017-06-22 16:40:07 -04:00
Nicolas Dufresne
eab6cd8d6d meson: Enable shm unit test 2017-06-21 15:15:37 -04:00
Scott D Phillips
25d2b8a608 tests: dash & adaptivedemux: move iterator variable declaration out of for
This is a c99-ism that gcc 4.8.5 errors on unless -std=c99 is
specified.

https://bugzilla.gnome.org/show_bug.cgi?id=783868
2017-06-17 10:59:42 +03:00
Thibault Saunier
761f0d1ca9 meson: Fix building/running tests outside gst-build 2017-06-07 16:59:10 -04:00
Mathieu Duponchelle
794ada056a tests: start porting to meson
Incomplete port, to get the ball rolling

https://bugzilla.gnome.org/show_bug.cgi?id=782962
2017-06-07 20:21:17 +02:00
Olivier Crête
ec27bb09dc tests: Make audiomixer test_clip verify the resulting timestamps too 2017-05-23 12:35:58 +02:00
Olivier Crête
4b374ca3fb tests: audiointerleave: Remove drain with manual clock
Now that the queries go onto the queue, you may need to pull the crank
in order for them to be processed, making this test difficult.
2017-05-23 12:35:58 +02:00
Matthew Waters
7c53043386 aggregator: add simple support for caps handling
Modelled off the videoaggregator caps handling as that seems the most
mature aggregtor-using implementation that has caps handling there is.

https://bugzilla.gnome.org/show_bug.cgi?id=776931
2017-05-20 16:21:17 +02:00
Olivier Crête
c0849df4ac tests: Test caps using query
Sending an event can accepted event if the caps were rejected
because the event could be queued and processed later.

Also send a drain query in the caps test to make sure that the
event has been processed.

https://bugzilla.gnome.org/show_bug.cgi?id=781673
2017-05-20 16:21:16 +02:00
Tim-Philipp Müller
142469ab91 tests: fix link problem on centos7
And put LIBS before -lgstfoo in adaptivedemux Makefile.am
2017-04-27 21:33:25 +01:00
Thiago Santos
22c037df6c tests: dash_mpd: add some inheritance tests
Tests regarding inheritance of segment template attributes
2017-04-15 18:44:04 -07:00
Vincent Penquerc'h
b817f16e19 tests: fix leak in videoframe-audiolevel test
also add braces for the else case

https://bugzilla.gnome.org/show_bug.cgi?id=781022
2017-04-09 11:17:04 +03:00
Seungha Yang
a3a12d0978 mpdparser: Report error if Representation is invalid
Spec "5.3.5 Representation" is saying that
id and bandwidth attributes are mandatory fields.

https://bugzilla.gnome.org/show_bug.cgi?id=780569
2017-04-09 10:58:27 +03:00
Tim-Philipp Müller
36edda5797 tests: dash: don't use deprecated g_object_newv() 2017-04-08 10:08:04 +01:00
Olivier Crête
ae7ba6ed46 srtp test: Remove deprecation disabling
No deprecated APIs are used.
2017-03-14 16:46:43 -04:00
Matthew Waters
fd8d35298f Revert "adaptivedemux: answer duration queries for live streams"
Completely disabling duration reporting with live streams is not cool.

This reverts commit e1b68d9a65.

https://bugzilla.gnome.org/show_bug.cgi?id=753879
2017-03-14 16:50:30 +11:00
Matthew Waters
efc015f27d gl: GL_ARRAY_BUFFER is not a part of VAO state
As a result we need to bind it on every draw in order to have the
correct state in the GL state machine.
2017-03-14 14:15:00 +11:00
Matthew Waters
956c4d0bde gl/format: use our own GL format enum's instead of gstvideo's
They can describe in more detail (such as component sizes) the requested format.
2017-03-13 21:10:58 +11:00
Hyunjun Ko
08219f3665 tests: h264parse: fix failures due to insertion of au delimiter
Since insertion of aud landed, we need to change some testcases
accroding to the change.

Note that counting frames are changed in parser.c,
due to generated frames, AUD.

https://bugzilla.gnome.org/show_bug.cgi?id=736213
2017-03-08 14:19:43 +02:00
Seungha Yang
e28ddbdf77 tests: hls: Fix leak on test code
https://bugzilla.gnome.org/show_bug.cgi?id=778073
2017-03-02 20:24:00 +02:00
Alex Ashley
e1b68d9a65 adaptivedemux: answer duration queries for live streams
For duration queries on live streams, adaptivedemux ignores the query.
The problem then is that the query is answered by the downstream
qtdemux element, with the duration of the currently passing fragment.

This commit changes the behaviour of adaptivedemux to answer the duration
queries for live streams, returning GST_CLOCK_TIME_NONE.

    https://bugzilla.gnome.org/show_bug.cgi?id=753879
2017-03-02 19:54:04 +02:00
Sebastian Dröge
4af642a6f8 rawparse: Move to gst-plugins-base and keep legacy audioparse/videoparse here
https://bugzilla.gnome.org/show_bug.cgi?id=774544
2017-02-25 14:52:38 +02:00
Sebastian Dröge
63e280df22 rawbaseparse: Drop incomplete frames at EOS
See https://bugzilla.gnome.org/show_bug.cgi?id=773666

This would ideally be solved in baseparse but that requires further
thought at this point, and in the meantime it would be good to have
rawbaseparse not assert on this but handle it gracefully instead.
2017-02-18 20:18:50 +02:00
Jan Schmidt
4a0bb14d9c adaptivedemux: Allow that 2017-02-09 00:16:33 +11:00
Jan Schmidt
309368bac3 adaptivedemux: Fix tests for delayed pad exposure.
Make the unit tests handle the fact that pads don't appear
immediately. Before, the test assumed pads are exposed before the
internal source element is created, which is no longer true.
2017-02-08 22:59:49 +11:00
Seungha Yang
d59571e80e tests: hlsdemux: Fix live startup sequence and seek range
To satisfy follwing restriction of HLS spec 6.3.3,
select startup fragment sequence to 4th from end of playlist.
Also, seek range should exclude last three fragment in playlist.

"the client SHOULD NOT choose a segment which starts less than
three target durations from the end of the Playlist file."

https://bugzilla.gnome.org/show_bug.cgi?id=777682
2017-01-31 13:23:34 +02:00
Edward Hervey
d98e82d667 check: Use gst_check_run_suite
Ensures that xunit reports get generated when requested
2017-01-02 15:05:19 +01:00
Sebastian Dröge
bdc1236003 dash: Define debug category used in the isoff code for the test too now 2016-12-24 08:42:51 +02:00
Edward Hervey
cf9a341e9d check: Use non-deprecated API 2016-12-21 12:06:00 +01:00
Sebastian Dröge
9b5de05399 Remove various unported plugins
If they were not ported after 4+ years it seems unlikely that anybody is
ever going to need them again. They're still in the GIT history if
needed.

https://bugzilla.gnome.org/show_bug.cgi?id=774530
2016-12-21 11:17:11 +02:00
Sebastian Dröge
5c99f9cf37 gst: Don't declare variables inside the for loop header
This is a C99 feature.
2016-12-13 22:39:01 +02:00
Tim-Philipp Müller
de4bb6e1d4 dataurisrc: remove plugin, moved to core
https://bugzilla.gnome.org/show_bug.cgi?id=774527
2016-11-28 11:26:50 +00:00
Tim-Philipp Müller
ad661999ad mimic: remove ancient codec
This was used by MSN messenger in prehistoric times, it's safe
to say no one needs or wants this any more these days. For
decoding old recordings there's still a decoder in ffmpeg.

https://bugzilla.gnome.org/show_bug.cgi?id=597616
2016-11-23 10:33:37 +00:00
Seungha Yang
e454694f0a mpdparser: Handle invalid external xml link for Period element
Section 5.3.3 in ISO/IEC 23009-1:2014 defines that invalid references
(e.g., invalide URI or cannot be resolved) specified by "@xlink:href" attribute
shall be removed. That means, we should play it without error,
and just ignore the corresponding element.
It's similar to "urn:mpeg:dash:resolve-to-zero:2013".

https://bugzilla.gnome.org/show_bug.cgi?id=774463
2016-11-21 09:43:30 +02:00
Tim-Philipp Müller
39b47e54eb tests: fix lib and cflags order in Makefile.am
pnm: add misssing continuation slash at end of line
vp8parser: no need to link codecparsers twice
dash_demux, mssdemux, hlsdemux: fix lib/flags ordering - local
libs and flags must come first, then base before core before rest
2016-11-20 13:22:56 +00:00
Matthew Waters
a7b0669ce8 gl/tests: fix glimagesink element test on OSX
It was suffering a race starting up the thread that could cause the main
loop to quit before the main loop had started.
2016-11-17 17:30:54 +11:00
Matthew Waters
1ddbd773f8 gl/tests: don't use the default framebuffer
Create our own instead as the default framebuffer may require special
fiddling (like having a visible window) to correctly display/be renderable.

Fixes the remaining GL library tests on OS X
2016-11-16 18:06:45 +11:00
Sebastian Dröge
72927c9b77 dash: Fix breakage in unit test caused by gst-indent 2016-11-14 17:00:21 +02:00
Seungha Yang
68e4f919a0 mpdparser: Support multiple Period elements in external xml
External xml could have empty, one or multiple top-level "Period" elements.
Because xml parser cannot parse the multiple top-level elements
(i.e., no root element), we need to wrap a xml in order to make root element.
See also ISO/IEC 23009-1:2014 5.3.2.2

https://bugzilla.gnome.org/show_bug.cgi?id=774357
2016-11-14 16:56:43 +02:00
Philippe Normand
0fbd2edaff mpdparser: wrap unmodified data in protection event
PlayReady being the one of the few DRM formats encoding its data with
base64 it was not consistent to have a special case for this. So the
base64 decoding operation now needs to be done by the protection event
consumer, if needed.

https://bugzilla.gnome.org/show_bug.cgi?id=774112
2016-11-14 11:50:13 +01:00
Philippe Normand
dd0c56b4a2 mpdparser: MS PlayReady ContentProtection parsing
The "pro" (PlayReady Object) element contents are now base64-decoded
and properly stored in Protection events.

https://bugzilla.gnome.org/show_bug.cgi?id=773936
2016-11-04 17:04:59 +02:00
Sebastian Dröge
4899bf0926 gst: Fix more mentions of interlaced-mode to say interlace-mode 2016-11-04 16:26:50 +02:00
Edward Hervey
99721ddffa check: Add new test to .gitignore 2016-11-03 08:32:04 +01:00
Matthew Waters
4b43862cdb glsl: fix #version 150 not working with profiles
The spec allows the core/compatibility profiles to be used
with #version 150.

Also tighten up the tests to check for default profiles being chosen
correctly.
2016-11-03 12:08:44 +11:00
Sebastian Dröge
898a62c1ac Revert "tests: rawvideoparse: add test for flow error handling"
This reverts commit 280b4ac2ff.

https://bugzilla.gnome.org/show_bug.cgi?id=773666
2016-11-02 09:36:04 +02:00
Tim-Philipp Müller
280b4ac2ff tests: rawvideoparse: add test for flow error handling
Also needs fixes in baseparse:
https://bugzilla.gnome.org/show_bug.cgi?id=773666
2016-11-01 20:34:37 +02:00
Vincent Penquerc'h
9a2df5dc3b tests: add a test for srtp elements
https://bugzilla.gnome.org/show_bug.cgi?id=772357
2016-11-01 19:37:50 +02:00
Matthew Waters
d37a2f13ee tests/gl: make sure all GL commands are executed on the GL thread
e.g. the final glGetError() must also be completed on the GL thread
2016-10-05 12:20:52 +11:00
Martin Kelly
dd062b6606 build: add missing $(GST_PLUGINS_BASE_LIBS)
The linker flags for several plugins (dashdemux, mssdemux, hlsdemux) are missing
$(GST_PLUGINS_BASE_LIBS), so add them so they can find -lgsttag and -lgstapp.

https://bugzilla.gnome.org/show_bug.cgi?id=771780
2016-09-21 14:38:25 -04:00
Joakim Johansson
25cb3afb58 rtponviftimestamp: Update unit tests after changing default value of D-bit
The D bit shall always be set to true for the first buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=770221
2016-09-21 09:41:38 -04:00
Sebastian Dröge
68cbf7802d player: Fix unit test for minor API change 2016-09-15 14:58:35 +02:00
Matthew Waters
d2ff585de1 tests/glupload: support opengl3 properly instead of spewing GL errors 2016-08-29 16:58:24 +10:00
Alessandro Decina
a7dccec0ff glupload: fix tests and check for the new RECONFIGURE behaviour
The tests were broken since 91fea30, which changed glupload to return
GST_GL_UPLOAD_RECONFIGURE if the texture target in the input buffers doesn't
match the texture-target configured in the output caps.

This commit fixes that and adds more checks for the new behaviour.
2016-08-29 16:06:06 +10:00
Sebastian Dröge
268c18054d dash: Fix build of unit test 2016-08-26 20:12:21 +03:00
Josep Torra
2702d98d6b gitignore: add missing dash_isoff file 2016-08-25 16:33:17 +02:00
Josep Torra
ee3b23efc0 build: fix gst-uninstalled build in osx
Fixes clang: error: argument unused during compilation: '-pthread'
when building the test programs.
2016-08-25 16:28:11 +02:00
Josep Torra
0208168952 build: unconditionally check for video, audio and pbutils modules
Check for modules in configure and use GST_*_LIBS vars to link with
the libraries instead of hardcoding them.
2016-08-25 16:27:41 +02:00
Carlos Rafael Giani
638c442467 rawparse: Fix and extend unit tests
* Add caps change test to unit tests
* Cleanup leftover buffers after each unit test
* Add missing rawvideoparse entry in .gitignore

https://bugzilla.gnome.org/show_bug.cgi?id=769637
2016-08-18 10:53:58 +03:00
Carlos Rafael Giani
91cf5ac69f rawvideoparse: Compute plane offsets & strides if no custom ones are set
This is useful to ensure that the offsets and strides are computed if
only width, height, format etc. in the property config are set.

https://bugzilla.gnome.org/show_bug.cgi?id=769797
2016-08-18 09:21:16 +03:00
Sebastian Dröge
f126403bd6 dashdemux: Disable unit test for the time being
It uses random data streams but dashdemux nowadays actually looks into the
streams and doesn't like randomness very much. The tests should probably just
become validate tests on real streams.

https://bugzilla.gnome.org/show_bug.cgi?id=769553
2016-08-11 12:19:59 +02:00
Sebastian Dröge
6dbfb1133c dash: Add test for parsing a moof box
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Sebastian Dröge
e3805e4a96 dash: Add unit test for ISOBFF box header parsing
https://bugzilla.gnome.org/show_bug.cgi?id=741104
2016-08-11 11:56:55 +02:00
Tim-Philipp Müller
4df6f1ee93 hlsdemux: move variant list handling over to new master playlist code
Adapt hlsdemux for the m3u8 playlist changes.
2016-08-03 23:49:54 +10:00
Sebastian Dröge
aa27e34331 aiffparse: In PUSH mode we will never get the ID3 tags as they are at the end of the file
This previously did not fail as before we didn't get any tags at all in PUSH
mode, now we get the bitrates.
2016-08-02 17:07:37 +03:00
Alex Ashley
dc6e4ccbf9 tests: dashdemux: add test for gst_mpd_client_get_maximum_segment_duration
Add a test of the gst_mpd_client_get_maximum_segment_duration() function
to check that it first checks the MPD@maxSegmentDuration and then falls
back to checking all of the segment durations.

https://bugzilla.gnome.org/show_bug.cgi?id=753751
2016-08-02 12:52:34 +01:00
Vincent Penquerc'h
c94c0ad834 tests: fix simple-launch-lines when jpeg lib isn't present
JPEG detection in configure.ac defines HAVE_JPEG to 0 if the
jpeg lib isn't found, rather then not defining it.

https://bugzilla.gnome.org/show_bug.cgi?id=769197
2016-07-26 18:09:39 +01:00
Carlos Rafael Giani
d555f34562 rawparse: Add new raw audio and video parser elements
The new rawaudioparse and rawvideoparse elements are based on GstBaseParse
and completely replace audioparse and videoparse

https://bugzilla.gnome.org/show_bug.cgi?id=767011
2016-07-26 13:44:39 +03:00
Matthew Waters
06b4b52a20 glcontext: remove not thread-safe get/set_error()
Use GError's instead if necessary.
2016-07-26 14:07:24 +10:00
Matthew Waters
518e8a3fd2 glframebuffer: rewrite for a more consistent API
Facilities are given to create fbo's and attach GL memory (renderbuffers
or textures).  It also keeps track of the renderable size for use with
effective use with glViewport().
2016-07-26 14:07:24 +10:00