Commit Graph

378 Commits

Author SHA1 Message Date
Alexis Rouillard
6fd84af50f rebroadcast: Use optional chaining for allowBatteryPrebuffer (#1986) 2026-02-18 10:19:15 -08:00
JoshADC
7112e049cb rebroadcast: fix RTMP acknowledgement uint32 overflow (#1980)
The RTMP client's totalBytesReceived counter grows unbounded as a
JavaScript number. When it exceeds 2^31 (~2.15 GB received), the
writeUInt32BE call in sendAcknowledgementIfNeeded throws a RangeError
because JavaScript bitwise operations produce signed 32-bit integers.
This crashes the RTMP session and drops the video stream.

For a high-bitrate camera like the Reolink D340P (~4 Mbps main stream),
this overflow occurs after approximately 90 minutes of continuous
streaming, causing periodic stream drops at a consistent interval.

Fix by using the unsigned right shift operator (>>> 0) to keep
totalBytesReceived and bytesToAck in the unsigned uint32 range [0,
4294967295], matching the RTMP spec's sequence number wrapping behavior.

Co-authored-by: Josh Casada <joshcasada@Joshs-Mac-mini.ts.net lan>
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 18:53:46 -08:00
Koushik Dutta
af8abb6072 rebroadcast: publish rtmp support beta 2026-01-09 12:45:48 -08:00
Koushik Dutta
7ef868e42d rebroadcast: rtmp window acks 2026-01-09 12:35:11 -08:00
Koushik Dutta
0185680791 rebroadcast: remove some bit shifting in favor of read/write uintbe 2026-01-08 21:35:04 -08:00
Koushik Dutta
1349bb7433 rebroadcast: slop rtmp implementation 2026-01-08 21:29:05 -08:00
Koushik Dutta
aa85e7ec19 rebroadcast: avoid mjpeg codecs and warn 2025-12-06 12:38:22 -08:00
Koushik Dutta
6356702ba3 rebroadcast: privacy mode 2025-11-13 09:40:28 -08:00
Koushik Dutta
8099df4a2a rebroadcast: prevent buffering from buggy RTSP clients like frigate from causing memory leaks in scrypted 2025-10-01 09:16:30 -07:00
Koushik Dutta
a4a3731b94 rebroadcast: always use scrypted rtsp parser for consistency 2025-09-23 20:01:29 -07:00
Koushik Dutta
f4a55ee76b rebroadcast: always use scrypted rtsp parser for consistency 2025-09-23 12:47:16 -07:00
Koushik Dutta
66455c8f01 rebroadcast: fix bug where stream may be started on fragmented key frame 2025-04-05 09:57:21 -07:00
Koushik Dutta
2d93a69c91 homekit/rebroadcast: fix prebuffer calculation, remove prebuffer warning 2025-04-02 22:12:12 -07:00
Koushik Dutta
553678ed1a rebroadcast: Fix cluster addresses not being used 2025-04-02 12:33:45 -07:00
Koushik Dutta
b3b7265263 rebroadcast: wipe acodec arguments if encoder arguments are explicitly provided 2025-04-01 20:51:07 -07:00
Koushik Dutta
301213fc5f rebroadcast: remove dead code 2025-03-31 11:07:28 -07:00
Koushik Dutta
da393ae4e0 rebroadcast: ensure audio mute/no audio is in sync 2025-03-31 10:57:09 -07:00
Koushik Dutta
cef8482b93 sdk: partial revert of ffmpeg input changes 2025-03-16 19:52:47 -07:00
Koushik Dutta
f729c76346 various: remove defunct ffmpeg args 2025-03-16 19:09:40 -07:00
Koushik Dutta
3e57c90208 rebroadcast: fix mixin order 2025-03-15 00:52:07 -07:00
Koushik Dutta
83a9ad2250 rebroadcast: reorder mixin order for regular (ie, non webrtc) cameras to be first to prevent stream flapping due to mixin change noise 2025-03-11 15:24:40 -07:00
Koushik Dutta
1a2aadfb52 rebroadcast: fix audio soft mute with adaptive bitrate and other downstream clients 2025-01-29 08:48:55 -08:00
Koushik Dutta
55a76a86dc rebroadcast: fixup output args example 2025-01-14 12:51:34 -08:00
Koushik Dutta
b033d24451 rebroadcast: implement synthetic streams 2025-01-03 23:15:45 -08:00
Koushik Dutta
427139e8df rebroadcast: wip remove transcode extension 2025-01-03 21:55:20 -08:00
Koushik Dutta
6ce538bb23 rebroadcast: setting for default parser 2025-01-02 11:06:24 -08:00
Koushik Dutta
8ec6a25833 rebroadcast: add support for rtsp url using cluster address in case scrypted server address is not set 2024-12-23 11:16:36 -08:00
Koushik Dutta
ff903fa891 rebroadcast: fix external urls with ipv6 2024-11-15 10:02:13 -08:00
Koushik Dutta
12be06adad rebroadcast: cleanup 2024-11-15 10:02:13 -08:00
Koushik Dutta
ec2e4d64fd rebroadcast: set online/offline state without prebuffer requirement 2024-10-29 12:21:40 -07:00
Koushik Dutta
89e6e50b12 rebroadcast: reduce logging 2024-08-26 23:04:51 -07:00
Koushik Dutta
2da762dfc2 server: working transferible buffers 2024-08-19 13:20:21 -07:00
Koushik Dutta
bfbc6ba6ce rebroadcast: fix build 2024-08-19 12:02:45 -07:00
Koushik Dutta
6d9cd45936 rebroadcast: add global audio soft mute 2024-08-13 20:13:03 -07:00
Koushik Dutta
b43a002650 rebroadcast: fix content base handling when it is a relative path 2024-08-11 11:40:07 -07:00
Koushik Dutta
70d6813938 rebroadcast/webrtc: fix mp3 handling 2024-08-10 14:17:07 -07:00
Koushik Dutta
946d88236c rebroadcast: beta 2024-07-29 14:25:30 -07:00
Brett Jia
834eff20c7 sdk, rebroadcast: support specifying custom ffmpeg path (#1535) 2024-07-21 07:31:26 -07:00
Brett Jia
aa9903b328 sdk, rebroadcast: don't automatically prebuffer synthetic streams (#1534) 2024-07-20 21:05:47 -07:00
Brett Jia
6d7add8272 rebroadcast: support env vars + upstream encoder args (#1533)
* rebroadcast: support env vars + upstream encoder args

* make ffmpegInput override process.env

* make h264EncoderArguments safer

* reorder

* update per feedback
2024-07-20 19:53:22 -07:00
Koushik Dutta
78118daa69 rebroadcast: fix hang if ffmpeg exits without any connection 2024-06-25 09:44:06 -07:00
Koushik Dutta
8b303e037e rebroadcast: delete legacy code 2024-06-25 00:15:53 -07:00
Koushik Dutta
05578d28c6 rebroadcast: fix resolution reporting 2024-06-24 15:39:05 -07:00
Koushik Dutta
0889aea3be rebroadcast: reduce error logging 2024-06-24 12:24:01 -07:00
Koushik Dutta
a081e6e3c9 rebroadcast: refactor codec and resolution detection 2024-06-24 09:05:20 -07:00
Koushik Dutta
c90724daa6 common: createActivityTimeout 2024-06-20 09:21:21 -07:00
Koushik Dutta
e076d61122 rebroadcast: fixup reverts 2024-05-30 09:29:14 -07:00
Koushik Dutta
7071808514 Revert "rebroadcast: parser perf refactor"
This reverts commit f677cf7393.
2024-05-30 09:27:27 -07:00
Koushik Dutta
1e2fd46cd3 Revert "rebroadcast: more parser refactor"
This reverts commit 5432b5b917.
2024-05-30 09:24:53 -07:00
Koushik Dutta
7e817b0b30 rebroadcast: further removal of legacy code 2024-05-19 11:22:10 -07:00