Commit graph

1577 commits

Author SHA1 Message Date
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
Balder
d63190387a Fixes to better support Safari/MacOS/iOS playback of MP4 output
Co-authored-by: Marco van Dijk <marco@stronk.rocks>
Co-authored-by: Thulinma <jaron@vietors.com>
2023-10-17 00:13:45 +02:00
Thulinma
7dbd60b208 Support limiting output range for most outputs and outgoing pushes 2023-10-17 00:13:45 +02: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
f3ba13d6bb Change controller calls that use stream metadata to instantly time out if unavailable, rather than waiting for availability 2023-08-31 15:39:20 +02:00
Marco
b0d4422d27 Added machine readable exit reasons, INPUT_END trigger, OUTPUT_END trigger, and updated RECORDING_END trigger to include all of these. 2023-08-23 10:55:53 +02:00
Thulinma
41cf557b48 TSSRT and TSRIST outputs in listen mode will now request not to be killed by the Comms library, since they handle multiple users 2023-07-24 10:37:42 +02:00
Thulinma
0ec2800894 Split out jitter timer to be one per metadata, clear out jitter data when clearing as well 2023-07-20 10:39:43 +02:00
Thulinma
a9abfa531e Support for AV1 MP4 input and output 2023-07-17 18:46:16 +02:00
Thulinma
8b8a28c4ec Added some HTTP parser unit tests, fixed HTTP support for zero content length, added gcovr file for coverage reports 2023-07-17 18:22:03 +02:00
Thulinma
9a599a06de Fix local file path writing 2023-07-17 18:17:35 +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
Marco van Dijk
e0eb624e53 Change "always on" behaviour to simulate always having viewers rather than forcibly keeping inputs active 2023-07-06 13:06:18 +02:00
Thulinma
b3a0e28159 Fix broken UTF-8/UTF-16 conversion in JSON library 2023-07-06 10:56:36 +02:00
Thulinma
b8caa9c398 Fix segfault when using a blank or extremely short source parameter 2023-06-19 17:29:40 +02:00
Thulinma
d7ec340d7e Fix local file targets when pushing to non-full-path 2023-06-19 17:25:08 +02:00
Thulinma
2a8f2f75d3 Implemented UDP socket packet send pacing, WebRTC now makes use of this new feature. 2023-06-15 12:34:25 +02:00
Thulinma
a1232d56af RTP library fixes and improvements.
- Fixes marker bit bug in H264 output over RTP-based protocols
- Fixes RTCP packets going over the wrong channel in TCP-based RTSP
- Fixes RTSP RTCP packets having wrong timestamps
- Fixes payload padding parser bug in H264, H265, VP8 and VP9 RTP-based inputs.
- Cleans up WebRTC's needless use of thisPacket.getTime() to use thisTime instead
2023-06-15 12:33:24 +02:00
Thulinma
132e59db51 Support for reloading config from disk, writing config to disk after 60 seconds of no changes, reloading config from disk on API call request 2023-06-12 11:47:28 +02:00
Thulinma
cac86fff57 Various small fixes to SRT sockets and SRT socket statistics 2023-06-08 17:31:39 +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
f29d48154f URIReader support for TS input 2023-04-10 15:13:20 +02:00
Thulinma
1df76eff16 URIReader optimizations/improvements, support for getHost/getBinHost functions, socket lib improvements + related improvements 2023-04-10 14:31:26 +02:00
Thulinma
4df771eb02 Optimization that allows Socket::Buffer to write directly to a Util::ResizeablePointer 2023-04-10 14:31:26 +02:00
Thulinma
364441c435 EBML input from S3 support 2023-04-10 14:31:26 +02:00
Thulinma
ff32a55ddd Tweaks to page load interval in input 2023-04-10 14:31:23 +02:00
Thulinma
d097273859 Fixes to downloader range requests, improvements to input bufferFrame code 2023-04-10 14:15:00 +02:00
Thulinma
c979acff52 Fixing all of the things. 😩 2023-04-10 14:15:00 +02:00
Thulinma
652835cedd HLS input improvements 2023-04-10 14:15:00 +02:00
Thulinma
d96524968d Send boot-up progress percentages to status websocket for HLS input 2023-04-10 14:15:00 +02:00
Thulinma
bf15ec6741 HTTP backport
Change-Id: Iaa33c15bbd19b000b0bc8c5389e95109938c2e48
2023-04-10 14:12:54 +02:00
Thulinma
5860719ec7 Remove Content-Length header when chunked reply is used, only close connection when Content-Length is unknown.
Change-Id: I12726fb8b08417f7e7b429f525ee2c7980f22375
2023-04-10 14:12:40 +02:00
Thulinma
696e04d6a0 Add support for dual-'?' params in RIST push outputs, fix a small memory leak in RIST output 2023-03-29 00:47:48 +02:00
Thulinma
2d4a2f5835 Fixed compiling with CMake 2023-03-16 14:31:27 +01:00
Thulinma
cc9aae7926 Ah yes, bug from 2018, a great vintage. 2023-03-16 14:19:27 +01:00
Thulinma
e9ea839996 32-bit fixes 2023-02-27 10:43:02 +01:00
Thulinma
dc0ec77f26 Improvements to FLAC library and analyser 2023-02-27 10:20:14 +01:00
Ramkoemar
a7183aedc5 FLAC support:
- FLAC container input and output support
- FLAC container analyser
- FLAC codec support in EBML input and output
2023-02-26 20:37:15 +01: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
Marco van Dijk
2b18a414b4 Added support for external writers 2023-02-22 13:25:42 +01:00
Thulinma
ff36880cc8 Fixes to urltest binary, added and tweaked tests for 100% coverage of URL library (fixed a few URL library bugs in the process, too)
Change-Id: I24a1f014cb21b8ec0062ee79e3e6ba717b392496
2023-02-17 03:38:20 +01:00
Marco van Dijk
211d9eac30 Various fixes to generic segmenter code
Segmenter: when using the external writer, do not re-open a playlist to adjust the target duration
Segmenter: edit comments and fix logic for opening the playlist with streams which are live and vod at the same time
Segmenter: fix init of playlist data when using an external writer
2023-02-17 03:38:20 +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
ea25d4b74b Scheduled Pushes
Change-Id: I3d3a75f4a45d96e6a7849b14634caedd0899ac69
2023-02-09 17:51:45 +01:00
Cat
c66d236e58 LSP: updates to push parameters
Includes:
 - new buildUI element option 'postSave'
 - new buildUI element option 'prefix'
 - validation 'track_selector_parameter' and 'track_selector' in convertBuildOptions now expand help text
 - new element option 'disable' in convertBuildOptions
 - new element type 'bool' in convertBuildOptions (equals checkbox)
 - new element type 'unixtime' in convertBuildOptions
 - new element option 'format' in convertBuildOptions
 - UI for scheduling automated pushes based on variables
 - MistServer: sorting of capabilities.push_parameters
 - Prevent an empty (null) variable_list to break adding automatic pushes
 - automatic push config: start and stop if conditions
 - Fix LSP to hide endVariableValue on boolean expression
 - Remove references to current evaluation in LSP
 - Also remove the start variable requirement from the frontend
 - allow endVariabbles without startVariables, bugfix variable value hint
 - push target url parameters: dump 'leftover' params in a custom params field; added customizable inputlist inputs
 - autopushes: when the variable settings are not set, they are '', not 0. Also trigger onchange of comparison operator fields when the edit page loads so the variable value fields are shown or hidden properly.
 - autopush tab onchange maar nu goed (?) fixup pl0x
 - autopush: there's fun and joy in making Jaron do multiple fixups
 - autopush tab: not my fault Balder asks one change at a time D:
2023-02-09 13:18:32 +01:00
Thulinma
c7211b23c1 Added (mostly) complete capabilities for push parameters 2023-02-09 13:14:20 +01:00
Marco van Dijk
97d24f75e4 Custom variables support
Change-Id: Ia847a868d1803dc80fdb8a627d57bba571cdee64
2023-02-09 12:49:01 +01:00
Marco van Dijk
00d9b66602 Add UTC string parsing functions
Change-Id: I51cbb2274e26811d28b303375ff75a32e272adcc
2023-01-24 01:53:27 +01:00