Edward Hervey
4a41f6f3fe
srt: Don't attempt to reconnect on authentication failures
...
This is a fatal issue which can't be recovered
Fixes https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/1550
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7797 >
2024-10-30 19:14:35 +00:00
Francisco Javier Velázquez-García
7473d6a510
srtsink: Add guard for null error when SRT open fails
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7687 >
2024-10-18 21:42:46 +00:00
Francisco Javier Velázquez-García
c3776ad621
srtsink: Register SRT listen callback before binding socket
...
This change https://github.com/Haivision/srt/pull/2683 forces us to
call `srt_listen_callback` before `srt_listen`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7687 >
2024-10-18 21:42:46 +00:00
Chris Spoelstra
63196c2ae7
srtsrc: fix case fallthrough of authentication param
...
Add missing breaks to two case statements.
Also adds a missing lock of srtobject->element when getting the value
of PROP_AUTHENTICATION.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/7127 >
2024-07-02 17:07:24 +01:00
Jonas K Danielsson
87ab5adf7e
meson: srt: make sure srt_dep is defined
...
Without this we will get errors when we try to build with srt disabled.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/6082 >
2024-02-09 17:45:29 +00:00
Jonas K Danielsson
e7ae5f0995
srt: Add more fields to application/x-srt-statistics
...
In order to see how many packets where retransmitted and how many was
dropped we add some new fields.
Please see https://github.com/Haivision/srt/blob/master/docs/API/statistics.md
For details about the new fields.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5322 >
2024-02-02 13:57:26 +00:00
Jan Alexander Steffens (heftig)
c9c7581c4e
srt: Set SRTO_IPV6ONLY to 0 by default
...
Since SRT 1.5.2 this option must be explicitly set to `0` or `1` before
binding to `::`, or binding will fail.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5157 >
2023-08-08 14:12:19 +00:00
Jan Alexander Steffens (heftig)
565f9d18ae
srt: Always format reject reason code
...
`srt_rejectreason_str` doesn't give us a unique string for every
possible reason. Peers can define their own reasons and SRT just gives
us the string `"Application-defined rejection reason"` for all of them.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4948 >
2023-07-02 13:36:42 +00:00
Guillaume Desmottes
5a7ed3c89d
srt: assert instead of segfault when passing no error to ERROR_TO_WARNING
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4524 >
2023-05-02 21:01:45 +00:00
Guillaume Desmottes
3a5510f61c
srt: fix segfault if send_headers() failed
...
The error handling code was assuming that 'internal_error' was set,
while we were passing the caller GError.
The internal error is already propagated to the caller later on.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4524 >
2023-05-02 21:01:45 +00:00
Thibault Saunier
6e305a471f
meson: Add CameraBin and Va girs
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4479 >
2023-04-25 02:57:55 +00:00
Mathieu Duponchelle
6c25caa572
docs: mark GstSRTSink and GstSRTSrc as plugin API
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4408 >
2023-04-13 21:46:59 +00:00
Jan Alexander Steffens (heftig)
c533010e20
srt: Use g_cancellable_get_fd for poll cancellation
...
Removing sockets from the epoll for cancellation is unreliable and might
not be thread-safe. Rather, have SRT watch a FD from the cancellable if
available. Keep the cancellable cancelled while we're not open.
Use the regular single-socket `sock` and `poll_id` fields for the
listening thread instead of duplicating them.
Before polling we need to check the socket state. SRT closes broken
sockets by itself and when the epoll contains our cancellation FD it can
no longer be empty, which was an error before.
Treat more failures in the read and write operations as an opportunity
to try a reconnect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4087 >
2023-03-02 15:39:25 +00:00
Jan Alexander Steffens (heftig)
3f75836822
srt: Move cancellable into srtobject
...
Should produce no difference in behavior.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4087 >
2023-03-02 15:39:25 +00:00
Jan Alexander Steffens (heftig)
4cede7c472
srt: Set default poll-timeout to one second
...
Removing a socket from the poll is not a guaranteed unlock. If we let
the poll continue indefinitely, then e.g. an unfed srtsrc can deadlock
when we try to shut it down.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4087 >
2023-03-02 15:39:25 +00:00
Jan Alexander Steffens (heftig)
d2202f516a
srt: Consider EPOLLEMPTY an error when not unlocking
...
Seems that SRT can remove the socket from the poll by itself when the
connection gets closed. Consider this an error condition and ensure we
only "abort successfully" when we're actually trying to unlock.
Needs more investigation but this is enough to prevent the element from
getting stuck not reporting an error.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4087 >
2023-03-02 15:39:25 +00:00
Olivier Crête
f45cfe0d53
srt: Avoid crash on unknown option
...
Use the correct field that is null instead of the struct value which
never is.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3672 >
2023-01-04 02:45:51 +00:00
Jan Alexander Steffens (heftig)
28628a67e5
srt: Add a property to disable automatic reconnect
...
This adds a new boolean property `auto-reconnect`, defaulting to `true`.
Setting it to `false` makes the elements (in caller mode) immediately
report an error to the application instead of trying to reconnect.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3326 >
2022-11-07 22:23:02 +00:00
Jan Alexander Steffens (heftig)
424b331afc
srt: Remove callers for which srt_bstats fails
...
This keeps them from accumulating in the element and in the stats while
the sink is not being fed, as long as we at least periodically grab
stats.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
d575a41145
srt: Use simpler list operations for callers
...
Avoid `g_list_append` and `g_list_remove` (which have to scan the list)
and replace them with `g_list_prepend` and `g_list_delete_link`.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
3c23c16f40
srt: Clean up poll/sock lifecycle
...
Make sure `srtobject->poll_id` is never invalid as long as `srtobject`
exists. Only remove our caller socket from it when the socket becomes
invalid.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
4e05100e8c
srt: Clean up error handling
...
- Make the srt_epoll_wait loops more uniform.
- Error only via GError when possible; let the element send the error
message. Avoids a second error message.
- Return 0 when cancelled. Avoids an error message from the element.
- Don't send an error message from send_headers when we're a server
sink.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
a3cc5cf257
srt: Simplify socket stats
...
Don't hide stats depending on whether we're a sending or receiving
socket. While we're here, add some more debug logs.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Jan Alexander Steffens (heftig)
b6974b6afc
srt: Replace stats accumulation with naive byte counting
...
srt_bstats cannot be used to get the stats of closed connections, so the
best we can do is keep the running count ourselves.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3156 >
2022-11-04 13:07:34 +00:00
Thibault Saunier
6a4425e46a
meson: Call pkgconfig.generate in the loop where we declare plugins dependencies
...
Removing some copy pasted code
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2970 >
2022-09-01 21:17:35 +00:00
Stéphane Cerveau
19972b8153
srtsrc: add "keep-listening" property to avoid EOS on disconnect
...
The property 'keep-listening' avoids EOS
when the remote client disconnects.
It can be useful to a keep a pipeline alive
when the srt connection drops remotely.
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Stéphane Cerveau
eb1f21b484
srtsrc: remove dead code
...
Remove code useless since
132e3a1af9
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/967 >
2022-06-15 20:35:14 +00:00
Jan Alexander Steffens (heftig)
df403df2ca
srt: Plug leak of headers
...
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1040 >
2021-10-19 07:19:41 +00:00
Thibault Saunier
019971a3c7
Move files from gst-plugins-bad into the "subprojects/gst-plugins-bad/" subdir
2021-09-24 16:14:36 -03:00