Commit graph

1550 commits

Author SHA1 Message Date
Ramkoemar
074e757028 Sessions rework 2022-10-05 03:09:58 +02:00
Thulinma
3e85da2afd Match libav's RTMP receive window rollover behaviour 2022-10-03 11:53:15 +02:00
Thulinma
f3c003481d Made FLV memory-based loader functions use const pointers 2022-09-26 12:44:30 +02:00
Thulinma
54a46146c2 Fix TS inputs taking more and more memory over time in some cases 2022-09-05 12:51:43 +02:00
Marco van Dijk
8aceff951d Fix connections getting closed on interrupted system call 2022-08-31 14:29:01 +02:00
Thulinma
a9ddc37789 Why, Haivision, why? 😭 2022-08-25 11:28:00 +02:00
Thulinma
2740d65a0f Improved RTP timestamp logging, fixed bug related to firstTime value 2022-08-18 16:20:38 +02:00
Thulinma
b210b4f5af Fixed seek-related bugs in URIReader for HTTP sources 2022-08-18 16:11:24 +02:00
Thulinma
df4076a06e Added ResizeablePointer::shift operator to shift data forward in buffer 2022-08-18 16:11:00 +02:00
Alex Kordic
6c117b63cf Add s3 protocol to URIReader 2022-08-10 09:19:22 +02:00
Thulinma
267a74f0f6 Fix track selector logic when multiple selections are considered 2022-08-08 11:00:39 +02:00
Thulinma
14bc94ece5 Prevent eternal sleep when waiting for RelAccX structure to become ready 2022-08-08 10:57:28 +02:00
Thulinma
508506c241 Fixes to UDP socket behaviour 2022-08-02 12:47:09 +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
Marco
d8f67e84b7 RTMP custom audio loop support for streams containing copyrighted audio 2022-06-19 15:50:05 +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
Marco
503a9591c9 URL parser bugfix 2022-06-16 15:50:56 +02:00
Marco van Dijk
2485c16dfc FEC 2022-06-01 16:27:15 +02:00
Thulinma
d2d12bc908 Options that are blank or zero but do not default to that value, now work. 2022-06-01 15:58:54 +02:00
Thulinma
840a1f5f4e Cleanup TS SRT output code 2022-06-01 15:41:18 +02:00
Thulinma
1ec18d83b8 Make TS inputs slightly more robust against packet loss 2022-06-01 15:40:37 +02:00
Thulinma
6cb734357a Fix socket remote address for accepted sockets 2022-05-09 10:08:53 +02:00
Thulinma
9993dfafa2 Implemented exponential backoff for shared memory related waits 2022-04-18 10:30:14 +02:00
Marco
3e73508a6a Added SDP input 2022-02-21 15:51:09 +01:00
Marco
dd2382e858 Added SDP output 2022-02-21 15:30:16 +01:00
Siddarth Tegginamani
ccee512b3d Bug Fix: CMAF DASH playback works
- syntax error fixed
- removed unnecessary track id simplification
2022-02-11 22:52:20 +01:00
Siddarth Tegginamani
e9d5920a80 HLS CMAF updated to use hls_support library for (LL)HLS manifest generation.
- also removed duplicate CMAF library methods
2022-02-11 22:47:28 +01:00
Siddarth Tegginamani
c54690d346 hls_support: A new library for (LL)HLS manifest generation 2022-02-11 22:47:28 +01:00
Siddarth Tegginamani
97f040cefd Added global config value with unix time of system boot, for system-wide consistent time calculations 2022-02-11 22:43:55 +01:00
Siddarth Tegginamani
4033f1d009 Check keyTimingsMatch in DTSC 2022-02-11 22:43:49 +01:00
Thulinma
82883d39ea Removed licensing system related code 2022-02-09 12:14:58 +01:00
Siddarth Tegginamani
c2c94bb4b4 fixed fragment datatype: uint32_t to uint64_t 2022-02-03 13:14:25 +01:00
Siddarth Tegginamani
ba07c5444f Bug Fix: check "video" as type instead of codec in maintrack() 2022-02-03 13:13:44 +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
f9e97a350f Standard signal handler now also closes stdin when shutting down, to prevent read-loops getting stuck 2022-01-24 14:42:20 +01:00
Thulinma
a8305396a2 Fixed Firefox WebRTC support through temporary hack 2022-01-23 00:04:57 +01:00
Thulinma
75559a367b Set livepeer-transcoded track to have a source track, exclude tracks with source track from stream health info 2022-01-23 00:04:48 +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
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