Commit graph

146 commits

Author SHA1 Message Date
Thulinma
729b75ac2a Fix segfault when using a blank or extremely short source parameter with external writer 2024-07-15 11:47:26 +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
Thulinma
6bec4066a9 Added stream tagging support 2023-12-20 15:42:27 +01:00
Thulinma
3e2a17ff93 Various metadata-related features and improvements:
- Added support for new "NowMs" field that holds up to where no new packets are guaranteed to show up, in order to lower latency.
- Added support for JSON tracks over all TS-based protocols (input and output)
- Added support for AMF metadata conversion to JSON (RTMP/FLV input)
- Fixed MP4 input subtitle tracks
- Generalized websocket-based outputs to all support the same commands and run the same core logic
- Added new "JSONLine" protocol that allows for generic direct line-by-line ingest of subtitles and/or JSON metadata tracks over a TCP socket or console standard input.
2023-09-26 17:10:23 +02:00
Thulinma
a9abfa531e Support for AV1 MP4 input and output 2023-07-17 18:46:16 +02:00
Thulinma
b7d5964512 Keep capabilities and protocol config around after close, retry opening pages for ~50ms, no longer warn in save situations of SHM re-use 2023-07-17 18:10:23 +02:00
Thulinma
b8caa9c398 Fix segfault when using a blank or extremely short source parameter 2023-06-19 17:29:40 +02:00
Thulinma
0af85de22d UDP API port is now stored in and read from global config 2023-05-01 15:21:10 +02:00
Thulinma
a784b63f36 Added "bframes" stream selector 2023-04-13 10:09:14 +02:00
Thulinma
d96524968d Send boot-up progress percentages to status websocket for HLS input 2023-04-10 14:15:00 +02:00
Thulinma
0f692233e8 Generalize DTSH header reading and writing; generalize input override prefixes; support external writer targets for pushing 2023-02-22 13:27:09 +01:00
Thulinma
d9f5c2ca6d Fix/improve stream variables
Change-Id: I184aca32ff4ac25b946c949fb2db2dd2200694e9
2023-02-15 10:01:35 +01:00
Marco van Dijk
b93901e107 Don't insert a dollar sign for custom variables replacement
Change-Id: Ib62e65cc1e9634a1e93300f91adf85c9dad66194
2023-02-10 14:44:58 +01:00
Marco van Dijk
97d24f75e4 Custom variables support
Change-Id: Ia847a868d1803dc80fdb8a627d57bba571cdee64
2023-02-09 12:49:01 +01:00
Marco
62b14d958d Moved string replace function from stream library to util library
Change-Id: Icea1eed11b241063af39d0c7cf23f1733f96012c
2023-01-24 01:40:41 +01:00
Thulinma
4181b52857 Silence more compile warnings, fix compilation on MacOS 2022-10-27 14:50:38 +02:00
Thulinma
267a74f0f6 Fix track selector logic when multiple selections are considered 2022-08-08 11:00:39 +02:00
Thulinma
d2d12bc908 Options that are blank or zero but do not default to that value, now work. 2022-06-01 15:58:54 +02:00
Thulinma
f560b88bfe Several fixes:
- Fixed bug in stream health function causing loop if track not active
- Fixed DTSC pulls ignoring data before the live point
- Improved async buffers (deque mode) to spread the tracks more fairly
- DTSC pull now implements "ping" and "error" commands
- DTSC pulls report suspicious keyframe intervals to the origin and ask for confirmation
- DTSC output now accepts these reports and disconnects if there is no match in keyframe intervals
- Outputs in async mode now keep the seek point in all tracks when reselecting
- Outputs in async mode now default to a starting position in each track that is at a keyframe roughly halfway in the buffer
- Outputs in async mode now ignore playback rate (always fastest possible)
- Removed code duplication in prepareNext function
- Reordered the prepareNext function somewhat to be easier to follow for humans
- DTSC output no longer overrides initialSeek function, now uses default implementation
- Sanitycheck output now supports both sync and async modes, supports printing multiple timestamps for multiple tracks
2022-01-23 00:03:54 +01:00
Thulinma
200e1e4a1c WS/MP4 reliability edits:
- Stream selecting now obeys new "maxdelay" capa entry
- Output::liveSeek now takes an optional bool argument to indicate only rate control should be applied (no seeking)
- dataWaitTimeout is now configurable per-output, defaults to the old 25s
- WS/MP4 uses the new liveSeek with rate-control only
- WS/MP4 uses the new dataWaitTimeout and sets it to 4.5s
- WS/MP4 uses the new maxdelay capa, sets it to 5s
- WS/MP4 will now auto-reselect tracks if a track is dropped for data wait timeout or disappeared from metadata reasons
- Added support for jitter information in WS/MP4 protocol
- Robustify sendWebsocketCodecData being ran when sendHeader is ran
- Fix race condition when switching video tracks before previous video track has sent a single frame
2022-01-22 23:59:09 +01:00
Thulinma
6c66a4adb3 Fix AC3 codecstring 2022-01-13 10:10:55 +01:00
Thulinma
6733bf2a20 Fixed all ARM-related issues/warnings/etc 2021-11-04 18:49:27 +01:00
Thulinma
dae32ede11 Added Util::packetSorter with async/sync modes, set DTSC outputs to use async mode 2021-11-03 14:15:52 +01:00
Thulinma
6042c1ea70 Added per-protocol default track sorting option 2021-11-03 14:15:46 +01:00
Thulinma
76db36dfed Added v2 track selectors 2021-10-19 22:29:42 +02:00
Thulinma
f8dc1261e9 Added max<XXbps track selector that picks the highest under a specific bitrate. 2021-10-19 22:29:42 +02:00
Thulinma
75642d6d73 Added dash to permissible characters in stream name 2021-10-19 22:29:41 +02:00
Thulinma
6276d03522 Fixed track switching mid-stream, improved clarity of related debug messages 2021-10-19 22:29:41 +02:00
Thulinma
ffcc2b3473 Added mono/stereo/surround/Xch track selectors for audio tracks 2021-10-19 22:29:41 +02:00
Thulinma
3d26741148 Socket library and Config library restructuring, improvement to UDP socket reliability 2021-10-19 22:29:41 +02:00
Thulinma
0af992d405 Various fixes, among which:
- Fixed segfault when attempting to initialseek on disconnected streams
- Fix 100% CPU bug in controller's stats code
- WebRTC UDP bind socket improvements
- Several segfault fixes
- Increased packet reordering buffer size from 30 to 150 packets
- Tweaks to default output/buffer behaviour for incoming pushes
- Added message for load balancer checks
- Fixed HLS content type
- Stats fixes
- Exit reason fixes
- Fixed socket IP address detection
- Fixed non-string arguments for stream settings
- Added caching for getConnectedBinHost()
- Added WebRTC playback rate control
- Added/completed VP8/VP9 support to WebRTC/RTSP
- Added live seek option to WebRTC
- Fixed seek to exactly newest timestamp
- Fixed HLS input

# Conflicts:
#	lib/defines.h
#	src/input/input.cpp
2021-10-19 22:29:40 +02:00
Phencys
2b99f2f5ea New Meta commit 2021-10-19 22:29:40 +02:00
DDVTech
fccf66fba2 Restyle 2021-10-19 22:29:40 +02:00
Thulinma
a11a6f1b4a Added mono/stereo/surround/Xch track selectors for audio tracks 2020-10-16 14:48:08 +02:00
Thulinma
52a10eaea7 Decreased trigger verbosity, fixed RTMP_PUSH_REWRITE and PUSH_OUT_START triggers not properly ignoring response when ran in non-blocking mode. 2020-09-24 16:06:56 +02:00
Thulinma
c2ecab2e6b Fix mac compile 2020-09-22 14:36:09 +02:00
Thulinma
606fce296a Merge branch 'development' into LTS_development
# Conflicts:
#	lib/stream.cpp
2020-02-12 11:55:56 +01:00
Thulinma
3736d28eed Fix for correctly passing stream configuration options to MistIn processes 2020-02-12 11:11:19 +01:00
Thulinma
ead45b4fb8 Fixes to playlist support 2020-01-23 13:43:55 +01:00
Thulinma
7beea43d31 Added basic stream fallback feature, allowing to redirect to a different stream name on stream source load errors 2020-01-23 13:43:31 +01:00
Thulinma
6e125707f1 Added $wday, $yday and $week variables 2020-01-23 13:43:04 +01:00
Thulinma
a2e2ddae1e Backport of 3.0 stream selectors 2019-11-27 10:27:14 +01:00
Thulinma
c64160f4d8 Merge branch 'development' into LTS_development 2019-11-27 10:26:41 +01:00
Thulinma
9a1b4fb872 Fixed support for inputs with URL parameters 2019-11-27 10:25:58 +01:00
Thulinma
7bffdfe644 Added global configuration mechanism and defaultStream support 2019-10-31 11:19:54 +01:00
Thulinma
5be878bea5 Added support for precise splitting of pushes to disk (i.e. recording) with re-variable-ized target strings at each split 2019-09-30 16:28:10 +02:00
Thulinma
3c3489e7eb Merge branch 'development' into LTS_development
# Conflicts:
#	src/output/output_progressive_mp4.cpp
2019-06-25 14:30:27 +02:00
Thulinma
4fcae749da Improved blacklisting/whitelisting code + MP3 in MP4 output blacklist for Trident browsers under Windows 7 and lower 2019-06-25 14:29:55 +02:00
Thulinma
b2bcef16c9 Merge branch 'development' into LTS_development 2019-05-15 09:19:11 +02:00
Thulinma
4c324c1b19 Fixed semaphore problems on MacOS 2019-05-15 09:15:34 +02:00