Commit graph

40 commits

Author SHA1 Message Date
Thulinma
6bec4066a9 Added stream tagging support 2023-12-20 15:42:27 +01: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
Thulinma
0af85de22d UDP API port is now stored in and read from global config 2023-05-01 15:21:10 +02:00
Thulinma
d96524968d Send boot-up progress percentages to status websocket for HLS input 2023-04-10 14:15:00 +02:00
Marco van Dijk
97d24f75e4 Custom variables support
Change-Id: Ia847a868d1803dc80fdb8a627d57bba571cdee64
2023-02-09 12:49:01 +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
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
76db36dfed Added v2 track selectors 2021-10-19 22:29:42 +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
a2e2ddae1e Backport of 3.0 stream selectors 2019-11-27 10:27:14 +01:00
Thulinma
7bffdfe644 Added global configuration mechanism and defaultStream support 2019-10-31 11:19:54 +01:00
Thulinma
b8415d09c6 HLS/DASH stream track selector support in index URLs, fixed source matching when multi-select or type-select is used, handle user agent exceptions in Output::selectDefaultTracks(), added Util::codecString to stream.h library, removed duplicate/wrong code from DASH/HLS outputs 2019-04-26 13:50:39 +02:00
Thulinma
98e3940079 Robustify accesses to server config 2018-11-28 11:46:33 +01:00
Thulinma
bbc31722bd Generalized stream variables implementation
# Conflicts:
#	lib/stream.cpp
2018-05-09 10:40:20 +02:00
Thulinma
e8f1ceff3a Generalized stream variables implementation 2018-05-09 10:24:11 +02:00
Thulinma
0e1a18986a Merge branch 'development' into LTS_development
# Conflicts:
#	lib/stream.cpp
2017-06-23 15:06:59 +02:00
Thulinma
3c68d537f6 Streamstatus const fix 2017-06-23 15:03:01 +02:00
Thulinma
0ca63d1440 Merge branch 'development' into LTS_development
# Conflicts:
#	lib/stream.cpp
#	src/input/input.cpp
2017-06-22 14:07:54 +02:00
Thulinma
25699ef8b2 Added stream status shared memory page (temporary system) 2017-06-22 14:03:35 +02:00
Thulinma
bef46f969c Merge branch 'development' into LTS_development
# Conflicts:
#	lib/stream.cpp
#	lib/stream.h
#	src/input/input.cpp
#	src/output/output_http_internal.cpp
2017-06-09 20:34:57 +02:00
Thulinma
26f74accdf MistInBuffer no longer boots if the process starting it has no data to fill it with. Optimized and simplified HTTP internal output. 2017-06-09 20:31:20 +02:00
Thulinma
6254c285d6 Added duplicate checking for manual pushes 2016-11-18 15:35:15 +01:00
Thulinma
4c9c6fa7ba Backported various little edits from Pro edition. 2016-06-02 14:07:21 +02:00
Thulinma
263dee7b25 Added push-related API calls to controller, made outputs able to wait for playable streams. 2016-05-11 13:55:23 +02:00
Thulinma
7e82673a13 Minor fixes. 2016-05-05 16:05:12 +02:00
ozzay
1c3e143709 Recording functionality by Diederick Huijbers, slightly tweaked. 2016-02-12 16:29:08 +01:00
Erik Zandvliet
0913d2607e Working PlayReady/Verimatrix DRM support 2015-09-02 12:09:37 +02:00
Thulinma
c3efc1001f Improved startInput function behaviour and reliability, added streamAlive function. 2015-07-21 23:07:10 +02:00
Thulinma
08953540f6 New input starting method based on JSON capabilities. 2014-10-02 15:38:59 +02:00
Thulinma
8c01ec8897 Such style. (Code style unification) 2014-06-18 10:39:27 +02:00
Thulinma
efa5d67231 Changed getStream/getLive/getVod functions to return a bool instead of a socket. 2014-04-18 14:23:02 +02:00
Erik Zandvliet
1cf6e34745 Added call to player with streamname. 2013-12-17 14:53:17 +01:00
Thulinma
bf485b1803 Added cross-platform getTmpFolder() function in Util. 2013-09-11 12:28:31 +02:00
Thulinma
38ef8704f8 Global cleanups and standardization of code style. 2012-12-11 11:03:33 +01:00
Thulinma
ed2021d01c Utils::Stream::getStream now actually works in all cases where it should, the way it should. ^_^ 2012-08-31 16:56:50 +02:00
Peter Wu
e8a20c146b stream: fix headers and missing static keyword 2012-08-30 12:30:11 +02:00
Peter Wu
9c0aa93bfd Move Socket::*Stream > Util::Stream::* 2012-08-30 12:23:40 +02:00