Commit Graph

276 Commits

Author SHA1 Message Date
Isaac Connor
079b873380 fix: correct auth property name in getStatusCmdResponse
The PHP status.php returns 'auth' but getStatusCmdResponse was checking
for 'auth_hash'. This mismatch prevented auth hash updates from status
responses from ever being applied, causing invalid hash errors after
the auth expired.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 16:44:52 -05:00
Isaac Connor
d64636cf7d fix: prevent stream commands from being sent after quit
Added started flag checks in streamCommand() and streamCmdQuery() to
prevent commands from being sent after the stream has been killed.
This fixes an issue where scale commands were being sent after quit
commands during page reload.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-05 14:59:16 -05:00
Isaac Connor
ac4585b6b4 fix: use monitor's StreamChannel setting for go2rtc stream selection
Two issues caused monitors to stream from wrong channel:

1. In setChannelStream(), the expression `StreamChannel && SecondPath`
   returned SecondPath (often empty) instead of StreamChannel. Now
   correctly uses the monitor's configured StreamChannel.

2. In MonitorStream.start(), default channel only checked for
   CameraDirectSecondary and defaulted everything else to Restream.
   Now respects the actual StreamChannel setting.

Also improved fallback when selected option is disabled to find first
enabled option rather than always defaulting to Restream.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01 13:01:50 -05:00
Isaac Connor
eae89025ee refactor: rename RTSP2WebStream to StreamChannel
Rename applies to Go2RTC, Janus, and RTSP2Web streaming options.
Update enum values from Primary/Secondary to Restream/CameraDirectPrimary/CameraDirectSecondary.

- Add db migration zm_update-1.37.79.sql to rename column and migrate data
- Update C++ enum StreamChannelOption and member stream_channel
- Update PHP getStreamChannelOptions() method
- Update all JavaScript references
- Auto-select CameraDirectPrimary when Restream option becomes disabled

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31 19:37:08 -05:00
IgorA100
c7a8e5a78c Fix Eslint (MonitorStream.js) 2026-01-21 21:14:00 +03:00
IgorA100
b6ad1b94dd Fix: More correct handling of "muted" and copying of all attributes when cloning a DOM node (MonitorStream.js) 2026-01-21 20:59:29 +03:00
Isaac Connor
eb2d90eed0 Set started=false so we don't send STOP after QUIT 2026-01-20 22:10:20 -05:00
IgorA100
1759381a8e Fix: Eslint (MonitorStream.js) 2026-01-13 18:18:25 +03:00
IgorA100
ffc7f96b58 Fix: Correct operation of controlMute if iconMute or volumeSlider are missing (MonitorStream.js)
Actual for Montage page
2026-01-13 17:34:39 +03:00
IgorA100
3496937825 I returned the old "this.controlMute" function (MonitorStream.js)
It's not entirely clear why it was necessary to change the "this.controlMute" function in the commit.f796fa913f

After this change, the "volumeSlider" and "iconMute" styling sometimes doesn't work correctly.

The old code was 99.9% debugged and worked without any issues.

It's also unclear why "this.muted" was added? After all, we already had "audioStream.muted." Now we're probably getting duplicates.
2026-01-12 15:30:27 +03:00
Isaac Connor
90da1be90e Funny thing img.src is NEVER == ''. It will return the current nav url. So all the code testing for '' is bogus. This fixes sending an additional STOP after QUIT, which leaves errors in logs. 2026-01-02 10:41:44 -05:00
Isaac Connor
a15fb72b6f error => debug 2025-12-19 12:06:12 -05:00
Isaac Connor
ae3e8a86b9 Fix initial status update 2025-12-14 12:43:27 -05:00
Isaac Connor
f796fa913f Fix audio auto-starting on montage. AUdio should never auto-start... Or maybe we need to track it in cookies, but by default should start muted 2025-11-21 22:33:22 -05:00
Isaac Connor
cbd343b8e2 Only update img.src if we are started. 2025-11-20 15:54:44 -05:00
Isaac Connor
7ce9cdef25 Set muted attribute of go2rtc streams 2025-11-19 22:18:32 -05:00
Isaac Connor
3bfaf3e9ae Provide backtrace in setScale. Only start streamCmdTimer if stream is started (a status update can be in flight while we stop. 2025-11-18 17:37:36 -05:00
Isaac Connor
46343903c0 Fixup starting with muted=trute on montage 2025-11-13 21:53:39 -05:00
Isaac Connor
384d6d5463 Merge firefly:sandbox/ZoneMinder 2025-11-13 19:34:08 -05:00
Isaac Connor
09983c9545 FIx typo getAudioStraem => getAudioStream. Add this.muted 2025-11-13 19:33:09 -05:00
Isaac Connor
09f997fa8b Fix eslint 2025-11-13 12:36:14 -05:00
Isaac Connor
788e65886f Add genConnKey and when reloading a failed stream, generate a new connKey. Even tho the stream failed, zms may still be running , locked on the old connKey. Any new attempt to stream with the old will hang. 2025-11-12 16:06:49 -05:00
Isaac Connor
f28146e3ac Improve auto mode for RTSP2Web. Default to webrtc. Fix streaminfo mode display. 2025-11-11 18:48:34 -05:00
Isaac Connor
2ffbdbe9e3 Add a test to prevent height=0px 2025-11-11 18:12:45 -05:00
Isaac Connor
1ddf0771eb If activePlayer is already set to zms, try just sending a PLAY command. This fixes paused streams not restarting 2025-11-10 12:09:50 -05:00
Isaac Connor
98ecc30905 Remove debug RE ZM_WEB_SOUND_ON_ALARM 2025-11-10 11:40:46 -05:00
Isaac Connor
fd15f72687 Use parseInt on ZM_WEB_SOUND_ON_ALARM which fixes it trying to play a sound on alarm when that feature is off 2025-10-27 15:05:01 -04:00
Isaac Connor
da450eca2f Fix eslint 2025-10-24 09:16:01 -04:00
Isaac Connor
683636ca5e When constructing img.src include scale and mode. 2025-10-23 19:17:00 -04:00
Isaac Connor
5e6ae9e155 WHen using mode=paused, start up the streamCmdQUery timer. Also in cmdResponse, if there is no stream timer, start it up. 2025-10-23 19:17:00 -04:00
Isaac Connor
1e8d299c31 We havn't import url_to_stream yet. 2025-10-07 21:33:22 -04:00
Isaac Connor
05e18af95c Better logging, handle when zms starts up in paused mode. Add support for initial scale being passed through monitorData 2025-10-07 21:02:14 -04:00
Isaac Connor
aec6f8af32 Fix adding rand 2025-10-01 21:01:53 -04:00
Isaac Connor
2e16eb92a8 FIx logic inversion rand updating 2025-09-27 10:34:31 -04:00
Isaac Connor
01443b7449 Handle not finding monitorStream div more gracefully 2025-09-25 12:32:45 -04:00
Isaac Connor
b48476bff0 Fix video=>video_el 2025-09-25 10:29:58 -04:00
Isaac Connor
37a1159b92 Handle lack of video element more gracefully 2025-09-25 10:10:31 -04:00
Isaac Connor
1f89a8ab50 Fix js error if this.player is undefined 2025-09-25 09:47:07 -04:00
Isaac Connor
50b58a8230 Add DefaultPlayer support, deprecate RTSP2WebType 2025-09-24 14:06:37 -04:00
Isaac Connor
541716175e Add rand= if it doesn't exist, ensuring that img/src gets updated. 2025-09-22 19:29:08 -04:00
Isaac Connor
b3f1d5cfe7 When coming back from AYSW, maybe img.src == new src. Just set it and send a PLAY for good measure 2025-08-18 15:52:13 -04:00
Isaac Connor
b64351b3e1 Fix streams not restarting because player='' auto and we need to be looking at activePlayer 2025-08-18 15:14:49 -04:00
Isaac Connor
f047176378 Merge pull request #4394 from IgorA100/patch-896443
Feat: New design of the audio stream control slider
2025-08-09 11:58:14 -04:00
Isaac Connor
ada08701bf Merge branch 'master' of github.com:ZoneMinder/zoneminder 2025-08-07 12:24:14 -04:00
Isaac Connor
e16679b4b1 Make ZMS MJPEG vs go2rtc mjpeg more clean. Don't set img.src to single mode, just send STOP. Send QUIT in kill(). 2025-08-07 12:24:11 -04:00
IgorA100
d4ba17c919 Fix: When executing the "streamCmdReq" command, check "activePlayer" instead of "RTSP2WebEnabled" and "Go2RTCEnabled" (MonitorStream.js) 2025-08-07 18:40:07 +03:00
IgorA100
6804761ad9 When quickly switching between cameras on the Watch page, the audioStream may not yet exist (MonitorStream.js) 2025-08-07 12:25:42 +03:00
IgorA100
47f593317d When quickly switching between cameras on the Watch page, the audioStream may not yet exist (MonitorStream.js) 2025-08-07 12:19:37 +03:00
IgorA100
a16143aae9 Fix: Check for existence of "this.webrtc" before checking "close" method (MonitorStream.js)
In addition to #4407
Otherwise, there may be an error when switching start/stop quickly.
2025-08-05 19:02:06 +03:00
IgorA100
5f6db1fda6 Merge branch 'ZoneMinder:master' into patch-896443 2025-08-05 16:09:56 +03:00