Files
zoneminder/db
Isaac ConnorandClaude Opus 4.7 c4073c964c feat: encoder parameter templates with editor + REST API closes #4778 closes #4802
Adds a curated, per-encoder parameter-template library to ZoneMinder:

- Monitor edit page: a new Template row above the EncoderParameters
  textarea offers per-encoder templates (Balanced / Archival / Low
  Power / Low CPU). Apply merges the template's params into the
  textarea, preserving user-only keys. Advisory lint flags option
  keys that aren't recognised for the selected encoder. Switching
  encoders offers a same-name template on the new encoder via a
  native confirm.

- Options page: a new Encoder Templates tab with full CRUD —
  list / edit / copy / delete — backed by a new CakePHP REST API
  at /api/encoder_templates.

- Storage: a new EncoderTemplates DB table seeded with 14 shipped
  defaults across libx264 / libx265 / h264_nvenc / hevc_nvenc /
  h264_vaapi / hevc_vaapi. The table is mutable; ZM upgrades do not
  re-seed user-edited rows.

- valid_keys (the lint allow-list) stays in PHP code as ffmpeg
  vocabulary, not user data.

- Default params explicitly include pix_fmt to avoid the yuvj420p
  HEVC HW-decode rejection issue we hit earlier.

No C++ change. The textarea content is parsed by the existing
av_dict_parse_string call in src/zm_videostore.cpp.

version.txt -> 1.39.6.

Specs: docs/superpowers/specs/2026-05-0{1,2}-*.md
Plans: docs/superpowers/plans/2026-05-0{1,2}-*.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-06 17:24:17 -04:00
..
2026-01-24 11:24:56 -05:00
2013-12-24 11:07:27 +00:00
2026-01-24 11:16:07 -05:00
2023-03-22 13:28:35 -04:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2013-03-17 00:45:21 +01:00
2014-10-18 15:23:13 -05:00
2016-01-01 10:15:36 -06:00
2016-05-31 19:41:17 -05:00
2017-05-02 13:25:56 -05:00
2017-05-09 09:54:48 -05:00
2020-11-23 19:31:21 -05:00
2017-10-03 13:28:56 -07:00
2020-11-23 19:33:53 -05:00
2017-10-16 08:30:28 -07:00
2017-11-26 15:08:12 -05:00
2018-02-18 11:01:33 -05:00
2018-01-19 13:29:45 -05:00
2018-01-19 12:17:42 -05:00
2018-01-24 12:16:18 -05:00
2018-02-05 22:59:37 -05:00
2018-02-18 11:29:22 -05:00
2018-09-12 07:27:45 -05:00
2018-10-02 07:37:55 -05:00
2018-10-13 13:36:15 -05:00
2018-12-12 09:17:14 -05:00
2019-05-13 14:48:26 -04:00
2024-04-08 09:50:12 -04:00
2020-02-04 16:47:33 -05:00
2020-02-19 13:50:27 -05:00
2020-03-06 14:52:38 -05:00
2020-03-26 15:34:36 -04:00
2020-03-04 10:15:44 -05:00
2020-05-12 15:46:07 -04:00
2020-10-02 14:49:59 -04:00
2021-01-27 09:58:55 -05:00
2021-04-23 14:52:29 -04:00
2021-07-07 09:45:53 -04:00
2022-01-10 09:07:59 -05:00
2022-01-10 23:22:37 -06:00
2022-01-22 12:30:59 -05:00
2022-12-24 09:18:04 -05:00
2023-02-25 12:44:28 -05:00
2025-09-24 09:53:11 -04:00