Commit graph

491 commits

Author SHA1 Message Date
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
Thulinma
f4051b5916 Fixed RTSP input in newMeta build 2021-10-19 22:29:41 +02:00
Thulinma
bc3ca638cd Fixed MistInAV compiling in newMeta branches 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
15c132f6f8 Added MistUtilNuke, added input PID and pull PID fields, added nuke_stream API call 2021-10-19 22:29:41 +02:00
Thulinma
1fff195f77 Various TS improvements 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
97752f2c2d Opus in TS input/output support 2021-10-19 22:29:41 +02:00
Thulinma
561c073977 MistInEBML fix 2021-10-19 22:29:41 +02:00
Thulinma
3dfe377b9c Removed unneeded userSelect reload in inputs 2021-10-19 22:29:41 +02:00
Thulinma
dc2239e70f Slight improvements + more sanity checks in page buffering 2021-10-19 22:29:40 +02:00
Thulinma
0a51e95d1a Improved EBML B-frame detection/handling 2021-10-19 22:29:40 +02:00
Thulinma
5edf06ab68 More checks on connection quality 2021-10-19 22:29:40 +02:00
Thulinma
de4890ac20 Livepeer transcoding support 2021-10-19 22:29:40 +02:00
Thulinma
b5b09f21b4 Improvements to ResizeablePointer 2021-10-19 22:29:40 +02:00
Thulinma
3ca1ea3b30 Temp fix for invalid tracks 2021-10-19 22:29:40 +02:00
Thulinma
771fad390a Allow overriding application name with -DAPPNAME="Name here" 2021-10-19 22:29:40 +02:00
Thulinma
a8e04e1787 Fixes to CMAF output 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
637c57be5e FFMPEG process fixes/improvements 2021-10-19 22:29:39 +02:00
Thulinma
dbafdf6744 Correct handling of reaper thread in forking binaries 2021-03-19 22:47:06 +01: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
431fecb67b RTSP input fixes 2020-09-24 20:11:44 +02:00
Thulinma
19f1df18aa HLS input converted to URIReader, temporarily disabled clearkey encryptionHLS input fixes:
- Re-enabled file-based input
- Added support for clearkey-encrypted file-based input
- Converted to HTTP::URIReader for all input types
- Both live and VoD functional
 support
2020-09-14 10:57:00 +02:00
Thulinma
eb8694052d Merge branch 'development' into LTS_development
# Conflicts:
#	lib/http_parser.cpp
2020-03-03 17:04:10 +01:00
Thulinma
08e5ceca2b Improvements and backports for HLS input 2020-02-12 12:19:34 +01:00
Thulinma
e9832ac723 Added stats entry for RTSP pull input 2020-02-03 16:34:05 +01:00
Thulinma
d58e860a2c HLS: support for handling and syncing on ISO8601 timestamps in input 2020-01-23 13:55:08 +01:00
Thulinma
384afb6508 RTSP allow lowercase Content-[Tt]ype, fixed Soliton Systems RTSP server implementation 2020-01-23 13:44:20 +01:00