Files
zoneminder/web
Isaac Connor 90c6bc0b42 fix: guard SHM pixformat publish on assign failure (PR #4788)
- Monitor::WriteShmFrame: image_pixelformats[index] was being recorded
  even when image_buffer[index]->Assign(*capture_image) silently left
  the slot untouched (Assign returns void; held-buffer undersize and
  unknown src format both early-return without mutating the dest).
  Readers would then adopt the newly-published format while the slot
  still held the previous frame's bytes, producing garble. Check the
  dest's post-Assign PixFormat against the source's and only publish on
  match; warn and keep the previously-published format otherwise so
  readers continue interpreting the slot bytes correctly.
- Monitor::WriteAlarmImage: same fix for alarm_image — verify Assign
  adopted src.PixFormat() before publishing *alarm_image_pixelformat.
- Image::AVPixFormat(AVPixelFormat) setter: switched the four
  format-name logs to the nullptr-safe zm_get_pix_fmt_name wrapper.
  The first Error branch triggers exactly when new_pixelformat is
  unrecognised, and av_get_pix_fmt_name returns nullptr for those.
- monitor.php: removed the manual translate fallback for
  DeprecatedColoursSetting. web/includes/lang.php always merges
  en_gb.php as a fallback when the active language differs, so
  translate() never returns the bare key once en_gb.php defines it.

refs #4788

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 08:24:42 -04:00
..

Modern ZoneMinder Skin

This web frontend to ZoneMinder is a complete rewrite of the classic frontend, based on CakePHP.