Commit graph

1687 commits

Author SHA1 Message Date
Alex Ashley
a11f7ed924 dashdemux: include both Period start and presentationTimeOffset in segment start
The start of each segment is relative to the Period start, minus
the presentation time offset.

As specified in section 5.3.9.6 of the MPEG DASH specification:
    The value of the @t attribute minus the value of the
    @presentationTimeOffset specifies the MPD start time of
    the first Segment in the series.

dashdemux was not taking account of presentationTimeOffset and in
some methods was not taking into account the Period start time.
This commit modifies the segment->start value to always be
relative to the MPD start time (zero for VOD,
availabilityStartTime for live streams). This makes all uses of
the segment list consistent.

Fixes #841
2019-06-01 21:25:33 +00:00
Mathieu Duponchelle
1d90a0afc5 tests: add example for injecting MPEG-TS sections 2019-05-30 13:53:05 +00:00
Matthew Waters
62cc5e51d1 tests/webrtc: wait until the SDP has been set before continuing
If we renegotiate, then it is currently possible for an added stream to
be added to webrtcbin before the SDP is complete.  This causes an
internal inconsistency as there is a 'pending sink transceiver' without
a corresponding media section in the sdp.  It also does not have an
associated transport stream and will fail in _connect_input_stream().
2019-05-30 21:33:09 +10:00
Matthew Waters
979daea7f2 tests/webrtc: fix racy test with a prenegotiated data channel
If both data channels become ready simultaneously, then the two integer
read-add-update cycles can execute concurrently and only ever increment
once instead of the required twice.  Use an atomic add instead.
2019-05-30 21:33:09 +10:00
Matthew Waters
177aa22bcd webrtc: Initial support for stream addition/removal
Limitations:
- No transport changes at all (ICE, DTLS)
- Codec changes are untested and probably don't work
- Stream removal doesn't remove transports (i.e. non-bundled transports
  will stay around until webrtcbin is shutdown)
- Unified Plan SDP only. No Plan-B support.
2019-05-30 21:33:09 +10:00
Matthew Waters
015cb75f66 tests/webrtc: a couple of debug/error string fixes 2019-05-30 21:33:09 +10:00
Matthew Waters
be35735989 tests/webrtc: rewrite bundle checks for separate validate_sdp passes
Improves reusability
2019-05-30 21:33:09 +10:00
Matthew Waters
2bb1fde47c tests/webrtc: add helper for getting the offer/answer element 2019-05-30 21:33:09 +10:00
Matthew Waters
b48e2947bf tests/webrtc: only check audio/video for direction attributes 2019-05-30 21:33:09 +10:00
Matthew Waters
bd92b2f7c4 webrtc: fix answer creation with multiple streams and similar caps 2019-05-30 21:26:46 +10:00
Matthew Waters
ebb9c3c298 tests/webrtc: factor out sdp validation into a single function 2019-05-30 21:26:46 +10:00
Matthew Waters
eb79f95bf8 tests/webrtc: validate number of sdp media using validate_sdp 2019-05-30 21:26:46 +10:00
Matthew Waters
7e1cdbfd4d tests/webrtc: allow multiple validation functions 2019-05-30 21:26:46 +10:00
Matthew Waters
120a40cf25 tests/webrtc: test that duplicate negotiations succeed 2019-05-30 21:26:46 +10:00
Mathieu Duponchelle
a1cadd11b8 mpegtsmux: aggregator port 2019-05-19 19:40:48 +00:00
Nirbheek Chauhan
8388a031ab meson: Remove redundant env set operation
This is immediately overriden 4 lines later, and starting with Meso
0.50.1 this will lead to a noisy warning.
2019-04-13 11:34:22 +05:30
Tim-Philipp Müller
a94f4064cb tests: h264parse: add minimal unit test for closed caption SEI parsing 2019-04-08 19:21:34 +01:00
Seungha Yang
231c76b0ce tests: Add nvenc unit test 2019-03-10 13:58:38 +09:00
Tim-Philipp Müller
6dad8b7c78 closedcaption: fix leak in line21 decoder
Destroy old decoder instance when shutting down the
element, and also in case the input format changes.

Fix harness/pipeline leak in unit test.
2019-03-08 01:18:39 +00:00
Tim-Philipp Müller
2ab238a4d0 tests: fix bus leak in hls_demux testSeek unit test
We add the signal watch in testSeekPreTestCallback so
remove it in testSeekPostTestCallback and not deep inside
some if clause in some other callback somewhere.
2019-03-08 01:18:39 +00:00
Tim-Philipp Müller
5b68e12d01 .gitignore more things 2019-03-08 01:17:40 +00:00
Mathieu Duponchelle
55abe39d76 line21: fix tests build with autotools 2019-03-06 15:17:24 +01:00
Mathieu Duponchelle
156865541f closedcaption: add line21 encoder
This element acts as a counterpart of line21encoder.

Also adds a simple test validating each element using the
other.
2019-03-06 11:29:20 +01:00
Tim-Philipp Müller
03fcdedd66 meson: don't build icles when tests are disabled
They are manual tests, so let them be controlled
via the tests option not the examples option, for
consistency with -good.
2019-02-28 11:02:42 +00:00
Alex Ashley
d2d912f34a tests: curlhttpsrc: add unit tests
Based upon the souphttpsrc tests, add unit tests for the curlhttpsrc
element. The souphttpsrc tests are able to use an HTTP server that
is provided as part of the soup library. This does not exist in the
curl library, therefore these tests provide a very simple HTTP server
using the GIO library.

These curlhttpsrc tests contain one new test that does not come from
the souphttpsrc tests. The test_multiple_http_requests test tries to
reproduce the way in which GstAdaptiveDemux makes use of URI source
elements. GstAdaptiveDemux creates a bin with the httpsrc element
and a queue element and sets the locked state of that bin to TRUE,
so that it does not follow the state transitions of its parent. It
then moves this bin to the PLAYING state to start each download and
back to READY when the download completes.
2019-02-19 17:55:12 +00:00
Bastien Nocera
2d5ed45913 vcdsrc: Remove unusable VCD source
The VCD source was ported in 2014 (commit 89eb1e9), but the necessary
"cdxaparse" plugin, which is used to "Parse a .dat file (VCD) into
raw mpeg1" was never ported.

This means that the probable main user for the feature, totem, hasn't
actually been able to play back VCDs, since 2012, when it switched to
using GStreamer 1.0.

Note that even if cdxaparse was finally ported, a lot of work would
still be necessary before it is considered usable. Notably, it is
missing disc image support [1] and some VCDs just cannot be opened for
reading [2].

[1]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/898
[2]: https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/899
2019-02-18 15:39:43 +01:00
Nirbheek Chauhan
572a283b4a meson: orc-test is not required
This is especially never available on iOS.
2019-01-31 15:29:24 +05:30
Seungha Yang
a9c61e467a meson: Add support orc fallback
Allow fallback to orc subproject if any, and add missing orc version check.
Additionally 'dependencies' keyword is removed from find_library,
because it's invalid keyword for find_library.
2019-01-30 19:55:05 +09:00
Tim-Philipp Müller
7ea8ec8929 meson: enable tests for orc code 2019-01-16 01:03:40 +00:00
Seungha Yang
82b921e1a4 tests: Enable more tests on Windows 2018-12-30 22:34:43 +09:00
Seungha Yang
33f867236b tests: Remove compositor test
It's moved to -base and no more part of -bad
2018-12-30 22:34:43 +09:00
Seungha Yang
8cd89b2cdd tests: Remove pointless unistd include 2018-12-30 22:34:43 +09:00
Tim-Philipp Müller
e42efbccb1 Remove compositor plugin which was moved to -base
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/138
2018-12-27 15:31:58 +01:00
Sebastian Dröge
fcceb37bf2 ccconverter: Add unit test 2018-12-19 00:20:26 +02:00
Seungha Yang
fa3ae13250 tests: Re-enable isoff test on Windows
... and drop libxml2 dependency since it never be used by
both test and gstisoff.
2018-12-18 16:48:17 +00:00
Seungha Yang
b606ff16a9 tests: Fix build with MSVC 2018-12-18 16:48:17 +00:00
Seungha Yang
1b0b2c37cc meson: Prefer to use join_paths() over '/'
... to avoid mixing '/' and '\' in a path string on Windows.
2018-12-18 16:48:17 +00:00
Seungha Yang
f74ad82ddc tests: Enable unit test on Windows
Allow run some unit tests on Windows.
* Add dependency explicitly for some test cases, otherwise plugins couldn't be
  loaded on uninstalled environment of Windows.
* Add missing GST_PLUGIN_LOADING_WHITELIST on meson build.
2018-12-18 16:48:17 +00:00
Wonchul Lee
c082634d16 examples/wayland: Add wayland multi-thread client example
This is for testing race condition with multi-thread wayland client
environment. The race condition will be resolved with wayland proxy
wrapper API when handling event queue.
2018-12-13 17:20:04 +00:00
Tim-Philipp Müller
fa9697002a tests: mpegvideoparse: add unit test for CEA-708 closed captions extraction 2018-12-11 13:56:06 +00:00
Sebastian Dröge
fed05fcdf2 mpegtsmux: Change unit test to not generate zero-sized buffers ever 2018-12-10 14:20:14 +00:00
Sebastian Dröge
98b2c705c4 ccextractor: Copy over timecode meta from the input buffers to the outgoing caption buffers
Formats like SCC and MCC work based on timecodes so ideally we pass
through the timecodes when writing them.
2018-12-06 16:06:05 +00:00
Sebastian Dröge
f0571a94fb ccextractor: Include framerate in the closedcaption caps
It depends on the framerate how many cc_data byte pairs are allowed per
frame, and the framerate is also needed for converting into the CDP or
MCC format as the framerate is part of the header metadata.
2018-12-06 16:06:05 +00:00
Tim-Philipp Müller
2b8659a3ef meson: build opencv and ipcpipeline examples
https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/576
2018-11-29 12:29:50 +00:00
Jordan Petridis
1f562870ee Run gst-indent through the files
This is required before we enabled an indent test in the CI.

https://gitlab.freedesktop.org/gstreamer/gstreamer-project/issues/33
2018-11-28 14:18:26 +00:00
Matthew Waters
65c9c4b406 tests/webrtc: fix tests for no libnice
webrtcbin will fail the state change to READY when libnice elements are
not available.
2018-11-26 17:13:08 +11:00
Matthew Waters
57a006d8a5 tests/webrtc: use the existing functions in the plugin
Instead of redefining our own, use the function implementations in
webrtcsdp.c and utils.c
2018-11-26 17:13:08 +11:00
Tim-Philipp Müller
47b68176a1 examples: codecparser: fix compiler warnings for unstable API use
Breaks build bots and build with --werror
2018-11-25 17:33:04 +00:00
Tim-Philipp Müller
18e4e80b7d examples: force gtk to x11 backend
Until someone makes it work with the wayland backend.
The code currenty assumes and hard-codes X11.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/49
2018-11-25 16:28:25 +00:00
Tim-Philipp Müller
347d732889 meson: build more examples
See https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/576
2018-11-25 14:59:16 +00:00