mirror of
https://github.com/ZoneMinder/zoneminder.git
synced 2026-05-30 09:26:00 -04:00
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>
75 lines
2.5 KiB
PHP
75 lines
2.5 KiB
PHP
<?php
|
|
/**
|
|
* Routes configuration
|
|
*
|
|
* In this file, you set up routes to your controllers and their actions.
|
|
* Routes are very important mechanism that allows you to freely connect
|
|
* different URLs to chosen controllers and their actions (functions).
|
|
*
|
|
* CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
|
|
* Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
|
|
*
|
|
* Licensed under The MIT License
|
|
* For full copyright and license information, please see the LICENSE.txt
|
|
* Redistributions of files must retain the above copyright notice.
|
|
*
|
|
* @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
|
|
* @link https://cakephp.org CakePHP(tm) Project
|
|
* @package app.Config
|
|
* @since CakePHP(tm) v 0.2.9
|
|
* @license https://opensource.org/licenses/mit-license.php MIT License
|
|
*/
|
|
|
|
/**
|
|
* Load the API / REST routes
|
|
*/
|
|
Router::mapResources('configs');
|
|
Router::mapResources('controls');
|
|
Router::mapResources('encoder_templates');
|
|
Router::mapResources('events');
|
|
Router::mapResources('event_data');
|
|
Router::mapResources('frames');
|
|
Router::mapResources('groups');
|
|
Router::mapResources('host');
|
|
Router::mapResources('logs');
|
|
Router::mapResources('manufacturers');
|
|
Router::mapResources('models');
|
|
Router::mapResources('cameramodels');
|
|
Router::mapResources('monitors');
|
|
Router::mapResources('servers');
|
|
Router::mapResources('server_stats');
|
|
Router::mapResources('snapshots');
|
|
Router::mapResources('states');
|
|
Router::mapResources('tags');
|
|
Router::mapResources('roles');
|
|
Router::mapResources('users');
|
|
Router::mapResources('user_preference');
|
|
Router::mapResources('zonepresets');
|
|
Router::mapResources('zones');
|
|
Router::mapResources('notifications');
|
|
|
|
Router::parseExtensions();
|
|
|
|
/**
|
|
* Here, we are connecting '/' (base path) to controller called 'Pages',
|
|
* its action called 'display', and we pass a param to select the view file
|
|
* to use (in this case, /app/View/Pages/home.ctp)...
|
|
*/
|
|
Router::connect('/', array('controller' => 'pages', 'action' => 'display', 'home'));
|
|
/**
|
|
* ...and connect the rest of 'Pages' controller's URLs.
|
|
*/
|
|
Router::connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
|
|
|
|
/**
|
|
* Load all plugin routes. See the CakePlugin documentation on
|
|
* how to customize the loading of plugin routes.
|
|
*/
|
|
CakePlugin::routes();
|
|
|
|
/**
|
|
* Load the CakePHP default routes. Only remove this if you do not want to use
|
|
* the built-in default routes.
|
|
*/
|
|
require CAKE . 'Config' . DS . 'routes.php';
|