Commit graph

179 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
f384a69b71 have default segment size be used for buffer, dtsc and ts inputs 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
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
7098f8430b Update input codec capabilities to be more consistent/accurate, and more easily automatically parsed 2022-10-06 16:23:29 +02:00
Thulinma
ad4c1abd0b Playlist support fixed 2021-12-24 15:09:36 +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
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
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
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
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
c434d792c4 Fixed MistInBuffer compile 2021-10-19 22:29:41 +02:00
Thulinma
fc7a460c49 Added ability to set debug level for MistProc* binaries, added support for global debug level for same. 2021-10-19 22:29:41 +02:00
Thulinma
49ee109b50 Added maxKeepAway option for live streams, renamed minkeepaway/keepaway to "jitter" externally, added global jitter and bframe checks in all JSON-like metadata outputs 2021-10-19 22:29:41 +02:00
Thulinma
5edf06ab68 More checks on connection quality 2021-10-19 22:29:40 +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
fff62656ba Added autostarting for processes through buffer 2021-10-19 22:29:39 +02:00
Thulinma
5f8518fe23 Fix playlist support not resuming on the correct page number and/or with the correct timestamp 2021-02-19 22:45:51 +01:00
Marco
c9cd529927 Fixes for playlist support
Track matching fixes:
  Input MP4 is not getting dimensions properly, causing resume to not find a collision
    Fixed by overwriting dimensions when media frames are read
  Detecting collisions using track identifier can cause issues (ie audio_AAC_2ch_44100hz_eng VS audio_AAC_2ch_44100hz)
    Fixed by matching using init data, then check by identifier if there is more than 1 match

Fixed buffering code for playlist streams, ensuring correct page creation:
  In resume mode new pages do not get created, but existing one(s) fill up
    Keyframes were not being recognized due to them being deleted during track switching
      Fixed by changing negotiationProxy::bufferNext:
        Removed seemingly unnecessary function which cleared keyframes
      Lastly, the offset of a resumed track seems wrong
        Added to NegotiationProxy::continueNegotiate
          pagesByTrack[tid][firstPage].curOffset = 0;
        Added to negotiationProxy::bufferSinglePacket:
          if (!pagesByTrack[tid][currentPageNum].curOffset) {
            pagesByTrack[tid][currentPageNum].firstTime = packet.getTime();
          }

Fixed numbering for keys from the buffer when accepting tracks (was amount of buffered keys, not last key number)
2021-02-19 22:43:26 +01:00
Thulinma
f38ec0322e Improvements/tests for SEM_LIVE locking for iRankLocally 2020-09-30 17:31:13 +02:00
Thulinma
d522c1d90f Merge branch 'development' into LTS_development
# Conflicts:
#	src/input/input_buffer.cpp
2020-09-30 17:29:49 +02:00
Thulinma
bafe30e234 Improvements/tests for SEM_LIVE locking 2020-09-30 17:24:57 +02:00
Thulinma
ead45b4fb8 Fixes to playlist support 2020-01-23 13:43:55 +01:00
Erik Zandvliet
907be3b1f4 Playlist support 2020-01-23 13:43:51 +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
2a91a7366b Updated default segment size to 1900 2019-09-09 16:02:24 +02:00
Thulinma
22a76f4ddb Merge branch 'development' into LTS_development
# Conflicts:
#	CMakeLists.txt
#	lib/dtscmeta.cpp
#	lib/procs.cpp
#	lib/ts_packet.cpp
#	src/controller/controller_connectors.cpp
#	src/input/input_buffer.cpp
#	src/output/output_https.cpp
2019-07-13 14:34:14 +02:00
Thulinma
cc9e970ea3 More backports from Pro edition, among which HTTPS/TLS support 2019-07-13 14:23:59 +02:00
Thulinma
01d43796ad 32-bit fixes 2019-01-26 00:51:30 +01:00
Thulinma
9e1539a2b9 Merge branch 'development' into LTS_development
# Conflicts:
#	src/controller/controller_statistics.cpp
#	src/input/input_buffer.cpp
#	src/input/input_dtsc.cpp
#	src/input/input_ebml.cpp
#	src/input/input_flv.cpp
#	src/input/input_mp3.cpp
#	src/output/output_httpts.cpp
#	src/output/output_progressive_mp3.cpp
#	src/output/output_progressive_mp4.cpp
2019-01-25 23:57:42 +01:00
Thulinma
7565704fdc Fixed 32-bit compile issues 2019-01-25 23:49:56 +01:00
Erik Zandvliet
10fa4b7e7b libmist backport from new metadata branch with improved typing and styling 2018-12-06 11:07:07 +01:00
Erik Zandvliet
2607113727 Library code style update + some minor backports from Pro edition 2018-12-04 13:11:48 +01:00
Thulinma
98e3940079 Robustify accesses to server config 2018-11-28 11:46:33 +01:00
Thulinma
ac92e09262 Robustify accesses to server config 2018-11-28 11:46:22 +01:00
Thulinma
6a5549444b Merge branch 'development' into LTS_development
# Conflicts:
#	src/input/input_buffer.cpp
#	src/output/output_ts_base.cpp
2018-11-01 16:37:03 +01:00
Thulinma
24006648f9 Cleaned up, fixed and robustified semaphore and signal related code 2018-11-01 16:11:47 +01:00
Thulinma
ce1eef0885 Merge branch 'development' into LTS_development
# Conflicts:
#	src/input/input.cpp
#	src/input/input_buffer.cpp
#	src/output/output.cpp
#	src/output/output_progressive_mp4.cpp
#	src/output/output_rtmp.cpp
2018-10-15 10:53:03 +02:00
Thulinma
776cfe1850 Backported various Pro edition changes and general code to Free edition 2018-10-15 10:25:43 +02:00
Thulinma
937653bc0d LIVE_BANDWIDTH trigger readability improvement, triggers no longer block stderr. 2018-05-18 17:20:12 +02:00
Thulinma
a51f0d1039 Buffer fixup 2018-02-13 16:06:18 +01:00
Thulinma
87fb2fc5b9 Improved input descriptions 2018-02-13 13:05:35 +01:00