Tim-Philipp Müller
a8ce8db982
srt: add "empty" subclasses for deprecated srt{client,server}{src,sink}
...
The doc system gets confused when we register the exact same
class as multiple elements, so make a subclass for each.
Also wrap registration of deprecated elements with #ifndef GST_REMOVE_DEPRECATED.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1354 >
2020-06-19 17:20:02 +01:00
Thibault Saunier
ebababae03
srt: doc: Add missing gst_type_mark_as_plugin_api
2020-06-09 12:28:13 -04:00
Peter Workman
b98712c44a
srtobject: continue polling or report error on failed receive
...
fixes #1277
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1260 >
2020-06-03 09:31:42 +00:00
Jan Alexander Steffens (heftig)
a1bc9d4319
srt: Make logging regarding callers more useful
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1273 >
2020-06-03 04:23:14 +00:00
Jan Schmidt
918ed75944
srt: Don't leak the connection_poll_id on close()
...
Attempting to reach an inactive SRT peer in caller mode
was leaking an fd every few seconds in the gst_srt_object_close()/open()
loop.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1293 >
2020-05-24 10:47:59 +00:00
J. Kim
4ccaa1ebbb
srtobject: add streamid property
...
The stream id starts with '#!::' according to SRT Access Control[1],
but GstURI requires URI encoded string.This commit introduces additional
property to set the id by normal string.
[1] https://github.com/Haivision/srt/blob/master/docs/AccessControl.md
2020-05-13 14:13:48 +00:00
krivoguzovVlad
b769af0c4f
Update gstsrtobject.c
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/999 >
2020-04-30 18:57:13 +00:00
Jan Alexander Steffens (heftig)
97c05d3f4b
srt: Accumulate total bytes sent/received over all connections/callers
...
So we don't lose them. Split gst_srt_object_open_internal for internal
reconnections that don't reset the accumulated bytes.
2020-04-15 10:42:48 +02:00
Jan Alexander Steffens (heftig)
d19b3fccb5
srt: Fix type of bytes-received-lost
...
The field is a uint64_t.
2020-04-15 10:42:47 +02:00
Jan Alexander Steffens (heftig)
132e3a1af9
srt: Remove use of closures for signal emission
...
It seems overly complicated.
2020-04-15 10:42:47 +02:00
Jan Alexander Steffens (heftig)
d2d00e07ac
srt: Clean up locking
...
Use GST_OBJECT_LOCK (srtobject->element) to protect only the fields
involved in property access.
Introduce a new mutex srtobject->sock_lock to go with
srtobject->sock_cond and protect the list of callers from concurrent
access.
2020-04-15 10:42:47 +02:00
Jan Alexander Steffens (heftig)
37ee389913
srt: Remove trailing whitespace
2020-04-15 10:42:47 +02:00
J. Kim
04f3f4be4f
srtobject: fix mutex lock target
...
GstSRTObject is a structure that has an actual GstElement
which is extended to srt{src,sink}.
2020-04-13 15:23:46 +09:00
Francisco Javier Velázquez-García (francisv)
c7fe1e8164
gstsrtsink: Add wait-for-connection
property to srtsink
...
Add `wait-for-connection` property to `srtsink` element. This
property allows the element to process packets even when no clients
are connected.
2019-12-19 19:46:47 +00:00
Jakub Adam
19391ae4c7
srtobject: allow passing SRT Stream ID in stream URI
...
Based on Stream ID, the application can accept or reject the connection,
select the desired data stream, or set an appropriate passphrase for the
connection. Example usage:
srt://127.0.0.1:1234?streamid=mystream
2019-11-20 17:09:34 +00:00
Niels De Graef
d8f61515d8
Don't pass default GLib marshallers for signals
...
By passing NULL to `g_signal_new` instead of a marshaller, GLib will
actually internally optimize the signal (if the marshaller is available
in GLib itself) by also setting the valist marshaller. This makes the
signal emission a bit more performant than the regular marshalling,
which still needs to box into `GValue` and call libffi in case of a
generic marshaller.
Note that for custom marshallers, one would use
`g_signal_set_va_marshaller()` with the valist marshaller instead.
2019-11-06 14:27:46 +00:00
Justin Kim
e6847b6d29
srt: split incoming buffer up into srt chunk
2019-11-06 13:14:26 +00:00
Aaron Boxer
6d3429af34
documentation: fixed a heap o' typos
2019-11-05 09:11:25 -05:00
Tim-Philipp Müller
f218ec2794
Remove autotools build system
2019-10-14 13:54:27 +01:00
Olivier Crête
fa842f2156
srt: Set latency property on SRT socket
2019-08-27 22:31:50 +00:00
Olivier Crête
177f1f95e1
srt: Add sender side statistics
2019-08-27 22:31:50 +00:00
Olivier Crête
54dc0b5579
srtobject: Remove pointless GMainLoop
...
Just use srt's blocking epoll function and fix locking while we're at it.
2019-08-27 22:31:50 +00:00
Mathieu Duponchelle
42adb02a10
docstrings: port ulinks to markdown links
2019-08-23 20:14:12 +02:00
Olivier Crête
15f2cdd750
srt: Remove msg-size property
...
Remove the now unused property
2019-07-08 16:00:51 -04:00
Olivier Crête
42fa4cb2ad
srtsrc: Receive one frame per gstbuffer
...
Don't aggregate the received data, just receive it one packet at a
time. So it keeps the packetization boundaries
2019-07-08 16:00:51 -04:00
Nicolas Dufresne
1acd9c726a
srt: Fix listener crash if no URI is specified
2019-07-08 13:52:48 -04:00
Nicolas Dufresne
b06f7824e1
srt: Use macro instead of duplicating a default value
2019-07-08 13:52:48 -04:00
Nicolas Dufresne
e5b6622546
srt: Fix confusing typo in FIXME comment
...
SRT does not support IPv6, but the comment said IPv4 which was the
opposite of the following code.
2019-07-08 13:52:48 -04:00
Tim-Philipp Müller
7853700b50
meson: add more plugins to plugins list
...
Makes sure their path gets added to the uninstalled environment
and makes sure they get included in the docs.
2019-05-30 20:41:57 +02:00
Mathieu Duponchelle
da6afdec9c
doc: remove xml from comments
2019-05-29 22:58:08 +02:00
Mark Nauwelaerts
dd3a25b473
srt: set cancellation in locked section
...
... to avoid race with wait which uses it with 'flushing' flag state semantics.
2019-05-11 22:38:46 +00:00
Mark Nauwelaerts
dbab2f9498
srt: avoid srtsrc segfault upon downward state change
...
... when it has not yet been connected to.
Also, a condition variable is not a semaphore, so a lock/wait/unlock
sequence is inherently racy without any state checking. So switch to
a different lock and check the intended state.
2019-05-11 22:38:46 +00:00
Mark Nauwelaerts
cc11a7f9d7
srt: initialize list access within locked region
2019-05-11 22:38:46 +00:00
Mark Nauwelaerts
7aba64e19d
srt: post error when failing to start
...
... as appropriate for a subsequent state change failure
2019-04-21 17:17:14 +02:00
Mark Nauwelaerts
6d9398e87f
srt: downgrade regular message to log level
2019-04-21 16:47:30 +02:00
Tim-Philipp Müller
679fa2d200
srt: fix uri and string leaks
...
And simplify property getter to avoid unnecessary copy.
2019-03-08 01:18:39 +00:00
Aaron Boxer
b9f070f796
srtobject: check for null local address to avoid SIGSEV
2019-02-24 10:50:14 -05:00
Justin Kim
e8fd000af0
srt: re-enable passphrase
...
With refactoring, supporting passphrase was removed accidently.
This commit re-enables srt encryption and validates 'passphrase'
by checking the return value of 'srt_setsockopt'.
fix : #694
2019-02-11 23:40:02 +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
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
Seungha Yang
231524cbbc
srt: Allow the host name "localhost"
...
Add support "srt://localhost:port" style uri, and change the
default host to "localhost"
https://bugzilla.gnome.org/show_bug.cgi?id=796842
2018-07-30 16:53:52 -04:00
Seungha Yang
fa75487e98
srtclientsink: Fix SRT socket option setting
...
SRTClientSink is sender
https://bugzilla.gnome.org/show_bug.cgi?id=796842
2018-07-30 16:50:10 -04:00