# Settings for the screen agent. Edited on the board over SSH or serial;
# a fresh image is not needed to move a fleet to another server.

# The DashDash server this screen reports to.
BACKEND_URL=__BACKEND_URL__

# Shown in the organisation's device list, so a person can tell which board
# is which without reading uuids.
DASHDASH_MODEL=bananapim2zero

# Identity and token live here. Survives everything except reflashing.
DASHDASH_STATE_DIR=/etc/dashdash

# nmcli on the board; "fake" is for a developer's laptop only.
DASHDASH_NETWORK=nmcli

SCREEN_PORT=3000
PORTAL_PORT=80

# Проверять обновления самому: после запуска и дальше раз в сутки. Экраны
# висят на стенах годами, и ждать, пока кто-то нажмёт кнопку в админке для
# каждого, — способ навсегда остаться на первой версии.
#
# Обновление ставится только целиком успешное: если после установки агент не
# отвечает, плата сама возвращает предыдущую версию.
DASHDASH_AUTO_UPDATE=yes
DASHDASH_UPDATE_CHECK_HOURS=24

# Кэш программы и медиа: экран продолжает показывать последние данные и те же
# картинки, пока сервер недоступен. Каталог создаёт systemd (StateDirectory).
DASHDASH_CACHE_DIR=/var/lib/dashdash
# Сколько места на карте отдаём под картинки и видео.
DASHDASH_MEDIA_CACHE_MB=512

# Как cog отдаёт картинку в DRM.
#
# renderer=modeset — умолчание самого cog: кадр, отрисованный WebKit,
# отправляется прямо на выход через drmModeAddFB2. На sun4i это не работает:
# буфер приходит от lima в тайловой раскладке, дисплейный движок Allwinner
# такую не сканирует и ядро отвечает EINVAL — в журнале
# «failed to create framebuffer: Invalid argument», на экране чёрное поле.
#
# renderer=gles рисует кадр текстурой в буфер gbm с линейной раскладкой,
# который сканировать можно. Стоит лишний блит; на 1080p это незаметно.
COG_PARAMS=--platform-params=renderer=gles

# Кем декодировать видео — намеренно никем конкретно.
#
# У этого SoC есть VPU (Cedrus), в ядре он живёт как /dev/video0 + /dev/media0,
# в GStreamer — как v4l2slh264dec из plugins-bad, и соблазн его включить
# велик. Измерено на плате: с ним пятисекундный ролик 1080p обрабатывается
# 26 секунд, без него — 5.8. Причина в формате: Cedrus отдаёт кадры тайловыми
# (NV12_32L32), раскладывает их обратно процессор, и выигрыш от железа
# съедается с лихвой.
#
# Если однажды в ядре или в GStreamer научатся отдавать тайлы прямо на дисплей
# без раскладки, включается одной строкой:
#   GST_PLUGIN_FEATURE_RANK=v4l2slh264dec:512,v4l2slh265dec:512
# Проверять — тем же замером, а не на глаз.
