Commit graph

528 commits

Author SHA1 Message Date
Thulinma
2870ae1ced SRT RAW fixup 🤦 2022-08-25 11:27:55 +02:00
Thulinma
01a2ff54ed Converted MP4 input to use URIReader 2022-08-18 16:11:34 +02:00
Thulinma
747438746c Change VoD data page logic to use wallclock seconds rather than loop iterations for timeouts 2022-08-18 16:11:24 +02:00
Thulinma
44c2809733 Decreased verbosity of harmless data offset warnings, increased verbosity of harmful ones 2022-08-18 16:11:00 +02:00
Phencys
3734c90544 Added support for raw passthrough of MPEG2-TS data 2022-08-08 11:00:39 +02:00
Thulinma
fffe98804c Fixed TS SRT input not closing the connection when stopping for internal reasons rather than external reasons 2022-08-08 11:00:29 +02:00
Thulinma
5bdd4a416e Fix load balancer CPU usage 2022-08-08 10:57:37 +02:00
Matthew James
0430a644df Enable Parameters on TSSRT listener 2022-07-25 13:40:13 +02:00
Thulinma
1c6a483e49 Fix 32-bit compilation 2022-06-24 23:50:02 +02:00
Thulinma
9ba92823bb Updated AAC input 2022-06-23 12:06:34 +02:00
Thulinma
2cd990888f Compile fix for AAC input 2022-06-16 16:48:11 +02:00
Marco
e961d71c16 AAC input 2022-06-16 16:13:27 +02:00
Katri
12246581e6 Added close socket and clean buffer to Downloader URIReader and InputHLS 2022-06-16 16:00:46 +02:00
Thulinma
7aa105748f Fix SRT input 2022-06-01 15:59:37 +02:00
Thulinma
d22604c53a Added TS RIST input 2022-06-01 15:58:37 +02:00
Thulinma
d6bd9bee46 Live stream inputs now track buffer status 2022-06-01 15:58:17 +02:00
Thulinma
e73726a1c7 Simplified TS-SRT input to no longer add/remove a temporary track 2022-06-01 15:56:57 +02:00
Marco
3e73508a6a Added SDP input 2022-02-21 15:51:09 +01:00
Thulinma
431c06e4cd Fixed MP4 VoD input 2022-02-09 15:49:12 +01:00
Siddarth Tegginamani
4a866305e5 DTSC pull input now supports keeping stream UTC offset intact between servers, plus a local fallback calculation for older versions 2022-02-03 13:11:17 +01:00
Thulinma
9fd48f6e2f Fix EBML input for live streams 2022-01-24 14:30:06 +01:00
Thulinma
a5bdaaaa5c Added mkv-exec input and output support 2022-01-24 10:47:47 +01:00
Thulinma
0de5ebfbf3 Fixed TS input disconnect by controller 2022-01-23 00:16:49 +01: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
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
Balder
c542155e10 added fallbackstream to tsudp input 2021-11-22 11:44:44 +01:00
Thulinma
6733bf2a20 Fixed all ARM-related issues/warnings/etc 2021-11-04 18:49:27 +01:00
Marco van Dijk
01f11dcfda HLS input improvements:
- Added isOpen flag to the SegmentDownloader, so that we do not parse the data remaining from parseStreamHeader
- In inputHLS::firstSegment, use streamIsLive to determine vod vs live, rather than the size of userSelect
- Replaced check against 'smaller than zero', which always fails due to overflow of unsigned int
- Added print before downloading main playlist
2021-11-01 16:39:09 +01:00
Thulinma
aa77d86df1 Have MistInTS set the BootMsOffset correctly for live inputs 2021-10-20 13:41:20 +02:00
Thulinma
7d95a75492 Moved inputBuffer::fillBufferDetails to DTSC::Meta::getHealthJSON 2021-10-19 22:29:42 +02:00
Thulinma
829c8b7948 Fixed buffer not considering all processes running if there is no stream config. 2021-10-19 22:29:42 +02:00
Thulinma
ad9e72798a Increase VoD lookahead from 20 to 120 seconds 2021-10-19 22:29:42 +02:00
Thulinma
7067e9ae52 Change debugging level for part size checks from WARN to INFO 2021-10-19 22:29:42 +02:00
Thulinma
616c92eaa5 Improved exit reason logging in Mist::Input
# Conflicts:
#	src/input/input.cpp
2021-10-19 22:29:42 +02:00
Thulinma
5a53701a88 Fixed no-bframes MKV input unnecessarily delaying the stream by 16 frames every keyframe 2021-10-19 22:29:42 +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
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
dd5ae98002 Fix -1 since last update error in Buffer 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
9f2fe22074 Fixed buffer disconnecting pushed inputs if they shared a PID with a viewer that disconnected 2021-10-19 22:29:41 +02:00
Thulinma
7423868de4 Made Util::streamName and exitReason thread-local 2021-10-19 22:29:41 +02:00
Thulinma
0bd5d742f6 SRT improvements:
- Made SRT support optional
- Make build options visible in cmake-gui
- Improved generic connection stats for outputs
- Added streamid handling configuration for MistInTSSRT
- Push input support over SRT
- Fixed support for SRT settings in push outputs
- Fix parsing of SRT-passed stream names
- Fixed hostnames in MistOutTSSRT, fixed PUSH_REWRITE trigger payload
- Opus support in TS-SRT
- Fixed SRT socket stats, fixed SRT socket address logic, improved SRT socket rolling restart support
- Fixed SRT push deny
2021-10-19 22:29:41 +02:00
Phencys
19199cbff8 TSSRT Support 2021-10-19 22:29:41 +02:00
Thulinma
974380ab30 Converted comms system entirely to being bitflag-based instead of integer state based 2021-10-19 22:29:41 +02:00
Thulinma
7297336e46 Rewrite of Comms 2021-10-19 22:29:41 +02:00
Thulinma
942ca0c1d1 Fixed input buffering for pages ending in a key > 20s long, added debug message when output reconnects to input during prepareNext. 2021-10-19 22:29:41 +02:00