Commit graph

1610 commits

Author SHA1 Message Date
Thulinma
a7218bc2f8 Fixes for socket remote address 2022-01-23 00:00:03 +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
53698eaa49 Added SPS/PPS validation functions, RTP lib now only updates SPS/PPS when valid 2022-01-22 23:52:03 +01:00
Thulinma
6c66a4adb3 Fix AC3 codecstring 2022-01-13 10:10:55 +01:00
Thulinma
b3eb7443f9 Fixed TS input H265 keyframe detection 2021-12-24 15:09:46 +01:00
Thulinma
ad4c1abd0b Playlist support fixed 2021-12-24 15:09:36 +01:00
Marco van Dijk
684df4b23d Added utcoffset field to metadata to display VoD program time if supported by output 2021-11-24 13:09:11 +01:00
Marco van Dijk
19d7c9fe07 Added HLS DVR mode
Moved some duplicate code to seperate functions for readability
Fix EXT-X-PROGRAM-DATE-TIME tag for VoD
Set bootMSoffset for live DVR streams
Implemented readExistingHeader for HLS input
set zUTC time based on EXT-X-PROGRAM-DATE-TIME tag rather than guessing
2021-11-24 13:09:11 +01:00
Marco van Dijk
3d9ed39396 setstreamVodField and streamLiveField no longer mutually exclusive
Removed curPage map from IO. bufferFrame now creates this variable locally and passes it to bufferStart, bufferFinalize and bufferNext
Fix keyNum selection with mixed live & VoD data
Fix bufferframe to handle mixed VoD and live
Added check to bufferFrame to not start the countdown timer for removing live pages
Fixed countdown timer being set using keyNum rather than pageNumber, which resulted in the wrong pages being deleted
livePage variable moved from static to private variable to correctly handle multithreaded inputs

# Conflicts:
#	src/io.cpp
#	src/output/output.cpp
2021-11-22 15:38:58 +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
2ffd320316 JSON::Iter::remove() now resets the internal state back to the beginning of the iteration on the root JSON::Value object. 2021-10-19 22:29:42 +02:00
Thulinma
896b15380f Util::Procs::getOutputOf rewrite, now reads data while application is still running instead of waiting for it to exit first (prevents deadlock on boot with small pipe buffers) 2021-10-19 22:29:42 +02:00
Marco van Dijk
b37a431b41 Fix setting trackFirstmsFieldfirstMS using the correct value (and for live streams as well) 2021-10-19 22:29:42 +02:00
Marco
8b59c9abe7 Fix recstart/recstop parameters 2021-10-19 22:29:42 +02:00
Thulinma
76db36dfed Added v2 track selectors 2021-10-19 22:29:42 +02:00
Thulinma
9fc805700e CPU usage fix for URIReader::readAll 2021-10-19 22:29:42 +02:00
Thulinma
194b6e1388 HLS/HTTP fixes:
- Optimize URIReader class to not close connections if not needed
- reConnector now works for non-GET requests with GET params
- Chunk sending mode correctly kept for HLS
- Removed lots of H.Clean() from HLS that weren't needed
- Improved HTTP output class request handling logic
- Removed firstRun from HTTP output class; no longer needed
2021-10-19 22:29:42 +02:00
Thulinma
5774ce3b9e Fixed segfault in StartPiped when out of file descriptors 2021-10-19 22:29:42 +02:00
Thulinma
64ad0ad4a9 Added JSON::Value::append() which returns a reference to a newly appended element 2021-10-19 22:29:42 +02:00
Thulinma
7d95a75492 Moved inputBuffer::fillBufferDetails to DTSC::Meta::getHealthJSON 2021-10-19 22:29:42 +02:00
Thulinma
1f390561c2 Allow setting DISKSERIAL compile variable to lock build to specific HDD serial number 2021-10-19 22:29:42 +02:00
Thulinma
fe6a0777a5 Added socket lib strict mode spool, used in WebSocket::readFrame 2021-10-19 22:29:42 +02:00
Thulinma
98b10473a4 Added support for MIST_COLOR and MIST_LOG_SYSTEMD environment variables to affect logging 2021-10-19 22:29:42 +02:00
Thulinma
8be233ccb2 sharedPage::exists() function cleanup 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
0a3c399a98 Ensure key and page numbers are all 32 bits, robustify/fix packet handling internals 2021-10-19 22:29:42 +02:00
Thulinma
2a5a808107 WebRTC: Fixes to packet timing and loss statistics 2021-10-19 22:29:42 +02:00
Siddarth Tegginamani
5aa459f2c8 Bug fix: Added language information to meta data. 2021-10-19 22:29:42 +02:00
Thulinma
8cd0bff105 RTMP improvements for rollover behaviour 2021-10-19 22:29:42 +02:00
Thulinma
ed1d690610 Fix socket connect issue on interrupt 2021-10-19 22:29:42 +02:00
Thulinma
3d4a3852d8 Typo fix in DTSC lib 2021-10-19 22:29:42 +02:00
Thulinma
9953cd6ee2 Generic HTTP handler
# Conflicts:
#	src/output/output_mp4.cpp
#	src/output/output_mp4.h
2021-10-19 22:29:41 +02:00
Thulinma
6f6827607d Fixed TS stream parser not parsing last PES packet sometimes 2021-10-19 22:29:41 +02:00
Thulinma
209cd4c0fc Process system updates:
All processes:
- Added process status system and relevant API calls
- Added ability to set track masks for input/output in processes
- Added support for unmasking tracks when there is a push target, by the "unmask" parameter.
- Added track unmasking support for processes on exit/error
- Make processes start faster, if possible, in the first few seconds of a stream
- Delay stream ready state if there are processes attempting to start

Livepeer process updates:
- Added Content-Resolution header to MistProcLivepeer as per Livepeer's request
- Renamed transcode from "Mist Transcode" to source stream name
- Added ability to send audio to livepeer
- Robustified livepeer timing code, shutdown code, and improved GUI
- Prevent "audio keyframes" from starting segments in MistProcLivepeer
- Multithreaded (2 upload threads) livepeer process
- Stricter downloader/uploader timeout behaviour
- Robustness improvements
- Fix small segment size 😒
- Streamname correction
- Prevent getting stuck when transcoding multiple qualities and they are not equal length
- Corrected log message print error
- Race condition fix
- Now always waits for at least 1 video track
2021-10-19 22:29:41 +02:00
Thulinma
f88a8fc51c Downloader improvements:
- Added metrics to Downloader::post (only at HIGH level for successful requests)
- Improved downloader timing
- Robustness improvements
2021-10-19 22:29:41 +02:00
Thulinma
de0423a9da Fixed H264 analyser + H264 pretty printing improvements 2021-10-19 22:29:41 +02:00
Thulinma
0d956dca26 Improvements to MistUtilRAX 2021-10-19 22:29:41 +02:00
Thulinma
75642d6d73 Added dash to permissible characters in stream name 2021-10-19 22:29:41 +02:00
Thulinma
6b9e9d0c3b Made SSL sockets more silent 2021-10-19 22:29:41 +02:00
Thulinma
57ecca2db8 FLV library: improved video init data handling 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
586c4ab47b Fixed firstms field in live streams that don't start from 0 2021-10-19 22:29:41 +02:00
Thulinma
5a40225046 CMAF debug session 2021-02-04 2021-10-19 22:29:41 +02:00
Thulinma
4a3204cb1e SDP fix? 2021-10-19 22:29:41 +02:00
Thulinma
4080d141f8 Fix bug in Output::seek() when seeking to a timestamp that is between the last part of a key and the first part of the next key 2021-10-19 22:29:41 +02:00
Thulinma
63acbb1ddb Fixes for DTSC metadata handling 2021-10-19 22:29:41 +02:00
Thulinma
f862263354 Speed up MistInBuffer shutdown time 2021-10-19 22:29:41 +02:00
Thulinma
3baa8d1524 TS::Packet classes no longer rely on global PMT tracking 2021-10-19 22:29:41 +02:00