689 Commits

Author SHA1 Message Date
Ingo Oppermann
7a4875f818
Promote core version in cluster about 2024-04-09 15:57:17 +02:00
Ingo Oppermann
3b11c84545
Remove /v1/about cluster API endpoint 2024-04-09 15:56:40 +02:00
Ingo Oppermann
487529c598
Expose general infos in cluster about, bump cluster API version to 2.0.0 2024-04-08 21:55:07 +02:00
Ingo Oppermann
29848ab9df
Enable cross compilation 2024-04-08 09:37:37 +02:00
Ingo Oppermann
7c3bc983a9
Rename lock for currentSize 2024-03-15 15:28:13 +01:00
Ingo Oppermann
91d07c6013
Replace memfs storage backend with a faster one 2024-03-15 14:48:32 +01:00
Ingo Oppermann
d14b0b9b13
Don't get always a new random string 2024-03-15 11:51:10 +01:00
Ingo Oppermann
76f79333c3
Fix typo in test name 2024-03-14 11:23:24 +01:00
Ingo Oppermann
e001f663b3
Rename RestreamHandler to ProcessHandler 2024-03-14 11:21:07 +01:00
Ingo Oppermann
a77edb8b78
Add concurrency benchmark for memfs 2024-03-14 11:19:16 +01:00
Ingo Oppermann
0e5c5f52c5
Add lock for accessing files map 2024-03-14 11:18:45 +01:00
Ingo Oppermann
709fb4ba85
Fix warning about unused param 2024-03-14 11:17:50 +01:00
Ingo Oppermann
f6bba7c571
Fix placeholder parsing 2024-03-14 11:15:10 +01:00
Ingo Oppermann
d716ff37cb
Fix potential panic when using random number generator concurrently 2024-03-13 16:34:33 +01:00
Ingo Oppermann
727c358921
Add filesystem access via cluster node 2024-03-13 15:11:20 +01:00
Ingo Oppermann
5ba18569e9
Use referrer host for remote 2024-03-11 14:47:09 +01:00
Ingo Oppermann
ebcde477eb
Update migration tool for ffmpeg version 6 2024-03-01 12:40:02 +01:00
Ingo Oppermann
4f4fb64279
Add migrating to ffmpeg 6 2024-03-01 12:21:50 +01:00
Ingo Oppermann
aaec24b898
Fix accessing RTMP stream without token or streamkey for anonymous users 2024-02-29 14:30:24 +01:00
Ingo Oppermann
2514feec23
Allow SRT v4 handshake clients 2024-02-12 14:42:49 +01:00
Ingo Oppermann
4410804a3b
URL decode streamid if encoded 2024-02-12 14:34:25 +01:00
Ingo Oppermann
ab66c37ded
Fix emitting log message if a non-existing resource should be played 2024-02-12 14:33:14 +01:00
Ingo Oppermann
cf5192977b
Fix extracting domain from path 2024-02-12 10:52:03 +01:00
Ingo Oppermann
de1818a6b0
Fix missing process data if process has been deleted meanwhile 2024-02-08 12:11:59 +01:00
Ingo Oppermann
88605a1f1e
Put child processes in their own session
The core can be gracefully shutdown by sending a SIGINT to its process.
However, this signal is also propagated to all child processes, i.e. the
forked ffmpeg processes. They will also be stopped and might reconnect.
This is not wanted. The core has to stop these processes.

The child process will now get their own session ID with setsid() before
replacing themselves with ffmpeg. This way they will not receive a SIGINT
that was meant only for the parent.
2023-12-12 21:29:12 +01:00
Ingo Oppermann
3af049785c
Reorder shutdown sequence 2023-12-12 21:26:59 +01:00
Ingo Oppermann
a330ea6e7f
Stop all processes in parallel for fast shutdown 2023-12-12 20:59:01 +01:00
Ingo Oppermann
74489775ca
Propagate avstream debug object as interface 2023-12-06 20:23:22 +01:00
Ingo Oppermann
910794d831
Ignore range request on m3u8 rewrite
If a m3u8 is requested with a range request and gets rewritten, e.g.
adding the sessionid, the announced content-range may not correspond
to the content-length. In this cases the range request is ignored
and the full m3u8 will be returned.
2023-12-06 14:30:42 +01:00
Ingo Oppermann
b43fd64dce
Fix test 2023-12-04 16:54:38 +01:00
Ingo Oppermann
68cb1b1bda
Allow negative persist interval in order to avoid collecting and storing session history 2023-12-04 16:18:07 +01:00
Ingo Oppermann
5d39620f6f
Parse out avstream debug infos 2023-12-01 12:08:56 +01:00
Ingo Oppermann
92f2f34688
Create only available fields in token 2023-11-29 10:32:47 +01:00
Ingo Oppermann
2c47ab77d2
Add missing implementation for GET /api/v3/cluster/fs/{storage} 2023-11-27 12:51:14 +01:00
Ingo Oppermann
a817cd37b4
Fix panic when reloading IAM policies 2023-11-27 12:03:27 +01:00
Ingo Oppermann
a651f6d58a
Bump version to 16.18.1 2023-11-20 20:59:21 +01:00
Ingo Oppermann
0457d16391
Fix return proper error message instead of empty m3u8 2023-11-16 11:39:00 +01:00
Ingo Oppermann
728e4c6ab4
Use unnamed return value 2023-11-16 11:37:03 +01:00
Ingo Oppermann
3d17c3f71a
Expose caller in events 2023-11-16 11:32:55 +01:00
Ingo Oppermann
8d63cafda0
Ignore self if in list of peers 2023-11-15 10:11:07 +01:00
Ingo Oppermann
0863d8b6ff
Bump version to 16.18.0 2023-11-13 16:48:43 +01:00
Ingo Oppermann
85204b1788
Fix session log loss if session closes before latest log file split 2023-11-02 20:23:25 +01:00
Ingo Oppermann
5b81e6e23f
Add metrics collector for HTTP status codes 2023-09-29 17:18:59 +02:00
Ingo Oppermann
40495e5ef0
Bump version to 16.17.0 2023-09-26 15:05:16 +02:00
Ingo Oppermann
a416beea08
Add stream mapping to process state, adjust addresses and indexes for HLS outputs 2023-09-26 14:52:54 +02:00
Ingo Oppermann
ab7c9e448b
Add parser for ffmpeg and HLS stream mapping 2023-09-26 11:40:48 +02:00
Ingo Oppermann
d2016fff70
Add extra session info for SRT 2023-09-21 16:06:27 +02:00
Ingo Oppermann
8653ceeba9
Add extra session info for RTMP 2023-09-21 15:50:35 +02:00
Ingo Oppermann
c7979efb07
Cancel SRT/RTMP session immediately on disconnect 2023-09-21 15:09:19 +02:00
Ingo Oppermann
477243a38e
Fix clean shutdown with docker kill
By using "docker kill" to stop the core it will bluntly stop the core. A
graceful shutdown will be be performed because it sends SIGKILL which
cannot be trapped.

The "docker kill --signal SIGINT" command should be used instead, but
this requires that the core is root process in the image. The run.sh
shell script process has to be replaced by the core process, otherwise
the SIGINT will not reach the core.
2023-09-21 14:01:28 +02:00