Commit graph

1073 commits

Author SHA1 Message Date
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
Guillaume Desmottes
0f692e202e player: move 'position-update-interval' setting to the config struct
https://bugzilla.gnome.org/show_bug.cgi?id=769144
2016-07-25 13:03:20 +03:00
Guillaume Desmottes
6e39cef802 player: add API to change http user agent
Introducing a new 'config' API similar to GstBufferPoolConfig.

https://bugzilla.gnome.org/show_bug.cgi?id=765314
2016-07-25 13:02:35 +03:00
Guillaume Desmottes
b3b764999a tests: fix bus leak
gst_bus_remove_signal_watch() has to be called to release the ref
taken by gst_bus_add_signal_watch().

https://bugzilla.gnome.org/show_bug.cgi?id=768843
2016-07-18 12:41:12 +01:00
Matthew Waters
989200820d glmemory: add the texture type to allocate to parameters
Rather than assuming something.  e.g. zerocopy on iOS with GLES3 requires
the use of Luminance/Luminance Alpha formats and does not work with
Red/RG textures.
2016-06-29 18:04:28 +10:00
Olivier Crête
dbda62f429 tests: Ignore kmssink for state change test
It can only be put to READY if the DRM stuff is available.
2016-06-27 21:36:50 -04:00
Guillaume Desmottes
9106bf573a templatematch: fix buffer leak in test
Need to call gst_check_drop_buffers() to unref the buffers exchanged
during the test.

https://bugzilla.gnome.org/show_bug.cgi?id=767159
2016-06-21 10:57:18 +03:00
Guillaume Desmottes
0d6359d4a2 glimagesink: fix query leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
e071510b12 glimagesink: properly setup/teardown tests
tcase_add_checked_fixture() is suppose to call the setup and teardown
functions so the tests don't have to do it manually.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
6a02c8a109 glupload: fix shader leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
bebe4ca7ab uvch264demux: fix buffer leaks in test
The mock chain functions aren't unreffing the buffers so the caller
should do it.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
9694e7e820 camerabin: fix element leak in test
https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
a68534d094 fix buffer leaks in tests
gst_check_drop_buffers() release the buffers exchanged during the test.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
fc5cb1ec13 fix event leaks in tests
The events are supposed to be unreffed when finishing the test, not
reffed.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
2ec2e15a2a audiointerleave: fix message leaks by flushing the bus
https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Guillaume Desmottes
e925a8acf0 autoconvert: fix factories leak in test
The factories returned by gst_registry_find_feature() have to be
unreffed.

https://bugzilla.gnome.org/show_bug.cgi?id=766663
2016-06-21 10:52:47 +03:00
Matthew Waters
05b24c128a tests/glcontext: link against gstvideo for gst_video_info_*
fixes make distcheck complaining about it.
2016-06-16 01:54:16 +10:00
Matthew Waters
8c9b231db1 tests/glcontext: update test for gen,del_texture removal 2016-06-16 00:47:42 +10:00
Guillaume Desmottes
0467923415 player: inhibit signals after gst_player_stop() has been called
Also wait for the state change to STOP to have been announced before
destroying the player so it won't appear as leaked by leak detector
tools.

https://bugzilla.gnome.org/show_bug.cgi?id=766607
2016-05-30 12:43:22 +03:00
Guillaume Desmottes
b00f0d0180 player: handle uri-loaded in test
Had to adapt the existing tests because of this new callback.

https://bugzilla.gnome.org/show_bug.cgi?id=766607
2016-05-30 12:43:22 +03:00
Jan Schmidt
1079e1c48c pnm: Add a basic unit test
Test that we can run an encode / decode cycle in various
formats without errors
2016-05-24 07:21:44 +10:00
Guillaume Desmottes
0f19a48c98 player: use gst_check_init() in test
Calling GST_DEBUG() in test rely on the default category to be defined,
which is done in gst_check_init().

https://bugzilla.gnome.org/show_bug.cgi?id=766607
2016-05-21 09:57:54 +03:00
Thiago Santos
04e4392afe tests: adaptivedemux: only check for data length after seek
When the test involves doing a seek, only check for data size after
the seek. The final segment range after seek might be different/smaller
than the threshold for doing the seek and doing the check before
seeking would fail.
2016-04-22 17:33:15 -03:00
Florin Apostol
00a74e98b3 adaptivedemux: tests: use macro to define names of request and response structs
Following the Don't Repeat Yourself principle, define macros
for the structures that contain the request and response headers,
so that the name is not repeated in multiple places in multiple files.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
3224cfd0b5 adaptivedemux: tests: improved checks for expected data
Check the size of received data for each buffer received by AppSink

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
808a51dc0e dashdemux: tests: added content protection test
Test content protection
Configure 3 content protection sources:
- a uuid scheme/value pair
- a non uuid scheme/value pair (dash recognises only uuid schemes)
- a complex uuid scheme, with trailing spaces and capital letters in scheme uri
Only the uuid scheme should be recognised. We expect to receive 2 content protection events

https://bugzilla.gnome.org/show_bug.cgi?id=758064
2016-04-22 17:33:15 -03:00
Florin Apostol
5b6b24859f dashdemux: tests: added test for media download error for in stream fragment
Tested download error for a fragment that is not the last media fragment
in the stream.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
01397f56f2 dashdemux: tests: added test for download errors during header download
Test header download error.
Let the adaptive demux download a few bytes, then instruct the
GstTestHTTPSrc element to generate an error while the fragment header
is still being downloaded.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
b8ba8a3b7e dashdemux: tests: refactor testFragmentDownloadError
Renamed testFragmentDownloadError to testMediaDownloadErrorLastFragment.
Added gst_adaptive_demux_test_unexpected_eos function.
Remove unneeded testFragmentDownloadErrorCheckSizeOfDataReceived.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
f89fe6cb45 dashdemux: tests: tested latency query
Updated query test to also check if dash responds correctly to a latency
query.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
a7f1eb234f dashdemux: tests: moved testQuery after testFragmentDownloadError
Moved testQuery after testFragmentDownloadError so that testDownloadError
and testFragmentDownloadError are grouped together.

The commit just moved the testQueryCheckDataReceived and
GST_START_TEST (testQuery) functions but git gets confused in matching the
lines and reports a lot of changes in the patch.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
f27d585078 adaptivedemux: tests: create a GstDashDemuxTestCase class
Create a GstDashDemuxTestCase class that extends from GstAdaptiveDemuxTestCase.
This new class will contain all the DASH specific fields.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Florin Apostol
9c0489e73e dashdemux: tests: added support to pass various parameters to http src callbacks
Added support to pass various parameters to http src callbacks using GstStructure.

https://bugzilla.gnome.org/show_bug.cgi?id=762144
2016-04-22 17:33:15 -03:00
Edward Hervey
1c0688ab65 check: Fix LDADD/CFLAGS for player unit test
It now requires libgstvideo
2016-04-22 08:21:08 +02:00
Florin Apostol
e86e08b4ac adaptivedemux: tests: use a GstTestClock as the system clock
To allow the adaptivedemux live stream tests to run in non-realtime, use a
GstTestClock as the system clock. This allows the unit tests to complete
more quickly than if they had to complete in real time.

https://bugzilla.gnome.org/show_bug.cgi?id=762147
2016-04-21 16:46:09 -03:00
Thiago Santos
641bb44226 videoaggregator: properly handle interlace-mode restrictions
videoaggregator can't handle interlace-mode changes so it must
always restrict itself to the first interlacing mode it receives.

Tests included

https://bugzilla.gnome.org/show_bug.cgi?id=754495
2016-04-18 13:46:48 -03:00
Florin Apostol
7d8cc26c91 dashdemux: unit testing reproducing segment duration overflow
unit test reproducing https://bugzilla.gnome.org/show_bug.cgi?id=751792

With minor changes by Vincent Penquerc'h.
2016-04-05 17:01:00 +01:00
Thiago Santos
8b777669f5 tests: mssdemux: do not use gst_object_unref for pure GObject*
Deallocate GObject* with g_object_unref instead of gst_object_unref.

Even if it works now, it is confusing and in the future it might
not work if any GstObject specifics are added.

https://bugzilla.gnome.org/show_bug.cgi?id=762142
2016-03-31 18:24:38 -03:00
Florin Apostol
6efda04059 dashdemux: tests: use g_object_unref for test data
The GstDashDemuxTestCase object is allocated using g_object_newv
but in many places was being deallocated using gst_object_unref.
This was caused by commit ae3ed25025.

https://bugzilla.gnome.org/show_bug.cgi?id=762142
2016-03-31 18:24:37 -03:00
Matthew Waters
74cc987446 gl/tests/pipelines: add custom _CFLAGS and LDADD
As is done everywhere else.

From what I can gather from make -C tests/check V=1 $(GST_PLUGINS_BAD_CFLAGS) is
required in order to find in-tree headers as well as srcdir != builddir
configurations.
2016-03-31 23:07:17 +11:00
Matthew Waters
0ef4269a7f gl/tests: only build the simple-launch-lines test if we have GL 2016-03-31 22:27:02 +11:00
Matthew Waters
4210e84f24 gl/tests: add missing test to the build system
Also update it for the current api
2016-03-31 20:53:18 +11:00
Sebastian Dröge
86e57adda2 aggregator: Fix leak in unit test
GST_PAD_PROBE_HANDLED means that we should've unreffed the probe data,
it was handled by us in one way or another.
2016-03-28 13:52:07 +03:00
Nirbheek Chauhan
d023bca972 tests/compositor: Add test for aggregator pad numbering
Tests that the behaviour in 7a5cb5a473 is being conformed to.
2016-03-28 13:46:00 +03:00
Vineeth TM
8cdfb13658 bad: use new gst_element_class_add_static_pad_template()
https://bugzilla.gnome.org/show_bug.cgi?id=763081
2016-03-24 14:56:51 +02:00
Matthew Waters
aa6062945c gldisplay: make readding the same context a no-op
With e38af23044 returning the correct contexts,
gst_gl_display_add_context() was susceptible to causing infinte loops when
adding the same GstGLContext more than once.  Fix and add a test for
gst_gl_display_add_context().

Fixes glvideomixer gst-validate tests.
2016-03-08 02:06:13 +11:00
Thiago Santos
c65b0e3a57 adaptivedemux: handle snap seeking without setting any position
When the start_type is GST_SEEK_TYPE_NONE for a forward seek
(or stop_type for a reverse) is not set on a snap seeking operation,
the element should use the current position and then snap as requested.

Also fixes uninitialized variable complaint by clang about
'ts' variable.
2016-02-26 18:17:37 -03:00
Tim-Philipp Müller
5f6ab24e0d opus: remove Opus encoder/decoder, moved to -base
https://bugzilla.gnome.org/show_bug.cgi?id=756282
2016-02-26 00:44:34 +00:00
Alex Ashley
35e00becfe hlsdemux: tests: pass test name into test setup function
All hlsdemux tests create a GstStructure called "state" that can be used
by test cases to store information during a test. The name of this
structure is arbitrary. When the code was written, the intention was
to use the name of the test, to aid debugging. However, during
development this was lost, so that the state GstStructure is always
given the name "setup_test_variables".

This commit changes this so that the name of the test is used.

https://bugzilla.gnome.org/show_bug.cgi?id=762684
2016-02-25 17:41:59 +00:00
Thiago Santos
dff4c6d499 tests: compositor: drop special case for valgrind timeout
The default one is 6 minutes, the test was using 5 minutes so just
resort to using the default.

For the non-valgrind test also use the default 20 secs instead of
reducing it to 6s. No real reason to set a custom value here.
2016-02-25 11:43:43 -03:00
Thiago Santos
7d948b025a tests: compositor: add tests for caps queries
Verifies that proper caps are returned based on what downstream
restricts.
2016-02-25 11:43:43 -03:00
Thiago Santos
f231598370 videoaggregator: fix caps queries to allow proper renegotiation
When caps are already negotiated it should be possible to
select formats other than the one that was negotiated. If downstream
allows alpha video caps and it has already negotiated to a non-alpha
format, caps queries should still return the alpha caps as a possible
format as caps renegotiation can happen.

Includes tests (for compositor) to check that caps queries done after
a caps has been negotiated returns complete results

https://bugzilla.gnome.org/show_bug.cgi?id=757610
2016-02-25 11:43:43 -03:00
Tim-Philipp Müller
08d8aefcda mpg123: move plugin from -bad to -ugly
https://bugzilla.gnome.org/show_bug.cgi?id=719849
2016-02-16 11:00:55 +00:00
Stian Selnes
e3f9e854f0 netsim: Add netsim element
Resurrected from the Farstream repository and given an
overhaul to fix races, deadlocks etc.

https://bugzilla.gnome.org/show_bug.cgi?id=756252
2016-02-12 10:08:06 +00:00
Florin Apostol
9ccd541980 mpdparser: renamed gst_mpd_client_get_next_segment_availability_end_time to gst_mpd_client_get_next_segment_availability_start_time
The function actually returns the segment availability start time (as defined by the standard).
That is at the end of the segment, but it is called availability start time.

Availability end time is something else (the time when the segment is no longer
available on the server). The function name was misleading.

https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:49:37 -03:00
Florin Apostol
25c89b12d6 mpdparser: tests: added unit test for getting segment availability when segment timeline is used
https://bugzilla.gnome.org/show_bug.cgi?id=757655
2016-02-09 16:35:44 -03:00
Florin Apostol
13f66a68ed adaptive_demux: tests: improved validation of pads
When removing a pad, the on_demuxPadRemoved function must find a stream
for that pad.

https://bugzilla.gnome.org/show_bug.cgi?id=760328
2016-02-09 10:21:57 -03:00
Florin Apostol
7ed4f6f03f adaptive_demux: tests: fix pad used for AppSink event
on_demuxNewPad registered the on_appsink_event callback on a wrong pad.

https://bugzilla.gnome.org/show_bug.cgi?id=760328
2016-02-09 09:59:47 -03:00
Florin Apostol
97c562ecbf adaptivedemux: tests: remove unused demux_sent_eos callback
The demux_sent_eos callback is unused in tests. It was also registered on
a wrong pad, so it actually triggered when demux received eos from a
fragment download.

https://bugzilla.gnome.org/show_bug.cgi?id=760328
2016-02-09 09:38:54 -03:00
Florin Apostol
d07484c837 adaptivedemux: tests: remove unneeded youtube xmlns from manifests
https://bugzilla.gnome.org/show_bug.cgi?id=760328
2016-02-09 09:38:54 -03:00
Thiago Santos
669b360ff7 tests: extend the AM_TESTS_ENVIRONMENT from check.mak
To get the CK_DEFAULT_TIMEOUT defined for all tests

https://bugzilla.gnome.org/show_bug.cgi?id=761472
2016-02-05 20:02:22 -03:00
Thiago Santos
8f25333976 tests: mssdemux: add unit tests
Adds unit tests similar to the ones that we have for DASH and HLS.

Tests:

* manifest parsing finishes successfully
* some queries (duration, seekable, latency)
* seeking with various values and flags
2016-02-04 14:20:16 -03:00
Thiago Santos
2bf87ad84c tests: dashdemux: add tests for snap flags seeking
Similar to HLS but DASH has the extra issue that it can have
multiple streams so snapping can be tricky as streams usually
won't be aligned.

For now, those tests handle the case of only having a single
stream.

https://bugzilla.gnome.org/show_bug.cgi?id=759158
2016-02-04 14:20:16 -03:00
Thiago Santos
f0ecdcefb3 tests: dashdemux: add test for updating stop position
Test that a seek that only updates the stop position works
as expected
2016-02-01 15:34:36 -03:00
Thiago Santos
cfcba7bc0f tests: dash: fix dash tests after index fix
8e788f2845 broke one of the
dash mpd tests. This updates and fixes it.
2016-02-01 14:36:48 -03:00
Tim-Philipp Müller
914291808a Remove gsettings plugin which was never ported
Don't think we need this any longer or want to
support it, and clearly no one has been missing
it all these years either, so let's just get rid
of it.
2016-01-31 19:07:46 +00:00
Florin Apostol
38d7434bab tests: adaptive-stremaing: fix memory leak in test_http_src
https://bugzilla.gnome.org/show_bug.cgi?id=760600
2016-01-18 13:09:45 +00:00
Thiago Santos
b7a0be23c6 adaptivedemux: replace ghostpad with a standard pad
Handling the ghostpad and its internal pad was causing more issues
than helping because of their coupled activation/deactivation
actions.

As we have to install custom chain,event and query functions it is
better to use a floating sink pad internally in the demuxer and just
use those pad functions to push through a standard pad in the demuxer

https://bugzilla.gnome.org/show_bug.cgi?id=757951
2016-01-15 11:32:37 -03:00
Matthew Waters
5437874596 gl: add a gstglquery object for arbitrary GL queries
Currently only GL_TIME_ELAPSED and GL_TIMESTAMP are supported
2016-01-15 13:21:56 +11:00
Thiago Santos
a4980a33a1 tests: hlsdemux: add test for updating segment stop
Add a test for seeking that only updates stop position and verifies
that start is unmodified
2016-01-07 15:46:01 -03:00
Matthew Waters
2aadd7eaf9 glcontext: implement checking whether a context has been shared
Some operations are unnecessary when running with only a single GL
context.
e.g. glFlush when setting a fence object as the flush happens on wait.

API: gst_gl_context_is_shared
2016-01-07 14:11:13 +11:00
Thiago Santos
fce10c44ae tests: dashdemux: add tests for post-seek segment boundaries check
Checks if the post seek segment is what is expected.

Also makes it easy to add more tests with different seeking flags using the
same functions.
2016-01-06 10:23:13 -03:00
Thiago Santos
eb56cfe201 tests: hlsdemux: add tests for seek with reverse rate and snap flags
Add tests to ensure snap flags work as expected for reverse
rates
2016-01-06 10:23:13 -03:00
Thiago Santos
be753b4951 tests: hls_demux: add tests for seeking segment
Tests that check that the segment sent after a seek is correct.

Allows testing that multiple seeking flags work as expected
2016-01-06 10:23:13 -03:00
Thiago Santos
aec407435d tests: adaptive_demux: add function to be able to check demuxer events
Allows writing tests that verify that events are correct.

Useful to monitor and check segments after seeks, for example.
2016-01-06 10:23:13 -03:00
Thiago Santos
5bc6769532 tests: adaptive: update to allow more flexible seeking tests
Allows defining a seek event to be able to change seeking parameters
and create more seeking test scenarios
2016-01-06 10:23:13 -03:00
Thiago Santos
2784ff6693 tests: hlsdemux: fix makefile variable typo 2016-01-06 10:23:13 -03:00
Sebastian Dröge
b53972a5cb player: Remove gst_player_new() and make gst_player_new_full() the normal constructor
In very few cases the simple version was actually needed and having the
parameters hidden by a _full() version caused application that actually needed
it to not use it.
2016-01-04 09:55:28 +02:00
Matthew Waters
05c5c27f1c tests/glmemory: output data pointer values on failure
Allows quicker inspection of what failed.
2015-12-30 12:16:29 +11:00
Tim-Philipp Müller
2adecc18e6 tests: fix indentation 2015-12-23 23:14:17 +00:00
Tim-Philipp Müller
c1494a558c tests: pcapparse: add check for 0-sized packets
https://bugzilla.gnome.org/show_bug.cgi?id=756573
2015-12-23 23:14:17 +00:00
Sebastian Dröge
2f86923cbd player: Add unit test that is disabled by default
The unit test is downloading a few small media files from the Internet,
which are then used during the test. "make clean" removes the files again.
2015-12-23 12:19:33 +01:00
Alex Ashley
ebf6de33d2 hlsdemux: tests: check URL joining if media URL contains a '/' character
If the query parameter (for example
http://example.net/1054559_1500k.mp4/master.m3u8?acl=/*1054559_1500k.mp4),
check that m3u8.c correctly converts the relative URLs of the media
playlists in to absolute URLs. It must not use the last '/' it finds in
the URL, as according to RFC3986 the '/' character is allowed in
the query part of the URL.

https://bugzilla.gnome.org/show_bug.cgi?id=758384
2015-12-22 11:15:32 -03:00
Alex Ashley
f6bff8f5f5 hlsdemux: unquote all the quoted-string attributes
The URI attribute from the EXT-X-KEY tag and the URI attribute from the
EXT-X-I-FRAMES-ONLY tag are both quoted-string attibutes that have their
quotation marks removed during parsing. The CODECS attribute of the
EXT-X-STREAM-INF is also a quoted-string attribute, but this attribute
was not being un-quoted.

This commit changes the parser to always unquote all quoted-string
attributes and adjusts the unit tests to this new bevahiour for the
CODECS attribute.

An additional test is added to check that parsing of all of the fields
in the EXT-X-STREAM tag is correct, including those that contain comma
characters.

https://bugzilla.gnome.org/show_bug.cgi?id=758384
2015-12-22 11:15:32 -03:00
Alex Ashley
eafdf5673a hlsdemux: tests: add unit tests for hlsdemux
Using the new GstAdaptiveDemux test framework, add tests that
exercise hlsdemux. The following tests are added:

simpleTest
A simple playlist that contains some media URLs

testMediaPlaylist
A master playlist with a variant playlist that contains media URLs

testMediaPlaylistNotFound
A master playlist that points to a missing variant playlist

testFragmentNotFound
A master playlist with a variant playlist that contains media URLs
There is a missing media file referenced from the variant playlist.

testFragmentDownloadError
A master playlist with a variant playlist that contains media URLs
During the download of one media file, the test simulates the network
connection being dropped.

testSeek
A simple test of trying to perform a seek on an HLS stream.
2015-12-22 11:15:32 -03:00
Alex Ashley
ae3ed25025 dashdemux: tests: Refactor into adaptive_engine components
To allow code from dash_demux.c to be used by other elements
that are based upon GstAdaptiveDemux, the code has been
refactored into four new files:

	adaptive_demux_engine.[ch]
	adaptive_demux_common.[ch]

The code in adaptive_demux_engine.c provides a generic
test engine for elements based upon GstAdaptiveDemux.

The code in adaptive_demux_common.c provides a set
of utility functions that are common between the tests
for hlsdemux and dashdemux.

As part of the refactoring, variables in structures were
renamed from using camelCase to underscore_case to match other
GStreamer source code.

The fake_http_src was renamed test_http_src and changed to use
callbacks to provide input data and error conditions. Rather than
using an array of input data that tries to encode all the
possible use cases for the GstTestHTTPSrc element, use a struct of
callbacks.

Users of this element are obliged to implement at least the src_start
callback, which provides a way to link from a URI to the settings
for that URI.
2015-12-22 11:15:32 -03:00
Sebastian Dröge
4a626d92d2 glcolorconvert: Fix name of testsuite 2015-12-21 12:19:11 +01:00
Matthew Waters
5dcd500257 gl*memory*: reverse the parameter order of user_data and destroy notify
The convention is to have the destroy notify last after any user data
2015-12-17 15:44:22 +11:00
Matthew Waters
779dc3132c glmemorypbo: remove our own alloc()/wrapped()/etc functions
replaced by equivalent functionality within gst_gl_base_memory_alloc()
2015-12-17 13:49:56 +11:00
Florin Apostol
b2e689890f dashdemux: improve validation of UTCtiming element
gst_mpdparser_parse_utctiming_node does not validate the parsed values completely. The following scenarios are incorrectly accepted:
- elements with no schemeIdUri property should be rejected
- elements with unrecognized UTCTiming scheme should be rejected
- elements with empty values should be rejected

The last one triggers a division by 0 in gst_dash_demux_poll_clock_drift:
clock_drift->selected_url = clock_drift->selected_url % g_strv_length (urls);
because it urls is a valid pointer to an empty array.

https://bugzilla.gnome.org/show_bug.cgi?id=759547
2015-12-16 17:19:50 +01:00
Matthew Waters
6519622eb0 tests: update for glmemory api changes 2015-12-14 18:41:30 +11:00