Commit graph

1146 commits

Author SHA1 Message Date
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
Matthew Waters
a07a350183 tests/glmemory: include the generic gl header
Including gstglmemory.h directly results in the compiler complaining
about incomplete types.
2015-12-14 18:15:42 +11:00
Matthew Waters
2b7495bbc1 glmemory: base classify and add the pbo memory on top
The base class is useful for having multiple backing memory types other
than the default.  e.g. IOSurface, EGLImage, dmabuf?

The PBO transfer logic is now inside GstGLMemoryPBO which uses GstGLBuffer
to manage the PBO memory.

This also moves the format utility functions into their own file.
2015-12-14 16:35:32 +11:00
Matthew Waters
3591c6bfa0 gluploadmeta; remove convenience helper API
It was not really useful as if one knows about libgstgl, one can just use
GLMemory objects directly.
2015-12-14 13:55:16 +11:00
Sebastian Dröge
a878d6e67e dash: Fix unit test after moving of framerates to RepresentationBaseType 2015-12-08 09:53:11 +02:00
Vivia Nikolaidou
978bcd7181 alevel: New audio/video level element
The videoframe-audiolevel element acts like a synchronized audio/video "level"
element. For each video frame, it posts a level-style message containing the
RMS value of the corresponding audio frames. This element needs both video and
audio to pass through it. Furthermore, it needs a queue after its video
source.

https://bugzilla.gnome.org/show_bug.cgi?id=748259
2015-12-02 12:52:57 +02:00
Alex Ashley
0745d567a7 hlsdemux: correct the calculation of seek range of non-live streams
The seek range calculation for on-demand streams was incorrectly
excluding the last three segments of the stream. This three segment
rule should only be applied to live streams [1].

[1] https://tools.ietf.org/html/draft-pantos-http-live-streaming-17#section-6.3.3

https://bugzilla.gnome.org/show_bug.cgi?id=758386
2015-12-02 10:16:25 +02:00
Tim-Philipp Müller
efe62292a3 hls: rename plugin from fragmented to hls 2015-12-01 17:51:34 +00:00
Hyunjun Ko
0fd6b5d331 tests:aggregator: fix tc failure and correct check value
Failure by this commit 2dfa548f36, which is
to append hooks instead of prepend.
Because of this change, aggretated_cb is not called and leads to failure.

And correct to check flush stop value instead of flush start value

https://bugzilla.gnome.org/show_bug.cgi?id=757801
2015-12-01 10:28:39 +02:00
Tim-Philipp Müller
a7475bfc6c tests: id3mux: add unit test for GST_TAG_PRIVATE_DATA writing
https://bugzilla.gnome.org/show_bug.cgi?id=758728
2015-11-27 12:44:57 +00:00
Florin Apostol
c6243c7d00 adaptivedemux: tests: disabled testFragmentDownloadError test
Until we will have support to control the generating thread from
fakeHTTPsrc element, the test testFragmentDownloadError is disabled.

https://bugzilla.gnome.org/show_bug.cgi?id=757776
2015-11-24 16:37:23 +00:00
Florin Apostol
665eb6fcca adaptivedemux: tests: corrected access to fakeHTTPsrc element
The src element for adaptivedemux is now a bin. Updated the tests to
correctly reach into the bin and get the fakeHTTPsrc element

https://bugzilla.gnome.org/show_bug.cgi?id=757776
2015-11-24 16:37:23 +00:00
Florin Apostol
7f3d47deb3 adaptivedemux: tests: made fakeHTTPsrc element MT safe
https://bugzilla.gnome.org/show_bug.cgi?id=757776
2015-11-24 16:37:23 +00:00
Florin Apostol
9a7bf5fbf1 mpdparser: remove gst_mpd_client_check_time_position
https://bugzilla.gnome.org/show_bug.cgi?id=758593
2015-11-24 10:01:58 -03:00
Florin Apostol
c681c33d10 mpdparser: tests: added test for fraction of seconds in availabilityStartTime
https://bugzilla.gnome.org/show_bug.cgi?id=758410
2015-11-23 11:54:37 -03:00
Florin Apostol
ef84f294c0 mpdparser: remove unused functions gst_mpdparser_get_chunk_by_index and gst_mpdparser_find_segment_by_index
https://bugzilla.gnome.org/show_bug.cgi?id=758233
2015-11-19 15:53:30 -03:00
Luis de Bethencourt
49ccb72b47 docs: update gst-launch-0.10 lines
Update references to gst-launch-0.10 to gst-launch-1.0
2015-11-19 17:25:01 +00:00
Sebastian Dröge
87b5ad0dfc mpdparser: Also allow '/' in RepresentationID
Used by http://www.bok.net/dash/tears_of_steel/cleartext/stream.mpd

https://bugzilla.gnome.org/show_bug.cgi?id=757903
2015-11-18 19:17:29 +02:00
Florin Apostol
b095026945 mpdparser: tests: added test for gst_mpd_client_get_last_fragment_timestamp_end
The timestamp for last fragment is incorrectly retrieved if segment templates
are used.

https://bugzilla.gnome.org/show_bug.cgi?id=758188
2015-11-18 09:50:26 +02:00
Tim-Philipp Müller
1491d02c4e adaptivedemux: remove now-defunct "num-lookback-fragments" property
This no longer does anything, and it was marked as CONSTRUCT_ONLY
which means someone would really have to go out of their way to
be able to set this, which would only be done in very custom
scenarios, if ever, and those will likely target a specific
version of GStreamer then, so probably not much point keeping
it deprecated for a while before removing it.
2015-11-14 20:28:34 +00:00
Vineeth TM
e940d8875d tests:glsl: version_profile_s string leak
https://bugzilla.gnome.org/show_bug.cgi?id=758039
2015-11-13 17:00:46 +11:00
Vineeth TM
a22f085eac tests:glupload: fix caps memory leak
https://bugzilla.gnome.org/show_bug.cgi?id=758039
2015-11-13 17:00:46 +11:00
Vineeth TM
5f8825e7d9 tests:glcolorconvert: Fix caps memory leak
Output caps being got from video info is not getting freed

https://bugzilla.gnome.org/show_bug.cgi?id=757929
2015-11-11 21:41:52 +11:00
Thiago Santos
8def19decb templatematch: add a framerate to test caps
The pad template requires a framerate, so use it to prevent
caps negotiation failures.

Fixes the unit test
2015-11-06 17:46:03 -03:00
Tim-Philipp Müller
fcf1845e39 tests: update .gitignore for new test binaries 2015-11-06 20:38:56 +00:00
Branko Subasic
4c482befbd rtponviftimestamp: use stream time for timestamp
The Onvif Streaming Specification specifies that the NTP timestamps
in the Onvif extension header indicaes the absolute UTC time associated
with the access unit. But by using running time we can not achieve that,
since a frame's running time depends on the played interval, whether a
non-flushing is done, etc. Instead we have to use the stream time.

https://bugzilla.gnome.org/show_bug.cgi?id=757688
2015-11-06 12:55:25 -05:00
Linus Svensson
6f6fe37ed9 rtponviftimestamp: Update ntp-offset and d/e-bits with a GstEvent
It is now possible to update the currently used ntp-offset with a
custom serialized downstream event. The element will read the ntp-offset
property when doing the state transition from READY to PAUSED and
use that offset until it receives a "GstNtpOffset" event, which also
has a "ntp-offset" attribute in that it's structure. In case the
property is not set and no event has been received, the element will
guess the npt-offset with help of the clock. If no clock can be
retrieved, the element will error out and stop the data flow.

The same event is also used for updating the D/E-bits in the RTP
extension header. The discont flag in a buffer can be set whenver a
live/network source looses a frame, but that is not the type of
discontinuity that the onvif extension header should reflect. The
header is mainly used for playback of a track concept, in which
gaps can be present, and it's those kind of gaps that should be
highlighted with the D- and E-bits.

https://bugzilla.gnome.org/show_bug.cgi?id=757688
2015-11-06 12:55:25 -05:00
Linus Svensson
a58826292e rtponviftimestamp: Do not rearange order of data
If a buffer or a buffer list is cached, no events serialized with the
data stream should get through. The cached buffers and events should
be purged when we stop flushing.

https://bugzilla.gnome.org/show_bug.cgi?id=757688
2015-11-06 12:55:25 -05:00
Branko Subasic
fd0ca0a972 rtponvif: split unit tests in several files
Split the unit tests for rtponviftimestamp and rtponvifparse
elements in separate files.
Setup and cleanup the element and pads in fixures. Make the tests work
with CK_FORK=no as well, by cleaning up the 'buffers' list when needed.
Make unit tests work when run in valgrind by unreffing all buffers,
and by not allocating any payload in RTP buffers. Since we're not
doing anything with the payload part, but we're memcmp-aring the
complete buffer memory, valgrind complained about non-initialized
memory being used.

https://bugzilla.gnome.org/show_bug.cgi?id=757688
2015-11-06 12:55:25 -05:00
Sebastian Dröge
0b9aea86f8 opus: Remove invalid unit test
Opus headers should never be in-band, so don't test for correct
handling of that.
2015-11-04 00:14:13 +02:00
Vincent Penquerc'h
2f8efd1ce3 tests: add a test for MPD file duration parsing
https://bugzilla.gnome.org/show_bug.cgi?id=752336
2015-11-02 11:36:12 +00:00
Vincent Penquerc'h
e48e68416c mpdparser: make durations unsigned where appropriate
The standard does not seem to make any particular explicit not
implicit reference to the signedness of durations, and the code
does not rely on such, nor on the negativity of the -1 value
that's used as a placeholder when a duration property is not
present in the XML.

https://bugzilla.gnome.org/show_bug.cgi?id=750847
2015-10-30 16:29:46 +00:00
Florin Apostol
d6e805a283 dashdemux: inherit bitstreamSwitching from Period to AdaptationSet
https://bugzilla.gnome.org/show_bug.cgi?id=752340
2015-10-30 15:58:36 +00:00
Florin Apostol
590df23cb1 dashdemux: unit testing reproducing inherited segment duration overflow
unit test reproducing https://bugzilla.gnome.org/show_bug.cgi?id=751832
2015-10-30 15:05:28 +00:00
Florin Apostol
013655d886 dashdemux: inherited segment URLs are ignored if they are defined again in a lower SegmentList
According to the standard:
"SegmentBase, SegmentTemplate and SegmentList shall inherit
attributes and elements from the same element on a higher level.
If the same attribute or element is present on both levels,
the one on the lower level shall take precedence over the one
on the higher level."

gst_mpdparser_parse_segment_list_node will now discard any inherited
segment URLs if the parsed element defines some too.

https://bugzilla.gnome.org/show_bug.cgi?id=751832
2015-10-30 14:31:21 +00:00
Florin Apostol
77f4776acb adaptivedemux: tests: added test for fragment download error
https://bugzilla.gnome.org/show_bug.cgi?id=757361
2015-10-30 13:28:09 +00:00
Florin Apostol
695ec674c6 adaptivedemux: tests: made adaptive demux test thread safe
https://bugzilla.gnome.org/show_bug.cgi?id=757361
2015-10-30 13:28:04 +00:00
Florin Apostol
7254747bbe adaptivedemux: tests: added query test
Testing if adaptive demux responds to queries.

https://bugzilla.gnome.org/show_bug.cgi?id=757361
2015-10-30 13:27:54 +00:00
Florin Apostol
dc04d3d261 dashdemux: tests: added test for multiple BaseURL entries
https://bugzilla.gnome.org/show_bug.cgi?id=757245
2015-10-30 13:00:53 +00:00
Florin Apostol
4632dbe3ae dashdemux: tests: added unit test for 6d1eda9391
Commit 6d1eda9391 fixed the period start
time scaling. This patch updates the unit tests to cover that scenario.

https://bugzilla.gnome.org/show_bug.cgi?id=755105
2015-10-30 12:57:54 +00:00
Florin Apostol
7aa81d78a7 adaptivedemux: tests: added download error test
Tests adaptive demux behaviour when the uri is wrong and download does
not happen.
2015-10-30 12:50:10 +00:00
Matthew Waters
8779144826 gl/tests: update for glmemory api changes 2015-10-30 15:00:23 +11:00
Matthew Waters
e61d504556 glmemory: add support for rectangle textures
Add the various tokens/strings for the differnet texture types (2D, rect, oes)

Changes the GLmemory api to include the GstGLTextureTarget in all relevant
functions.

Update the relevant caps/templates for 2D only textures.
2015-10-30 14:24:53 +11:00
Florin Apostol
78ce34b37f tests: fixed fake soup http src plugin
The soup http src changed the way it interprets the seek segment stop value.
Previously it was inclusive, now it is not (see commit
21c6da6764,
bug https://bugzilla.gnome.org/show_bug.cgi?id=748316)

Updated fake soup http src to also consider segment stop not inclusive.

https://bugzilla.gnome.org/show_bug.cgi?id=756322
2015-10-29 16:01:40 +00:00
Florin Apostol
0e1f5a0385 adaptivedemux: tests: added unit test for adaptivedemux
Created a unit test for dashdemux. It relies on a fake SOUP HTTP src plugin
that will feed data to dashdemux. The test controls the data to be
generated and checks the correct data was received for each expected
stream.

https://bugzilla.gnome.org/show_bug.cgi?id=756322
2015-10-29 16:01:34 +00:00
Alex Ashley
a38a9ba50d tests: added fake http src plugin
Added a fake http src plugin capable of generating data buffers for a
request of a http url. Can be used in tests to simulate http accesses.

https://bugzilla.gnome.org/show_bug.cgi?id=756322
2015-10-29 16:01:18 +00:00
Alex Ashley
c8ef39cac7 dashdemux: provide a default suggestedPresentationDelay
If MPD@suggestedPresentationDelay is not present in the manifest,
dashdemux selects the fragment closest to the most recently generated
fragment. This causes a playback issue because this choice does not allow
the DASH client to build up any buffer of downloaded fragments without
pausing playback. This is because by definition new fragments appear on
the server in real-time (e.g. if segment duration is 4 seconds, a new
fragment will appear on the server every 4 seconds). If the starting
playback position was n*segmentDuration seconds behind "now", the DASH
client could download up to 'n' fragments faster than realtime before it
reached the point where it needed to wait for fragments to appear on the
server.

The MPD@suggestedPresentationDelay attribute allows a content publisher
to provide a suggested starting position that is behind the current
"live" position.

If the MPD@suggestedPresentationDelay attribute is not present, provide
a suitable default value as a property of the dashdemux element. To
allow the default presentation delay to be specified either using
fragments or seconds, the property is a string that contains a number
and a unit (e.g. "10 seconds", "4 fragments", "2500ms").
2015-10-29 13:26:46 +00:00
Vincent Penquerc'h
7443f35249 dash_mpd: restrict segment template format strings to %0[0-9]*d as per spec
https://bugzilla.gnome.org/show_bug.cgi?id=751735
2015-10-29 12:04:31 +00:00
Florin Apostol
4eea6c3833 dashdemux: segment template parsing: added support for %d
Added support for %d in template identifier.
Added testcases for %d, %3d, %0-4d identifier formats.
2015-10-29 11:58:47 +00:00
Florin Apostol
933d367440 dashdemux: corrected parsing of segment templates
Corrected the parsing of a segment template string.
Added unit tests to test the segment template parsing.
All reported problems are now correctly handled.

https://bugzilla.gnome.org/show_bug.cgi?id=751735
2015-10-29 11:54:34 +00:00
Florin Apostol
566e84cec1 dashdemux: fixed crash when segment timeline list is greater than segment url list
When building the media segment list using a SegmentList node, the
gst_mpd_client_setup_representation function will iterate through the
list of S nodes and will expect to find a matching SegmentUrl node. If
one does not exist, the code made an illegal memory access.

https://bugzilla.gnome.org/show_bug.cgi?id=752496
2015-10-29 10:20:45 +00:00
Florin Apostol
84ff565c88 dashdemux: unit test for missing profiles 2015-10-29 10:20:45 +00:00
Florin Apostol
cdfec06092 dashdemux: parser rejects negative values for mediaPresentationDuration
https://bugzilla.gnome.org/show_bug.cgi?id=752326
2015-10-29 10:20:45 +00:00
Florin Apostol
7c2746f741 dashdemux: corrected parsing of negative values into unsigned data
https://bugzilla.gnome.org/show_bug.cgi?id=752429
2015-10-29 10:20:45 +00:00
Florin Apostol
c763d1e8fd dashdemux: parser rejects XMLs with negative period duration
https://bugzilla.gnome.org/show_bug.cgi?id=752329
2015-10-28 15:41:17 +00:00
Vincent Penquerc'h
60133b1472 mpdparser: check segment lists have either duration or timeline
And add error checking along the way.

Add duration where appropriate so unit tests still pass.

https://bugzilla.gnome.org/show_bug.cgi?id=751650
2015-10-28 15:34:29 +00:00
Vincent Penquerc'h
b8df6cc316 mpdparser: validate representation set identifier
It must have no whitespace, and must comply with RFC 1738 when
used to build a URL.

https://bugzilla.gnome.org/show_bug.cgi?id=750852
2015-10-28 15:11:50 +00:00
Tim-Philipp Müller
41ca1e48a0 tests: hlsdemux_m3u: add test for master playlist with missing variant list uri
https://bugzilla.gnome.org/show_bug.cgi?id=756861
2015-10-25 09:26:46 +00:00
Sebastian Dröge
f7f208de70 mxf: Add unit tests for H264/PCM 2015-10-21 19:54:15 +03:00
Sebastian Dröge
4624cae7c8 mxf: Properly enable unit tests again 2015-10-21 19:54:15 +03:00
Matthew Waters
924f2ca986 gl/tests: port glcontext test to opengl
Now uses vao's and vbo's when possible like the rest of the gstgl library.
2015-10-15 22:42:26 +11:00
Matthew Waters
b25807c382 glshader: port to using GstGLSLStage objects for string management
A GstGLShader is now simply a collection of stages that are
compiled and linked together into a program.  The uniform/attribute
interface has remained the same.
2015-10-15 21:27:57 +11:00
Matthew Waters
2e8642cc4c gl: add some GLSL utility functions
Specifically parsing/setting GLSL versions and the shader related
function table.
2015-10-15 21:27:57 +11:00
Florin Apostol
ebf2a00926 dashdemux: test: added unit test for presentation time offset
https://bugzilla.gnome.org/show_bug.cgi?id=752409
2015-10-02 17:09:50 +03:00
Jan Schmidt
aeed184d97 Remove baseaudiovisualizer test.
The base class has moved into gst-plugins-base
2015-10-02 14:56:41 +10:00
Vineeth TM
7c09277cd7 audiointerleave: typecast bit-mask to guint64 to fix segmentation fault
While creating caps in audiointerleave tests, bitmask is being set as 0x9
This is resulting in segmentation fault. Fix the same by typecasting to guint64

https://bugzilla.gnome.org/show_bug.cgi?id=755840
2015-09-30 09:00:52 +01:00
Matthew Waters
49e6516550 glupload: remove useless release_buffer
It's a leftover from when we weren't outputting GstBuffer's and
returning raw texture id's.
2015-09-30 13:36:09 +10:00
Nirbheek Chauhan
7baa2736d9 check: Add test for videoaggregator sinkpads being sorted by zorder
https://bugzilla.gnome.org/show_bug.cgi?id=754285
2015-09-26 10:31:17 +01:00
Sebastian Dröge
8169ee8372 dash: Fix unit test after internal API change 2015-09-26 10:50:19 +02:00
Sebastian Dröge
93d85bd361 dashdemux: Implement lazy-loading of external periods
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
572e54574b mpdparser: Store an URI downloader in the parser for downloading additional MPD resources if needed
https://bugzilla.gnome.org/show_bug.cgi?id=752230
2015-09-25 23:52:28 +02:00
Sebastian Dröge
c9f60db2d4 mpdparser: Don't consider period start times in periods with segment lists either
https://bugzilla.gnome.org/show_bug.cgi?id=754222
2015-09-14 19:53:18 +02:00
Sebastian Dröge
d9c45e918f mpdparser: Fix unit test that assumed that fragment timestamps should include the period start timestamp
https://bugzilla.gnome.org/show_bug.cgi?id=754222
2015-09-14 19:53:18 +02:00
Nirbheek Chauhan
cf786a9399 compositor: Ensure all arguments to CLAMP are signed int
If any of the arguments to CLAMP are unsigned integers, the comparison causes
an automatic conversion of the signed int to unsigned, which causes -1 to become
UINT_MAX and get clamped to the high value of the CLAMP instead of 0.

See 716 at http://c0x.coding-guidelines.com/6.3.1.8.html

Also add a test for this.

https://bugzilla.gnome.org/show_bug.cgi?id=754576
2015-09-04 23:32:36 +02:00
Nirbheek Chauhan
9b59bb8630 compositor: Actually use the output resolution for clamping
The obscured check in compositor was using the dimensions of the pad to clamp
the h/w of the pad instead of the output resolution, and was doing an incorrect
calculation to do so. Fix that by simplifying the whole calculation by using
corner coordinates. Also add a test for this bug which fell through the cracks,
and just skip all the obscured tests if the pad's alpha is 0.0.

https://bugzilla.gnome.org/show_bug.cgi?id=754107
2015-08-26 15:03:05 +03:00
hoonhee.lee
04b006cd12 tests: audiomixer: remove duplicated word in comment
https://bugzilla.gnome.org/show_bug.cgi?id=753915
2015-08-21 11:12:04 +03:00
Alex Ashley
48fefd8c84 check: hlsdemux: make duration unit test robust to floating point rounding
The test_playlist_with_doubles_duration() test fails on some platforms
due to rounding errors that occur when m3u8.c converts from the floating
point value in the HLS manifest to a GstClockTime.

Using assert_equals_float() fixes this because this function handles
the rounding error issues by accepting almost equal.

https://bugzilla.gnome.org/show_bug.cgi?id=753881
2015-08-20 17:13:48 +03:00
Sebastian Dröge
551e7b97f3 dashdemux: Handle encoding specified in the <xml> element when dumping nodes
Previous patch did not handle the case where an encoding (e.g. UTF-8) is
specified in the <xml ?> element. Added an extra test for with and without
encoding.

https://bugzilla.gnome.org/show_bug.cgi?id=753813
2015-08-19 21:33:47 +03:00
Alex Ashley
2ebebdbfbb dashdemux: replace xmlNodeDump with xmlNodeDumpOutput
When running on an STB, the function
gst_mpdparser_get_xml_node_as_string causes a segmentation fault. This
code works correctly on a Linux desktop.

Looking at the libxml documentation, the xmlNodeDump is deprecated.
Replacing the use of xmlNodeDump with xmlNodeDumpOutput fixes the
segfault on the STB and removes the use of the deprecated function.
2015-08-19 16:30:58 +03:00
Edward Hervey
c5a2936c6d check: Link against GModule for tests using g_module_* 2015-08-15 23:36:01 +02:00
Edward Hervey
c90f6b990b checks: Ensure thread-safe libX11/GL when running tests 2015-08-15 19:04:42 +02:00
Alex Ashley
95c705ae8f dashdemux: add support for UTCTiming elements for clock drift compensation
Unless the DASH client can compensate for the difference between its
clock and the clock used by the server, the client might request
fragments that either not yet on the server or fragments that have
already been expired from the server. This is an issue because these
requests can propagate all the way back to the origin

ISO/IEC 23009-1:2014/Amd 1 [PDAM1] defines a new UTCTiming element to allow
a DASH client to track the clock used by the server generating the
DASH stream. Multiple UTCTiming elements might be present, to indicate
support for multiple methods of UTC time gathering. Each element can
contain a white space separated list of URLs that can be contacted
to discover the UTC time from the server's perspective.

This commit provides parsing of UTCTiming elements, unit tests of this
parsing and a function to poll a time server. This function
supports the following methods:
    urn:mpeg:dash:utc:ntp:2014
    urn:mpeg:dash:utc:http-xsdate:2014
    urn:mpeg:dash:utc:http-iso:2014
    urn:mpeg:dash:utc:http-ntp:2014

The manifest update task is used to poll the clock time server,
to save having to create a new thread.

When choosing the starting fragment number and when waiting for a
fragment to become available, the difference between the server's idea
of UTC and the client's idea of UTC is taken into account. For example,
if the server's time is behind the client's idea of UTC, we wait for
longer before requesting a fragment

[PDAM1]: http://www.iso.org/iso/home/store/catalogue_tc/catalogue_detail.htm?csnumber=66068

dashdemux: support NTP time servers in UTCTiming elements

Use the gst_ntp_clock to support the use of an NTP server.

https://bugzilla.gnome.org/show_bug.cgi?id=752413
2015-08-14 06:47:20 -03:00
Edward Hervey
a7444ad850 check: Rename states unit test
Makes it easier to differentiate from other modules states unit test
2015-08-14 11:13:59 +02:00
Matthew Waters
4fd7b2408e tests/glcontext: fix INVALID_ENUM GL error in test 2015-08-08 15:32:17 +02:00
Thiago Santos
9d431e605f tests: dash_mpd: add check for segmenttemplate inheritance
Checks if the values are properly inherited and overwriten
2015-08-01 16:11:07 -03:00
Thiago Santos
9c291904f5 tests: dash_mpd: add one more baseURL test
This other type of baseURL test was replaced by a more complex one,
better have both to keep both options working

Also adds another 2 variations of how baseURL can be generated

https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 16:11:01 -03:00
Florin Apostol
6ce65709bd dashdemux: tests: added duration format test
https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 16:10:55 -03:00
Florin Apostol
86c12c7357 dashdemux: tests: update unit test for baseURL
Update the unit test for baseURL to test that it is properly
resolved taking into account parent baseURL elements.

https://bugzilla.gnome.org/show_bug.cgi?id=752776
2015-08-01 11:52:26 -03:00
Olivier Crête
035e51b010 tests: Add test for seeking live pipelines
https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
1cb49c429b tests: Make source live to re-enable aggregator timeout tests
The live mode is only enabled if one of the sources if live.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Olivier Crête
ce6206388c tests: Add audiointerleave test to show that queuing works
This tests fails without the queuing patch because incoming buffers are
not delivered before they are needed.

https://bugzilla.gnome.org/show_bug.cgi?id=745768
2015-07-30 14:00:05 -04:00
Sebastian Dröge
b88d93ff7b compositor: Add unit tests for the new aggregator start-time-selection property
https://bugzilla.gnome.org/show_bug.cgi?id=749966
2015-07-29 14:35:50 +01:00
Nicolas Dufresne
47e436916d glcolorconvert-test: Test notify function for setup_wrapped
gst_gl_memory_setup_wrapped() now takes a destroy notify function. This
destroy notify is called to track the memory life time, hence will
notify each time a memory get destroyed. This test check that the
callback count is correct.
2015-07-28 11:20:40 -04:00
Nicolas Dufresne
3d9d4869f4 glcolorconvert-test: Fix build 2015-07-28 11:06:43 -04:00
Nirbheek Chauhan
ad8cb458ba audioaggregator: Sync pad values before aggregating
We need to sync the pad values before taking the aggregator and pad locks
otherwise the element will just deadlock if there's any property changes
scheduled using GstController since that involves taking the aggregator and pad
locks.

Also add a test for this.

https://bugzilla.gnome.org/show_bug.cgi?id=749574
2015-07-22 19:50:38 +01:00
Matthew Waters
d5996de5d7 glcontext: fix get_current_gl_api on x11/nvidia drivers
They require to get_proc_address some functions through the
platform specific {glX,egl}GetProcAddress rather than the default
GL library symbol lookup.
2015-07-18 18:18:22 +10:00
Matthew Waters
be9ad5eeb2 glcontext: track sharedness with a cookie
The previous approach of traversing the other_context weak ref tree was
1. Less performant
2. Incorrect for context destruction removing a link in the tree

Example of 2:
c1 = context_create (NULL)
c2 = context_create (c1)
c3 = context_create (c2)
context_can_share (c1, c3) == TRUE
context_destroy (c2)
unref (c2)
context_can_share (c1, c3) returns FALSE when it should be TRUE!

This does not remove the restriction that context sharedness can only
be tracked between GstGLContext's.
2015-07-18 15:34:55 +10:00
Matthew Waters
abde710f42 gtk: add to the generic/states test 2015-07-09 16:40:19 +10:00
Sebastian Dröge
cd47556351 mpdparser: Fix some memory leaks in the MPD parser and unit test 2015-07-08 23:15:14 +03:00
Florin Apostol
d525d9c391 dashdemux: tests: added unit tests to test all functions
Added unit tests for all functions. Code coverage:
Overall coverage rate:
  lines......: 83.8% (1941 of 2316 lines)
  functions..: 100.0% (141 of 141 functions)
2015-07-08 23:15:14 +03:00
Florin Apostol
57042af9d6 dashdemux: tests: added indentation in xml strings to improve readability
https://bugzilla.gnome.org/show_bug.cgi?id=752027
2015-07-07 14:13:53 +03:00
Florin Apostol
397fa37093 dashdemux: tests: corrected code layout
deleted the empty line between gst_mpd_parse call and its check so that
the assert is next to the function it is testing

https://bugzilla.gnome.org/show_bug.cgi?id=752027
2015-07-07 14:01:03 +03:00
Stian Selnes
158f8d5b68 tests: pcapparse: add unit test for frames with eth padding
https://bugzilla.gnome.org/show_bug.cgi?id=751879
2015-07-03 10:28:34 +01:00
Florin Apostol
e2d1126391 dashdemux: corrected recognition of $$$ in segment templates
fixed recognition of $$ after a $ that ends an identifier, eg $Time$$$

https://bugzilla.gnome.org/show_bug.cgi?id=751682
2015-06-29 19:28:56 -03:00
Florin Apostol
87a4d523b9 tests: dashdemux: renamed functions
Renamed 2 testcase functions:
- dash_mpdparser_program_information
- dash_mpdparser_base_URL
2015-06-25 10:13:23 +02:00
Florin Apostol
b8cb37f04d tests: dashdemux: added explicit type conversions
flexelint (http://www.gimpel.com/html/flex.htm) static code analyser
complained about implicit conversions from unsigned to signed, so I added
explicit conversions.

Ideally, the size parameter of gst_mpd_parse function should be unsigned,
but I don't want to change the API.
2015-06-24 12:22:44 +02:00
Florin Apostol
d02f9d30af tests: dashdemux: corrected return type for duration_to_ms function
The duration_to_ms function converts a time specified by year, month, day,
hour, minute, second, millisecond to a millisecond value. Because all the
arguments are positive numbers, the result must also be positive.

This patch changes the returned value from a gint64 to a guint64 type.
2015-06-24 12:22:33 +02:00
Florin Apostol
d310a1edcf tests: dashdemux: added parsing of period element
Improved dash_mpd unit tests by adding new tests that parse the Period element.

Code coverage reported by lcov for dash/gstmpdparser.c is:
  lines......: 43.0% (985 of 2290 lines)
  functions..: 47.5% (67 of 141 functions)
2015-06-22 18:22:57 +02:00
Florin Apostol
05198e2df1 tests: dashdemux: extended MPD element test to test xml namespaces
Extended the dash_mpdparser_mpd testcase to also test parsing the xml
namespace attribute.

https://bugzilla.gnome.org/show_bug.cgi?id=750863
2015-06-22 13:55:46 +02:00
Florin Apostol
8336d7a60b dashdemux: corrected computation of period's duration
According to ISO/IEC 23009-1:2014(E), chapter 5.3.2.1
"The Period extends until the PeriodStart of the next Period, or until
the end of the Media Presentation in the case of the last Period."

This means that a configured value for optional attribute period duration
should be ignored if the next period contains a start attribute or it is
the last period and the MPD contains a mediaPresentationDuration attribute.

https://bugzilla.gnome.org/show_bug.cgi?id=750797
2015-06-22 13:47:54 +02:00
Florin Apostol
9f56cc27ab dashdemux: fixed getting representation based on max bandwidth
The gst_mpdparser_get_rep_idx_with_max_bandwidth function assumes
representations are ordered by bandwidth and incorrectly returns the
first one when wanting the one with minimum bandwidth.

Corrected gst_mpdparser_get_rep_idx_with_max_bandwidth function to get the
correct representation in case max_bandwidth parameter is 0.

https://bugzilla.gnome.org/show_bug.cgi?id=751153
2015-06-18 11:29:45 -03:00
Florin Apostol
b23e4452a2 dashdemux: fixed segfault for missing default namespace
Added a check for a_node->ns before accessing a_node->ns->href in
gst_mpdparser_get_xml_node_namespace. This could happen if the xml
is missing the default namespace.

https://bugzilla.gnome.org/show_bug.cgi?id=750866
2015-06-12 22:45:51 +02:00
Nirbheek Chauhan
220a133479 tests: Add test for the 'ignore-eos' compositor sink pad property
When the 'ignore-eos' property is set on a pad, compositor will keep resending
the last buffer on the pad till the pad is unlinked. We count the buffers
received on appsink, and if it's more than the buffers sent by videotestsrc, the
test passes.
2015-06-12 19:45:41 +01:00
Matthew Waters
97dfc5f5a6 gl/tests: remove reference to undefined buffer test 2015-06-12 21:31:48 +10:00
Matthew Waters
c3a47c910d glmemory: separate pbo transfer from texture transfers
When supported, the potentially longer pbo upload/download can be
initiated before the texture upload/download, potentially increasing
throughput.
2015-06-12 16:59:20 +10:00
Matthew Waters
7d8d1f8206 glmemory: implement on top of glbasebuffer
Provides convenient access to PBO usage.

Currently texture updates are coupled tightly to data transfers.
2015-06-12 16:59:20 +10:00
Matthew Waters
23fb666dd7 Implement gtk sinks
two sinks are provided.  gtksink which is a cairo/software based renderer
and gtkglsink which utilises the GL support in gtk and gstreamer.
2015-06-11 22:01:03 +10:00
Florin Apostol
8b18be5bfb tests: dashdemux: add unit tests for checking the parsing of MPD element
Create a dash test target and add unit tests that check the parsing of
attributes of the MPD element and the following child elements:
 - baseURL
 - program information
 - location
 - metrics

These tests check the compliance of parts of the MPD parser in the
dashdemux element against the DASH specification [1].

    [1] http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014_Electronic_inserts.zip
        http://standards.iso.org/ittf/PubliclyAvailableStandards/c065274_ISO_IEC_23009-1_2014.zip

https://bugzilla.gnome.org/show_bug.cgi?id=750390
2015-06-08 13:17:49 -03:00
Stefan Sauer
4243db850c zbar: split test
Lets not cram everything into a single test - this would render the test name
useless for quick diagnosis. Having separate tests for the optional feature is
also verifying the behaviour when the feature is off.
2015-06-07 16:27:13 +02:00
Thiago Santos
045bfa10fe Fix a common typo: retreive -> retrieve
Seems to have been copy pasted around a few places
2015-06-05 09:43:35 -03:00
Olivier Crête
06d9b61fc2 tests: audiointerleave: test not setting positions
Disable "channel-positions-from-input", but without actually giving
a position table, so every position should be NONE
2015-06-02 15:45:13 -04:00
Olivier Crête
8dcb1c6df6 tests: Fix indentation in audiointerleave test 2015-06-02 15:44:57 -04:00
Edward Hervey
e899abea14 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:04:40 +02:00
Reynaldo H. Verdejo Pinochet
8f2b65c74d tests: zbar: check for frame field on attach-frame=true
Also check for the sample to have a buffer and caps
associated with it.

Related to:

https://bugzilla.gnome.org/show_bug.cgi?id=747557
2015-06-01 12:33:41 -03:00
Matthew Waters
904cdf3f58 tests/gl: fix typo 2015-05-14 18:35:35 +10:00
Matthew Waters
0870e8785e gl: remove useless gl{En,Dis}able (GL_TEXTURE_*) calls
We are using shaders everywhere and so they are not needed
2015-05-14 16:42:09 +10:00
Matthew Waters
c519169052 compositor: fix rectangle obscure test to clamp against the output frame size
Rather than one of the input pad video info's.

The test checking this was not constraining the output frame size
to ensure that the out of frame stream was not being displayed.
2015-05-13 17:44:30 +10:00
Nirbheek Chauhan
105a5cce92 tests: Add a check for the new compositor pad-is-obscured optimization
We verify that all the buffers on an obscured sinkpad are skipped by overriding
the map() function in the GstVideoMeta of the buffers to set a variable when
called. We also test that the buffers do get mapped when they're not obscured.

Blame^WCredit for the GstVideoMeta map() idea goes to Tim.

https://bugzilla.gnome.org/show_bug.cgi?id=746147
2015-05-01 11:57:00 +01:00
Thiago Santos
dd2dba632e tests: camerabin: add tests for GstPhotography image capture
GstPhotography enables new paths in wrappercamerabinsrc that allows
the source to be notified about the capture caps and provide an
alternative caps if desired bypassing the negotiation (this doesn't
seem like a good idea these days). To make sure it keeps working
until we remove it from the API in favor of standard caps negotiation
features this test was added.

It adds 3 extra tests with a simple test source that will:
1) Test that capturing with ANY caps work
2) Test that capturing with a fixed caps work
3) Test that capturing with a fixed caps and having the source
   pick a different resolution from GstPhotography API works
   by having wrappercamerabinsrc crop the capture to the final
   requested dimensions
2015-04-24 15:12:47 -03:00
Thiago Santos
de5f0dd221 camerabin: tests: remove unused macros
Those macros were with the wrong name (likely a copy n paste mistake)
and were unused.
2015-04-24 15:12:46 -03:00
Thiago Santos
7774126c5d tests: camerabin: remove obsolete check for 0.10 feature 2015-04-24 15:12:46 -03:00
Tim-Philipp Müller
179444efad tests: define GST_CHECK_TEST_ENVIRONMENT_BEACON
Make sure the test environment is set up.

https://bugzilla.gnome.org//show_bug.cgi?id=747624
2015-04-23 16:40:49 +01:00
Thiago Santos
87e306fe4a tests: camerabin: add test for capture with different caps
Adds a test to verify that viewfinder and image capture caps
can be set to non-intersecting caps and still work.

https://bugzilla.gnome.org/show_bug.cgi?id=724868
2015-04-21 10:00:44 -03:00
Vincent Penquerc'h
d8dd4bea00 tests: fix type mismatch in varargs passing
A bitmask is 64 bits, but integer immediates are passed as int
in varargs, which happen to be 32 bit with high probability.

This triggered a valgrind jump-relies-on-uninitalized-value
report well away from the site, since it doesn't trigger on
stack accesses, and there must have been enough zeroes to stop
g_object_set at the right place.
2015-04-09 16:20:44 +01:00
Edward Hervey
fe9a87d563 check: Don't run the state change test on the dtls elements
There isn't really any way to test the elements standalone.
2015-04-09 15:41:57 +02:00
Edward Hervey
fdae6af7de tests: Use AM_TESTS_ENVIRONMENT
Needed by the new automake test runner
2015-04-08 16:46:11 +02:00
Reynaldo H. Verdejo Pinochet
b31f3a88e4 aggregator: fix typo in test suite 2015-04-03 18:17:35 -03:00
Reynaldo H. Verdejo Pinochet
b24971f2dd aggregator: add gap event handling unit test
https://bugzilla.gnome.org/show_bug.cgi?id=746249
2015-04-03 18:17:35 -03:00
Olivier Crête
34a921c31b audiomixer: Allow downstream caps with a non-default channel-mask
Instead of failing, take the downstream channel mask if the channel
count is 1.
2015-04-01 20:32:41 -04:00
Olivier Crête
84eff5cca9 audiointerleave: Add unit tests
Almost a copy of the "interleave" unit tests, improved to support
the thread on the src pad on GstAggregator.

https://bugzilla.gnome.org/show_bug.cgi?id=740236
2015-03-16 16:44:03 -04:00
Tim-Philipp Müller
ec6e93d45f tests: mpegtsmux: add test for keyframe/delta flag propagation
The first output MPEG-TS packet that corresponds to a video input
buffer which had the delta flag cleared (i.e. was a keyframe)
should have the delta flag cleared as well.

This is needed e.g. by tcpserversink in order to keep track
of the last keyframe and be able to burst data to newly-
connected clients.

https://bugzilla.gnome.org/show_bug.cgi?id=706872
2015-03-15 15:54:01 +00:00
Tim-Philipp Müller
ab52bfbfa6 tests: mpegtsmux: add unit test for "alignment" property
https://bugzilla.gnome.org/show_bug.cgi?id=722129
2015-03-15 12:07:53 +00:00
Matthew Waters
e5debcaff4 gl/tests: fix deadlock on glcontext wrapped context test 2015-03-13 12:30:20 +00:00
hoonhee.lee
3beb48162f tests: glcontext: remove unnecessary semicolon
https://bugzilla.gnome.org/show_bug.cgi?id=745875
2015-03-09 08:41:25 +01:00
Nicolas Dufresne
56d4ff8773 gl-test: Port unit tests to new API 2015-03-01 00:08:42 -05:00
Luis de Bethencourt
b383ae0fbd jpegparse: interlaced doesn't mean progressive scan
Removing interlaced variable since it is meant to mean progressive scan
and that isn't used.
2015-02-24 18:50:28 +00:00
Luis de Bethencourt
e45db8ca1e Revert "tests: check jpegparse for progressive marker"
This reverts commit 1c77d12ce8.

"interlaced" in the caps don't mean the same thing as the SOF2 marker in the
JPEG format. This test passes because of broken behaviour.
2015-02-24 18:38:31 +00:00
Luis de Bethencourt
1c77d12ce8 tests: check jpegparse for progressive marker 2015-02-24 17:42:15 +00:00
Alex Ashley
a08dd85608 hlsdemux: select correct starting position for live streams
When playing live HLS streams, the media playback starts from the
beginning of the media playlist. When playing a live HLS stream,
media playback should start from 3 fragments from the end of the
playlist.

See section 6.3.3. of the HLS draft [1]

This commit changes the logic to select 3 fragments from the end when
playing a live stream.

[1] http://tools.ietf.org/html/draft-pantos-http-live-streaming-12#page-29

https://bugzilla.gnome.org/show_bug.cgi?id=727742
2015-02-20 19:00:01 -03:00
Tim-Philipp Müller
3c2ee8ece5 aggregator: use new gst_aggregator_pad_drop_buffer() 2015-02-13 16:25:45 +00:00
Tim-Philipp Müller
9c21327a8d tests: remove GST_DISABLE_PARSE guards from two tests that don't require it 2015-02-13 16:25:14 +00:00
Tim-Philipp Müller
337bff3c82 tests: compositor: add unit test for proper segment.base handling
As adjusted by gst_pad_set_offset(), or when doing segment seeks
or looping for example.
2015-02-05 15:48:41 +00:00
Tim-Philipp Müller
689f627412 tests: audiomixer: add unit test for proper segment.base handling
As adjusted by gst_pad_set_offset(), or when doing segment seeks
or looping for example. See previous audiomixer commit.
2015-02-05 15:23:04 +00:00
Matthew Waters
438b83c9fc gl: update unit test for glmemory api change 2015-01-30 18:51:17 +11:00
Thibault Saunier
d8eef43123 aggregator: Hide GstAggregatorPad buffer and EOS fileds
And add a getter for the EOS.

The user should always use the various getters to access
those fields

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
fb6ba27ae5 audiomixer: Make flush start/stop test non-racy
The flush stop could have happened between the source trying
to push the segment event and the buffer, this would cause a warning.
Prevent that by taking the source's stream lock while flushing.

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
f98e457f99 audiomixer: Replace racy timeout based tested with drain query
Using the drain query, we can be certain that the buffer has done going
through the aggregator by taking the stream locks.

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Olivier Crête
94e2d78479 audiomixer: Avoid race in caps negotiation
With the current audiomixer, the input caps need to be the same,
otherwise there is an unavoidable race in the caps negotiation. So
enforce that using capsfilters

https://bugzilla.gnome.org/show_bug.cgi?id=742684
2015-01-29 10:24:18 +01:00
Matthew Waters
75b808d072 gl/tests: update glwindow api change 2015-01-23 17:27:42 +11:00
Matthew Waters
d5c3693791 gl: split glcolorconvert usage from glupload
the separation allows the transfer operation to occur in a separate
thread/time which may increase performance in specific circumstances.
2015-01-14 22:22:13 +11:00
Matthew Waters
4c73e20553 glcontext: allow wrapped contexts to be utilised like non-wrapped contexts
Fill in the missing pieces like get_proc_address, the gl function vtable
2015-01-13 15:18:41 +11:00
Stefan Sauer
4732962c85 gitignore: ignore more files 2015-01-12 22:52:36 +01:00
Mark Nauwelaerts
824f6a3f48 tests: nodist for orc generated code 2015-01-02 14:32:54 +01:00
Tim-Philipp Müller
ad25461dac tests: gdpdepay: update for internal gdp refactoring
This test uses some internal/private API, so needs to
be updated for recent changes.
2014-12-26 13:44:35 +00:00
Tim-Philipp Müller
c184a4bb04 gdppay: refactor a little
Get rid of now-useless packetizer struct and just
call internal functions directly. Also remove
version property which is now defunct, not least
because we create the packetizer with the
version in the init function before a version
can be set.
2014-12-26 13:44:32 +00:00
Tim-Philipp Müller
3e74746d72 tests: gdppay: initialise memory of buffers used in unit test 2014-12-26 13:44:32 +00:00
Sebastian Dröge
7c575af6df audiomixer: Change blocksize property to output-buffer-duration in time format
This makes the interface of audiomixer independent of the actual caps.
2014-12-23 11:45:50 +01:00
Nicolas Dufresne
046639ddaa gltest: Port to new API
https://bugzilla.gnome.org/show_bug.cgi?id=740900
2014-12-19 13:19:34 -05:00
Sebastian Dröge
d4c4af699e aggregator: Add a timeout parameter to ::aggregate()
When this is TRUE, we really have to produce output. This happens
in live mixing mode when we have to output something for the current
time, no matter if we have enough input or not.
2014-12-17 18:41:41 +01:00
Sebastian Dröge
e82ec36863 audiomixer: Add queues after the (live) sources in the unit test 2014-12-17 18:41:41 +01:00
Tim-Philipp Müller
9d79b65a55 tests: fix aggregator unit test after property renaming 2014-12-16 19:49:56 +00:00
Sebastian Rasmussen
01dc7edd8b tests/aggregator: Use correct type when setting property
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=741495
2014-12-14 11:29:19 +01:00
Olivier Crête
8cddfe6477 rtponviftimestamp: Automatically discover the ntp-offset by default.
This only works if no packets are pushed in before the pipeline goes
to playing. So it helps to have a live source.

https://bugzilla.gnome.org/show_bug.cgi?id=731769
2014-12-11 16:28:43 -05:00
Guillaume Desmottes
189005184c add rtponvifextract element
https://bugzilla.gnome.org/show_bug.cgi?id=731769
2014-12-11 14:00:59 -05:00
Guillaume Desmottes
b424b72df1 add rtponviftimestamp element
https://bugzilla.gnome.org/show_bug.cgi?id=731769
2014-12-11 14:00:59 -05:00
Julien Isorce
91efa58371 tests: add glimagesink unit test to .gitignore 2014-12-03 07:46:50 +00:00
Matthew Waters
810d38c29f glupload: rearchitecture for non GLMemory inputs/outputs
Allows other memory types to be implemented/returned/used by the caller.
2014-11-23 17:13:36 +11:00
Julien Isorce
92796446a2 tests: add CFLAGS and LADD for glimagesink unit test
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732694
2014-11-12 12:33:11 +01:00
Julien Isorce
7bb1ea7094 gl: add unit test that checks for glimagesink drain query handling
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=732694
2014-11-12 00:09:21 +00:00
Sebastian Dröge
67bc805a8d tests: Add x265enc unit test to .gitignore 2014-11-10 16:01:25 +01:00
Matthew Waters
81ceca1aea glcontext: add api for retreiving the current context and api
that is current in the calling thread.
2014-10-28 17:33:20 +11:00
Tim-Philipp Müller
6df60cfb6a tests: fix audiomixer test on big endian systems 2014-10-25 21:09:30 +01:00
Aurélien Zanelli
81c5fd3c1e vc1parser: fix expected level in sequence-layer parsing unit test
Sequence-layer used for unit test have a level set to 2 which should
match the medium level, not the high.

https://bugzilla.gnome.org/show_bug.cgi?id=738230
2014-10-20 12:40:54 +02:00
Thijs Vermeir
fb9248b8ea tests/x265enc: add simple unit test 2014-10-15 17:11:47 +02:00
Aurélien Zanelli
a1ed734076 test: use G_GSIZE_FORMAT in audiomixer test
https://bugzilla.gnome.org/show_bug.cgi?id=738227
2014-10-09 16:20:07 +03:00
Matthew Waters
fa90c07ff2 tests/aggregator: add timeout handling test for the timeout parameter 2014-10-09 23:52:11 +11:00
Sebastian Dröge
341b336e71 hlsdemux: Fix M3U8 parsing unit test after API changes 2014-10-07 15:24:10 +03:00
Thibault Saunier
dd65d70f65 audiomixer: Port to GstAggregator
https://bugzilla.gnome.org/show_bug.cgi?id=737183

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
2014-10-06 18:57:28 +02:00
Matthew Waters
66e65b3333 tests/glcolorconvert: do reorder checking for rgba formats 2014-09-30 18:26:34 +10:00
Matthew Waters
ce7226da06 tests/glmemory: add simple transfer test
tests transferring to/from the GL with a 1x1 RGBA pixel.
2014-09-30 01:49:42 +10:00
Matthew Waters
229e9911cb gl/tests: update for upload API changes 2014-09-22 20:02:44 +10:00
Aurélien Zanelli
bd050201ba vc1parser: add unit test for sequence-layer parsing
Check that a sequence-layer header is successfully parsed.

https://bugzilla.gnome.org/show_bug.cgi?id=736871
2014-09-18 13:36:35 +03:00
Sebastian Dröge
ef8bf75151 templatematch: Compare the correct loop variables 2014-09-16 01:15:31 +03:00
Thiago Santos
288efd4f99 tests: hlsdemux: fix compilation
In file included from /home/thiagoss/gst/head/gstreamer/gst/gst.h:54:0,
                 from /home/thiagoss/gst/head/gstreamer/libs/gst/check/gstcheck.h:34,
                 from elements/hlsdemux_m3u8.c:27:
../../ext/hls/gstfragmented.h:8:28: error: redundant redeclaration of ‘fragmented_debug’ [-Werror=redundant-decls]
 GST_DEBUG_CATEGORY_EXTERN (fragmented_debug);

Move the definition of the category to after the declaration.
2014-09-05 16:11:08 -03:00
Sebastian Dröge
2b7e0d0e73 hlsdemux: And fix Makefile yet again 2014-09-05 12:56:13 +03:00
Sebastian Dröge
3c14457b47 hlsdemux: Include the m3u8.c file directly in the test because of an automake bug
$(top_srcdir) doesn't seem to work with _SOURCES because that would be too
obvious.

http://lists.gnu.org/archive/html/automake/2013-09/msg00005.html
2014-09-05 12:25:01 +03:00
Sebastian Dröge
eca4eaf183 hlsdemux: Also get the m3u8.c source file from the $(top_srcdir) for the test
Should fix make distcheck for real now.
2014-09-04 21:43:07 +03:00
Sebastian Dröge
70d7837718 hlsdemux: Use $(top_srcdir) instead of $(top_builddir) for the include path 2014-09-04 19:01:45 +03:00
Sebastian Dröge
ea555c6595 hlsdemux: Compile the m3u8.c directly instead of re-using the .o file 2014-09-04 17:52:35 +03:00
Sebastian Dröge
96c273f18a hlsdemux: Add unit test for parsing of M3U8 playlists
Ported from https://github.com/ylatuya/gst-plugins-bad

This still has some unit tests for alternative renditions and
seeking, which are commented out for the time being until we
support them properly.
2014-09-04 17:51:21 +03:00
Thiago Santos
30a51ca547 h264parse: tests: fix caps for avc format
If it has a codec_data field, it should also use the stream-format=avc as
codec_data doesn't make sense otherwise and the default should
be bytestream
2014-08-25 13:37:57 -03:00
Tim-Philipp Müller
64f92ce628 tests: remove defunct test code for old colorspace element
https://bugzilla.gnome.org/show_bug.cgi?id=734538
2014-08-10 11:35:41 +01:00
Matthew Waters
81e71aa01b gl/tests: update for API changes 2014-08-01 10:02:34 +10:00
Thiago Santos
03ef435c45 tests: gitignore: update with new tests 2014-07-28 19:11:41 -03:00
Thiago Santos
06243b7eee tests: templatematch: add test to check that we use the correct rgb format
templatematch should use the same RGB format that opencv uses (BGR), make sure
we keep it that way with this test.

https://bugzilla.gnome.org/show_bug.cgi?id=678485
2014-07-28 15:57:07 -03:00
Thiago Santos
ea7b843244 gdppay: put all sticky events in streamheader
Use the sticky events to compose the streamheader as they are the
ones that are persisted to config new pads linked. Instead of storing
them ourselves rely on the pad storage that already orders it for us

https://bugzilla.gnome.org/show_bug.cgi?id=732596
2014-07-22 08:51:32 -03:00
Gwenole Beauchesne
1a455c25cd tests: h264parser: add test to identify EOSEQ / EOS NALs.
Check that end_of_seq() [EOSEQ] and end_of_stream [EOS] NAL units
are correctly parsed and the reported NAL unit size yields 1 byte,
i.e. the only NalHeaderBytes in there.

https://bugzilla.gnome.org/show_bug.cgi?id=732553

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:54:44 +02:00
Gwenole Beauchesne
804c0ac27b tests: h264parse: add test for byte-stream/au output.
Check that conversion to byte-stream/au formats work and that we
can effectively drop broken/invalid NAL units from the resulting
access unit buffer.

https://bugzilla.gnome.org/show_bug.cgi?id=732203

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Gwenole Beauchesne
fb22636325 tests: h264parse: check SEI buffering_period() message is output.
If an SEI NAL unit with a buffering_period() message is inserted
between an SPS and PPS NAL unit, check that the output buffer still
contain it. i.e. make sure that this SEI message is not dropped.

https://bugzilla.gnome.org/show_bug.cgi?id=732156

Signed-off-by: Gwenole Beauchesne <gwenole.beauchesne@intel.com>
2014-07-01 16:26:48 +02:00
Edward Hervey
8c53dfcfb6 mpegts: Expose GstMpegtsDescriptor free function
Nothing earth shattering, but avoids people having to use g_boxed_free()
2014-07-01 10:03:49 +02:00
Thibault Saunier
71c81a5176 aggregator: Avoid destroying sources we do not own
+ Unref the maincontext in a new dispose function
+ Make sure to remove all sources on dispose

https://bugzilla.gnome.org/show_bug.cgi?id=732445
2014-06-30 14:24:49 +02:00
Sebastian Dröge
225f03f80e h264parse: Fix memory leak in unit test 2014-06-29 23:22:13 +02:00
Sebastian Dröge
5cd10a10ab glupload: Fix memory leak in unit test 2014-06-29 21:57:32 +02:00
Sebastian Dröge
d4a8d67982 glcontext: Fix memory leaks in unit test 2014-06-29 21:53:21 +02:00
Sebastian Dröge
426f9e6097 mpegts: Fix memory leaks in the test and the library
Currently uses g_boxed_free() in the unit test, this needs to
be fixed properly when cleaning up the API.

https://bugzilla.gnome.org/show_bug.cgi?id=730914
2014-06-29 21:34:50 +02:00
Thiago Santos
133c67a6a6 tests: aggregator: fix various leaks in the tests 2014-06-28 11:20:43 -03:00
Thiago Santos
1004f8d8ea compositor: tests: Fix pad leak
Remember to unref requested pad
2014-06-28 09:44:22 -03:00
Thiago Santos
f1b99f04dc tests: camerabin: fix caps leak in test
The gst_query_set_caps_result doesn't take ownership of caps
2014-06-27 17:35:32 -03:00
Edward Hervey
22dfd9aef3 mpegts: Unify API : GstMpegts / gst_mpegts_ / GST_*_MPEGTS_
It was previously a mix and match of both variants, introducing just too much
confusion.

The prefix are from now on:
* GstMpegts for structures and type names (and not GstMpegTs)
* gst_mpegts_ for functions (and not gst_mpeg_ts_)
* GST_MPEGTS_ for enums/flags (and not GST_MPEG_TS_)
* GST_TYPE_MPEGTS_ for types (and not GST_TYPE_MPEG_TS_)

The rationale for chosing that is:
* the namespace is shorter/direct (it's mpegts, not mpeg_ts nor mpeg-ts)
* the namespace is one word under Gst
* it's shorter (yah)
2014-06-25 14:50:05 +02:00
Edward Hervey
123f642d5e mpegts: Fix descriptor_from_dvb_service
Various leaks/overwrites issues
2014-06-24 14:51:32 +02:00
Mathieu Duponchelle
11fa711c34 compositor: Add a new compositor based on the new GstVideoAggregator base class
It is a replacement for videomixer with a similare API

Co-Authored by: Thibault Saunier <tsaunier@gnome.org>

https://bugzilla.gnome.org/show_bug.cgi?id=731919
2014-06-20 19:53:33 +02:00
Thibault Saunier
55c65d079f aggregator: Add new GstAggregator base class
This base class has been added to a newly created libgstbadbase library

Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>

https://bugzilla.gnome.org/show_bug.cgi?id=731917
2014-06-20 19:53:33 +02:00
Olivier Crête
e72f0eadd8 tests: Take account of memory alignment in shm test 2014-06-02 21:51:38 -04:00
Thiago Santos
89fadbcfe4 tests: mpegts: add test for STT parsing
Specially for the time to UTC datetime conversion

Example taken from the A65 spec

https://bugzilla.gnome.org/show_bug.cgi?id=730435
2014-05-29 10:38:00 +02:00
Matthew Waters
5867eb42f3 tests: update for glupload changes 2014-05-29 18:32:48 +10:00
Matthew Waters
8d6198d934 tests: update for recent glupload changes
GstGLUploadMeta object is now the GstVideoGLTextureUploadMeta
provider.
2014-05-28 23:22:15 +10:00
L. Sorin
9c1e66302d curlsftpsink: authenticate remote host via public key fingerprint
Expose one more libcurl option: CURLOPT_SSH_HOST_PUBLIC_KEY_MD5.
This allows authenticating the server by the MD5 fingerprint of
the server's public key.

https://bugzilla.gnome.org/show_bug.cgi?id=723167
2014-05-20 08:58:08 +02:00
Matthew Waters
a49a371710 gl/upload: implement lazy init
Rename init_format to set_format
2014-05-08 15:33:43 +10:00