Commit graph

5150 commits

Author SHA1 Message Date
Thulinma
a4828c087d Prevent 100% CPU usage when no packet is available and we're inserting ghost packets repeatedly. 2024-06-26 17:24:33 +02:00
Thulinma
320ed53212 Fix DTSC pull output key mismatch errors, fix not starting at keyframes 2024-06-10 15:46:11 +02:00
Thulinma
f3803aeceb Added check for failure to open metadata in DTSC pull input.
Change-Id: I690d12bd458afc1efef64f34ab2513f0f338e6a0
2024-06-10 15:46:05 +02:00
Thulinma
a84e1ef4b4 Fix segfault when target for a push is smaller than the smallest extension
Change-Id: Ifbfb89828030f72b05f919265c4dc57f1ed32325
2024-06-10 15:44:50 +02:00
Marco van Dijk
41039483d3 (Hopefully) fix output segfaults on full shared memory page 2024-06-10 15:44:43 +02:00
Eli Mallon
20812842b9 Fix --maxkeepaway option, add to DTSC input as well 2024-06-10 15:43:26 +02:00
Cat
5ecbc8676f Embed: webrtc: removed typo in player.webrtc.stop function
Was in there for 5 months, bad kitty
2024-06-05 11:22:53 +02:00
Thulinma
b103353cf9 Improve WebRTC things, fix CPU usage 2024-05-23 13:50:52 +02:00
Alex Henrie
bdab107011 Delete jwplayer.js
This file is not currently used and moreover its license does not allow
commerical use.

https://github.com/jwplayer/jwplayer/blob/master/LICENSE
2024-05-16 17:42:32 +02:00
Alex Henrie
ea47e19129 Fix spelling mistakes identified by Lintian
Co-authored-by: Thulinma <jaron@vietors.com>
2024-05-16 17:28:03 +02:00
Alex Henrie
a1fbb9e186 Allow any RTP/AVP payload type to be dynamically assigned
The Bosch FLEXIDOME 4000i camera sets the RTP payload type to 35 for
H264, which causes MistServer to output "FAIL: Payload type 35 not
supported!"

The camera probably uses 35 for H264 because the ATSC standard requires
it. A/153 Part 7 states: [1]

> In addition, for RTP packets that carry AVC video elementary stream,
> the payload_type field in the RTP header shall have value 35.

The camera also sends "a=rtpmap:35 H264/90000" to explicitly map the
value 35 to H264. This is perfectly valid; although payload types 96
through 127 are recommended for dynamic use, the RTP protocol allows any
AVP payload type to be dynamically reassigned. The relevant section of
RFC 3551 states: [2]

> This profile reserves payload type numbers in the range 96-127
> exclusively for dynamic assignment.  Applications SHOULD first use
> values in this range for dynamic payload types.  Those applications
> which need to define more than 32 dynamic payload types MAY bind
> codes below 96, in which case it is RECOMMENDED that unassigned
> payload type numbers be used first.  However, the statically assigned
> payload types are default bindings and MAY be dynamically bound to
> new encodings if needed.  Redefining payload types below 96 may cause
> incorrect operation if an attempt is made to join a session without
> obtaining session description information that defines the dynamic
> payload types.

If the payload type is not recognized, assume that an rtpmap line will
follow that defines it. If in the end there is no rtpmap line, error out
in the same way whether the payload type is between 96 and 127 inclusive
or whether it is outside of that range.

[1] https://prdatsc.wpenginepowered.com/wp-content/uploads/2021/04/A153-Part-7-2012.pdf#page=14
[2] https://datatracker.ietf.org/doc/html/rfc3551#page-6
2024-05-16 16:39:13 +02:00
Thulinma
4e2d95961f Fix JPG compile after rebase 2024-05-16 16:19:15 +02:00
Eli Mallon
e324c2ee58 refactor: capitalize Input classes, rename srt to subrip in source as well
Co-authored-by: Thulinma <jaron@vietors.com>
2024-05-16 16:07:49 +02:00
Thulinma
dbafa808b8 Fix Cygwin compilation:
- Fix various incompatibilities and differences between Linux and Cygwin builds
- Make usrsctp an optional dependency
- Fix building without SSL
- Add new secure random bytes function, use it for websockets
- Switch to libsrtp2 v2.6.0 (currently latest release)
- Add patch that makes latest libsrtp2 build in latest Cygwin
- Add patch that makes srt build in latest Cygwin
- Correctly allow linking libsrtp2 and srt to local mbedtls version
2024-04-25 12:44:38 +02:00
Thulinma
db30be38c5 Fix header includes to be a bit more consistent 2024-04-25 12:44:38 +02:00
Cat
67aec0b1b6 Embed: webrtc metadatasocket: fixed race condition if metadata isn't immediately activated 2024-04-25 10:07:42 +02:00
Cat
72bc25cef0 Support for WebRTC data tracks in the player 2024-02-22 17:45:47 +01:00
Gijs Peskens
ebe783666f Support for upstream mbedtls versions 2 and 3 when compiled with SRTP support
Co-authored-by: Thulinma <jaron@vietors.com>
2024-02-22 17:45:47 +01:00
Thulinma
3987cfec3f Support for WebRTC data tracks (output only, for now), rewrite of dTLS integration (now part of socket lib), support for multi-path WebRTC connections 2024-02-22 17:45:44 +01:00
Thulinma
56193f89b1 Fix memory leak in RTMP receiver code 🤦‍♂️ 2024-01-15 15:22:44 +01:00
Thulinma
6bec4066a9 Added stream tagging support 2023-12-20 15:42:27 +01:00
Thulinma
4d50364703 Updated README.md with meson compile instructions and new documentation URL 2023-12-20 11:35:13 +01:00
Thulinma
67ce3b1a17 Enable updater for public builds 2023-12-20 11:24:12 +01:00
Cat
ca5eba2e92 Embed: unixoffset: display negative timeoffset when <48h in the seekbar, <12h on the currentTime counter and use the same time formatting for the full seekbar 2023-12-16 00:27:14 +01:00
Thulinma
720f4b5d05 Added configurable input timeout for all inputs 2023-12-14 12:53:19 +01:00
Cat
72ce091f67 Embed: added button for html5 picture-in-picture-mode 2023-12-14 12:42:25 +01:00
Cat
564de0ef12 Embed: chromecast 2023-12-14 12:37:05 +01:00
Thulinma
a3521a992d LSP: Edit stream: settings that aren't compatible with the input are now sanitized before submitting 2023-12-14 09:51:39 +01:00
Balder
1873e0ea38 added missing | character to track selector text 2023-12-13 17:04:27 +01:00
Thulinma
ac58015e02 Added Meta::packetTimeToUnixMs, fixed datetimes in m3u8 recordings 2023-12-13 16:00:31 +01:00
Marco van Dijk
3fb92a01d3 TSSRT: fixes to timestamp rewriting 2023-12-13 16:00:24 +01:00
Marco van Dijk
d2d4b0acbe Segmenter: added noendlist url param to omit the ENDLIST tag 2023-12-13 16:00:18 +01:00
Cat
0ad88e80b3 LSP: for new streams, if the input is TSSRT or TSRIST, put always_on true by default 2023-12-13 13:04:45 +01:00
Balder
ec757f48e9 Added some missing capabilities to SRT
Attempted to fix SRT push & embed links.
Push works, embed needs help

Changed capa to say UDP port as it is binding UDP

added methods to dtsc for output. added webrtc whip as input push url

added url_rel to DTSC

added "/" to the always_match and source_match for SDP and playlist to match with other protocols

updated Playlist to have source/always_match as array.
Noticed "variables_match" which is unused, what to do with it?

fix typo in -h controller text
2023-12-13 13:04:44 +01:00
Marco van Dijk
d040421df9 WHIP: packet pacing fixup for WHIP/WHEP output 2023-12-13 12:58:13 +01:00
Balder
cb2c63db61 Changed SRT output default to select all tracks 2023-11-29 16:49:10 +01:00
Thulinma
7cdd58b19f MP4 analyser now supports packet data printing/parsing 2023-11-27 15:02:12 +01:00
Thulinma
16e22eadbe WebRTC websocket implementation now uses generalized base version, removed unused code from MP4 output 2023-11-27 15:02:12 +01:00
Thulinma
b9819eb40f MistInHLS improvements and speedups, part 4/2 2023-11-27 15:02:12 +01:00
Marco van Dijk
382e1eec03 MistInHLS improvements and speedups, part 3/2 2023-11-27 15:02:12 +01:00
Thulinma
26746c139d Fix buffer behaviour after changes for MistInHLS 2023-11-27 14:18:16 +01:00
Marco van Dijk
9e30444476 MistInHLS improvements and speedups, part 2/2 2023-10-23 14:21:45 +02:00
Thulinma
ed1c291955 MistInHLS improvements and speedups, part 1/2 2023-10-19 00:07:27 +02:00
Thulinma
b7c6815e4f Working MP4 push output 2023-10-17 00:13:45 +02:00
Thulinma
9b83002e69 Fixes to WebRTC capa 2023-10-17 00:13:45 +02:00
Thulinma
4d3f86aec1 Fixes to MistOutSanityCheck utility 2023-10-17 00:13:45 +02:00
Balder
431d03c733 Fix VoD seek timing issues introduced with getNowms feature 2023-10-17 00:13:45 +02:00
Marco van Dijk
5af441d16b Fixes for segfaults when the connection to the metadata gets lost
Set stream RelAccx pages to null pointers if we cannot reload those pages
2023-10-17 00:13:45 +02:00
Thulinma
b61aab8719 Speedups to output code in general and MP4 in particular 2023-10-17 00:13:45 +02:00
Balder
f384a69b71 have default segment size be used for buffer, dtsc and ts inputs 2023-10-17 00:13:45 +02:00