Commit graph

6383 commits

Author SHA1 Message Date
Nicola Murino
1a96759a34 opencv cameraundistort: use G_GNUC_UNUSED for better portability 2019-02-02 18:34:10 +00:00
Nicola Murino
06d1b751ad opencv: remove deprecated headers
are not needed anymore
2019-02-02 18:34:10 +00:00
Nicola Murino
26cabf9b1f opencv: port to c++ 2019-02-02 18:34:10 +00:00
Jan Schmidt
19382f1e91 openh264: Conditionally support the main and high profiles
openh264 added main/high profile support upstream after the 1.8.0
release, so detect a version higher than that and support main/high
stream input
2019-01-30 14:53:02 +11:00
Jan Schmidt
40de7e5b98 openh264: Use DecodeFrameNoDelay() API instead of DecodeFrame2
Replace legacy usage of DecodeFrame2 API in favour of the
recommended DecodeFrameNoDelay()

This fixes problems with DecodeFrame2() not (currently) returning
all frames in main/high streams with B-frames, and reduces latency -
previously openh264 would not return a decoded frame until the next
call to DecodeFrame2(). DecodeFrameNoDelay() returns them immediately.
2019-01-30 14:53:02 +11:00
Jan Schmidt
278cd35695 openh264dec: Hook up openh264 messages to GStreamer logging
Use the OpenH264 callback to pass Openh264 internal warning/error
messages through the GStreamer logging framework
2019-01-30 14:53:02 +11:00
Jan Schmidt
d4594c5c75 openh264dec: Handle B frame decoding
Support out-of-order decoding in OpenH264 by tracking
our internal frame reference in the OpenH264 timestamp
field.

Drain any pending frames at EOS.
2019-01-30 14:53:02 +11:00
Jan Schmidt
e75e637531 Add OpenH264 version check macro 2019-01-30 14:43:22 +11:00
Jan Schmidt
984b150e65 openh264dec: Fix up EOS handling
If the last frame(s) produce errors, then we need to drop them
or else we spin forever failing to decode a frame and thinking
it'll get better if we wait for more data that's never coming.
2019-01-30 03:00:49 +11:00
Yeongjin Jeong
52e4a20b4e fdkaacdec: Fix build for fdkaac < 0.1.4
The fdkaac decoder supports 6.1 / 7.1 channels with downmixer
since v0.1.4. Old versions can use AAC_PCM_OUTPUT_CHANNELS
instead of AAC_PCM_MAX_OUTPUT_CHANNELS.

Fixes #873
2019-01-25 15:50:31 -05:00
Mathieu Duponchelle
85c75bb23b webrtc: expose ice-transport-policy property
This is the equivalent of iceTransportPolicy in the RTCConfiguration
dictionary.

Only two values are implemented:

* all: default behaviour
* relay: only gather relay candidates

The third member of the iceTransportPolicy enum, "public", is
obsolete.
2019-01-23 22:47:51 +00:00
Olivier Crête
73c6530d40 srt: Accepts URIs without host to go into listener mode
Just setting a URI without a hostname should directly go into listener mode.
2019-01-23 19:14:30 +00:00
Olivier Crête
5fee3a87c1 srt: Fix GClosure usage
One needs to set a marshaller as well as use the object setter when
setting objects.
2019-01-23 19:14:30 +00:00
Philippe Normand
c34cd8c5e0 wpesrc: Plug WPE's exportable leak 2019-01-22 11:52:30 +00:00
Philippe Normand
c357e12118 wpe: Add autotools build support 2019-01-22 11:13:13 +00:00
Justin Kim
dc28105220 srt: Use default host and port if uri doesn't provide 2019-01-22 18:26:01 +09:00
Justin Kim
2bb907eb9c srt: Enable logs for srtobject 2019-01-22 12:44:07 +09:00
Justin Kim
f63643fcbf srt: Fix property names
Property name and its enum should match.
2019-01-22 12:42:47 +09:00
Justin Kim
b8610e72de srt: Fix a regression crash
Even in case that srt is working as a caller mode, uri can have no
hostname or ip address.

fix: #874
2019-01-22 11:35:03 +09:00
Tim-Philipp Müller
dd4359d296 srt: dist enums header 2019-01-16 13:48:51 +00:00
Jan Alexander Steffens (heftig)
7a01e9a8cb
srt: Fix autotools build
0a350c610d broke the build by only
building enum types with meson. It also removed gstsrt.c from the list
of sources, causing the plugin to fail to load.

squash! srt: Fix autotools build
2019-01-14 16:01:40 +01:00
Jan Alexander Steffens (heftig)
484291b1b4
srt: Fix GCC function type error
gstsrtobject.c: In function ‘gst_srt_object_close’:
gstsrtobject.c:1036:7: error: function called through a non-compatible type [-Werror]
       (GDestroyNotify) g_closure_unref);
/usr/include/glib-2.0/glib/gmem.h:121:8: note: in definition of macro ‘g_clear_pointer’
       (destroy) (_ptr);                                                        \
        ^~~~~~~
gstsrtobject.c:1038:7: error: function called through a non-compatible type [-Werror]
       (GDestroyNotify) g_closure_unref);
/usr/include/glib-2.0/glib/gmem.h:121:8: note: in definition of macro ‘g_clear_pointer’
       (destroy) (_ptr);                                                        \
        ^~~~~~~

Arch Linux
gcc 8.2.1 20181127
glib 2.58.2
2019-01-14 14:48:50 +01:00
Justin Kim
0a350c610d srt: Integrate server and client element into one
We have srt{client,server}{src,sink} elements in accordance to the
norm of the connection oriented protocols. However, SRT connection
mode can be changed by uri parameters so it requires an integrated
element to handle the parameters.

fix: #740
2019-01-09 19:44:02 +00:00
Tim-Philipp Müller
9eb7f7cbc7 webrtc: include stdlib.h for atoi()
Fixes #857
2018-12-31 12:09:42 +00:00
Tim-Philipp Müller
88683e5a1e Remove openglmixers plugin, moved to -base
Merged into the existing opengl plugin in -base.
2018-12-28 13:48:29 +01:00
Tim-Philipp Müller
b9e15fddb1 Remove GstVideoAggregator, moved into libgstvideo in -base
https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/issues/137
2018-12-26 19:06:33 +01:00
Tim-Philipp Müller
ae194e99d9 opencv: fix disting of new header files
Fixes distcheck.
2018-12-25 16:58:40 +01:00
Justin Kim
2faa08ff28 openal: Fix AL header path for Mac OS X
OpenAL.framework doesn't provide 'alext.h'.
Thus, openal is enabled only if the dependency
is set by pkg-config.

fixes: #852
2018-12-25 00:42:31 +09:00
Matthew Waters
b4bdcf15b7 webrtc/receive-bin: block pads before dtlssrtpdec:
Fixes SSL errors in fast-start scenarios and whenever media stream may
be received before an answer is set.
2018-12-19 00:44:06 +00:00
Matthew Waters
26a5cbddbb webrtcbin: only change the receive state after setting the dtls-client
Doing so before will cause SSL errors with fast-start implementations
like Chrome or if media data arrives before an answer.
2018-12-19 00:44:06 +00:00
Matthew Waters
0a3f662ed6 webrtc: A couple of documentation fixes
set-*-description only takes the combined GstWebRTCSessionDescription
object
2018-12-19 00:44:06 +00:00
Sebastian Dröge
39381643c8 closedcaption: Add ccconverter element that can convert between different types of Closed Caption formats 2018-12-19 00:19:39 +02:00
Tim-Philipp Müller
da7cf85e3c meson: fix opencv=disabled case if opencv is available on the system
ext/opencv/meson.build:103:2: ERROR:  Unknown variable "gstopencv_dep".
2018-12-17 18:58:52 +00:00
Tim-Philipp Müller
a26cce1833 meson: wildmidi detection fixes
Need at least 0.4.2 apparently.

ext/wildmidi/meson.build:11:2: ERROR:  String '' cannot be converted to int
2018-12-17 17:11:00 +00:00
Jonathan Karlsson
d49bc71f00 curlhttpsink: free content type before assigning it
Not doing this would result in a memory leak.
2018-12-17 15:56:08 +00:00
Jonathan Karlsson
e8ec1c0143 curlbasesink: cleanup transfer immediately when done 2018-12-17 14:24:07 +00:00
Jan Alexander Steffens (heftig)
f964fb38b6 fdkaac: Syntax tweaks to increase readability
Mostly move some assignments out of conditionals that gst-indent
completely destroys.
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
c5a17000b6 fdkaacdec: Enable 8-channel playback
The decoder seems to default to 6 channels max, downmixing 7.1 to 5.1.
Disable the channel limit to expose all channels to GStreamer.

In addition, none of the standard configurations use ACT_SIDE channels.
The rear channels of the 7.1 configuration have to be taken from
ACT_BACK. See the table in aacenc_lib.h, reproduced here:

----------------------------------------------------------------------------------------
 ChannelMode           | ChCfg | Height | front_El      | side_El  | back_El  | lfe_El
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_1                 |     1 | NORM   | SCE           |          |          |
MODE_2                 |     2 | NORM   | CPE           |          |          |
MODE_1_2               |     3 | NORM   | SCE, CPE      |          |          |
MODE_1_2_1             |     4 | NORM   | SCE, CPE      |          | SCE      |
MODE_1_2_2             |     5 | NORM   | SCE, CPE      |          | CPE      |
MODE_1_2_2_1           |     6 | NORM   | SCE, CPE      |          | CPE      | LFE
MODE_1_2_2_2_1         |     7 | NORM   | SCE, CPE, CPE |          | CPE      | LFE
MODE_6_1               |    11 | NORM   | SCE, CPE      |          | CPE, SCE | LFE
MODE_7_1_BACK          |    12 | NORM   | SCE, CPE      |          | CPE, CPE | LFE
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_TOP_FRONT     |    14 | NORM   | SCE, CPE      |          | CPE      | LFE
                       |       | TOP    | CPE           |          |          |
-----------------------+-------+--------+---------------+----------+----------+---------
MODE_7_1_REAR_SURROUND |     0 | NORM   | SCE, CPE      |          | CPE, CPE | LFE
MODE_7_1_FRONT_CENTER  |     0 | NORM   | SCE, CPE, CPE |          | CPE      | LFE
----------------------------------------------------------------------------------------
- NORM: Normal Height Layer.     - TOP: Top Height Layer.  - BTM: Bottom Height Layer.
- SCE: Single Channel Element.   - CPE: Channel Pair.      - LFE: Low Frequency Element.

Restores 8 channels to
https://www2.iis.fraunhofer.de/AAC/7.1auditionOutLeader_v2_rtb.mp4
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
4ec3f2f193 fdkaacenc: Add support for v2.0.0 and its configurations
These are MPEG-standard configurations so should be checked first,
before the PCE clones added by v0.1.4.
2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
bc3c5ea7b1 fdkaacenc: Add support for MPEG configuration 7 2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
3a9f5a76e8 fdkaacenc: Add a description of each configuration 2018-12-17 12:39:13 +00:00
Jan Alexander Steffens (heftig)
383fe6f81d fdkaacenc: Prefer REAR for surround channels
We (currently?) prefer to use the REAR positions for what MPEG calls
"surround" channels.
2018-12-17 12:39:13 +00:00
Tim-Philipp Müller
d3f174f77f Remove daala plugin
Not so useful now that all effort is focused on AV1 instead.
Was only ever enabled with --enable-experimental anyway.

Fixes #848
2018-12-17 12:03:09 +00:00
Sebastian Dröge
38be1fb2db meson: Add libsinc to the CFLAGS
Otherwise gst-i18n-plugin.h can't be found.
2018-12-17 12:30:27 +02:00
Tim-Philipp Müller
2e6510b9e2 meson: build openni2 plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
094478d248 meson: build openmpt plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
79d8855d87 meson: build openexr plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
c23a1dc2b6 meson: build openal plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
dd529d0f5d meson: build sndfile plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
0be8a5f8f4 meson: build voamrwbenc plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
986f6cac45 meson: build teletext plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
cbf746782b meson: build modplug plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
4130b08776 meson: build wildmidi plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
56c65afff4 meson: build dc1394 plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
d7b7f2a9a5 meson: build ofa plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
7c69abd918 meson: build gme plugin 2018-12-17 09:12:53 +00:00
Tim-Philipp Müller
ee7e3f7bc7 Remove spc plugin
Replaced by gme plugin. Fixes #467
2018-12-16 23:35:58 +00:00
Sebastian Dröge
aa72783b95 closedcaption: Use new API for converting GstVideoCaptionType from/to GstCaps 2018-12-15 21:31:28 +00:00
Sebastian Dröge
48f48cc4ba closedcaption: Replace GST_VIDEO_CAPTION_TYPE_CEA608_IN_CEA708_RAW with CEA608_S334_1A
As a side-effect we can now actually store the line offset in the
line21dec element, and have to perform fewer transformations in the
decklink elements (which were also buggy as they assumed a single byte
triplet per meta).
2018-12-15 21:31:28 +00:00
Sebastian Dröge
f9e4ed99b0 line21dec: If CCs are not found at the previous line, reset and search from the beginning again 2018-12-15 21:31:28 +00:00
Sebastian Dröge
36ba1e80b6 line21dec: Don't read more lines than the height of the frame 2018-12-15 21:31:28 +00:00
Wonchul Lee
2ae381e2a3 waylandsink: Avoid race condition on multi-threaded client
When waylandsink is used on some other thread than the main wayland
client thread, the waylandsink implementation is vulnerable to a

condition related to registry and surface events which handled in
seperated event queue.

The race that may happen is that after a proxy is created, but
before the queue is set, events meant to be emitted via the yet to

set queue may already have been queued on the wrong queue.

Wayland 1.11 introduced new API that allows creating a proxy
wrappper which can help to avoid this race condition.
2018-12-13 17:20:04 +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
Patricia Muscalu
e0adbee49a curlbasesink: Rename curl transfer thread
Some systems restrict the length of thread names to 16 bytes.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/838
2018-12-06 15:36:47 +00:00
Philippe Normand
5b8935bc77 wpe: Add a source element acting as a Web Browser based on WebKit WPE
The wpe element is used to produce a video texture representing a web page
rendered off-screen by WPE. This element can be used to overlay HTML on top of
another video stream for instance.
2018-12-06 12:38:52 +00:00
Jonathan Karlsson
b025736899 curlhttpsink: Enable content type changes
Makes it possible to change content type without having to
reinitialize the element, typically after reset.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/merge_requests/41
2018-12-06 09:08:59 +00:00
Jan Alexander Steffens (heftig)
19d34f6b5e fdkaacdec: Use WAV channel mapping instead of interleave setting
The latter is going away in libfdk-aac 2.0.0. Instead, MPEG-style output
is always non-interleaved and WAV-style output is always interleaved.
Earlier libfdk-aac also defaults interleaving accordingly.

Since our reordering looks at the associated PCE indices instead of the
actual channel order, we're agnostic to the mapping.

For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825
2018-12-05 21:50:03 +00:00
Jan Alexander Steffens (heftig)
f4fdb9770c fdkaacenc: Remove MODE_2_1
This is not a standard mode and no longer supported by fdk-aac 2.0.0.

For https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/825
2018-12-05 21:50:03 +00:00
Nirbheek Chauhan
9504fc7174 meson: Add missing gio dep to webrtcbin plugin
It's usually pulled in implicitly through gstsdp_dep, but it's
actually a private dependency there. Fixes a build failure on Windows
with newer Meson.
2018-12-05 19:58:44 +05:30
Tim-Philipp Müller
4f935e1e7f cc708overlay: fix deadlock
We would forget to unlock when a caption data buffer is deemed
out of segment, which makes everything lock up next time buffers
are received.
2018-11-29 11:24:39 +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
Seungha Yang
2c81a50c2c hlssink2: Fix string leak
Need to free allocated string memory on _finalize()
2018-11-27 16:08:17 +09:00
Nicola Murino
24d5c9b200 opencv: define CASCADE_DO_CANNY_PRUNING for opencv < 4 2018-11-26 13:29:03 +00:00
Nicola Murino
b0773c6ea7 opencv: make compatible with opencv 4
Closed #826
2018-11-26 13:29:03 +00:00
Nicola Murino
890dbb560f opencv: fix indentation 2018-11-26 13:29:03 +00: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
Matthew Waters
14ee6f9d35 webrtc: fix typo in RTCRemoteOutboundRTPStreamStats 2018-11-26 16:21:58 +11:00
Matthew Waters
a42fdbb012 webrtc: add a few comments on bundle and src pad exposure 2018-11-26 16:21:19 +11:00
Matthew Waters
6f91a191de webrtcbin: factor out dtls fingerprint setting 2018-11-26 16:20:02 +11:00
Matthew Waters
3a2566c61f webrtc: remove extra 'pad' from log line 2018-11-26 16:12:03 +11:00
Matthew Waters
5ecca0bb22 webrtc: move some functions to the appropriate files 2018-11-26 16:07:57 +11:00
Harshad Khedkar
9ad618e487 Webrtcbin : Need to use 'host' from gst_uri_get_host s libnice agent expects it
Currently master code of gst1-plugins-bad use plain-string host name while passing it to
libnice agent: nice_agent_set_relay_info() in gstwebrtcice.c while adding turn_server(_add_turn_server).

It is observered that if we don't convert the host parameter by using gst_uri_get_host, it fails in libnice agent(0.1.14-1).

Code does, actually, set the host correctly but while passing params to nice_agent_set_relay_info, it uses incorrect one.

https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/823
2018-11-22 18:47:13 +05:30
Rosen Penev
29d48ce8a1 dtls: Fix compilation without deprecated APIs on OpenSSL 1.1.x 2018-11-14 14:55:37 -08:00
Justin Kim
e76c61d74c cameracalibrate: Fix build error on Mac OSX
It fails to build only on Mac OSX with the following error.

In file included from ../subprojects/gst-plugins-bad/ext/opencv/gstopencv.cpp:45:
../subprojects/gst-plugins-bad/ext/opencv/gstcameracalibrate.h:96:38: error: a space is required between consecutive right angle brackets (use '> >')
  std::vector<std::vector<cv::Point2f>> imagePoints;
                                     ^~
                                     > >
1 error generated.

Fix: #817
2018-11-13 18:23:19 +09:00
Matthew Waters
c78f81f410 build: link against the gnustl dependency on android for c++ plugins 2018-11-12 21:37:07 +11:00
Olivier Crête
75d4ede815 srtpenc: Add support for adding a MKI
https://bugzilla.gnome.org/show_bug.cgi?id=797305
2018-11-09 15:08:05 -05:00
Olivier Crête
46b5756d30 srtpdec: Add support for MKI
Add support for MKIs which allow multiple keys to be used with a single SRTP stream.

https://bugzilla.gnome.org/show_bug.cgi?id=797305
2018-11-09 15:06:27 -05:00
Jan Alexander Steffens (heftig)
84d3f58c4a
dtls: Link against winsock2 on Windows
Should fix the Windows build after
b1509b1047.
2018-11-06 18:48:44 +01:00
Jan Alexander Steffens (heftig)
b1509b1047 dtlsconnection: Print out errno info for syscall errors
As suggested in [the SSL_get_error manpage][1]. Upgrade the message to a
warning if the errno isn't 0 (success). The latter apparently means the
transport encountered an EOF (shutdown) without the shut down handshake
on the (D)TLS level. This happens quite often for otherwise normal DTLS
connections.

[1]: https://www.openssl.org/docs/man1.1.1/man3/SSL_get_error.html
2018-11-06 16:23:50 +00:00
Andreas Frisch
51f0307900 dtls: Properly display all errors/warnings from ERR queue
Print out all errors from the OpenSSL error queue instead of just
looking at the topmost error. Using the callback interface also removes
the need for formatting using a buffer on the stack.
2018-11-06 16:23:50 +00:00
Jan Alexander Steffens (heftig)
7bb6ce352b dtlsconnection: Replace if-else chain with switch
A more idiomatic construct for testing a bunch of integers.
2018-11-06 16:23:50 +00:00
Jan Alexander Steffens (heftig)
49cc7b8091 dtlsconnection: Clear error queue before SSL_do_handshake
As documented on [the SSL_get_error manpage][1] we need to empty the
error queue before making any call that we check with SSL_get_error.

[1]: https://www.openssl.org/docs/man1.1.1/man3/SSL_get_error.html
2018-11-06 16:23:50 +00:00
Jan Alexander Steffens (heftig)
fa92909d0d dtlsconnection: Lower BIO error log level to DEBUG
Periodic SSL_ERROR_SYSCALL errors with errno == 0 seem to be normal
behavior for DTLS connections.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/677
2018-11-06 16:23:50 +00:00
Jan Alexander Steffens (heftig)
a9b9994738 dtlsconnection: Run gst-indent 2018-11-06 16:23:50 +00:00
Sebastian Dröge
eb92865ea1 cccombiner: Add new closed caption combiner element
This is the inverse of ccextractor: it takes a video and closed caption
stream and places the closed caption metas on the video output buffers.
2018-11-06 16:21:42 +00:00
Sebastian Dröge
7ba9493ff1 ccextractor: Handle multiple caption metas per buffer 2018-11-06 16:21:06 +00:00
Tim-Philipp Müller
247cd2113e webrtc: update default libnice options
Uses feature options now.
2018-11-02 20:16:56 +00:00
Sebastian Dröge
7cfe6b0bf3 ccextractor: Support changes of the caption type
https://bugzilla.gnome.org/show_bug.cgi?id=797370
2018-11-02 12:22:15 +02:00
Tim-Philipp Müller
a4cfb1fa14 meson: add 'curl-ssh2' option for curl libssh2 support
https://bugzilla.gnome.org/show_bug.cgi?id=797346
2018-10-28 11:53:42 +00:00