Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
80 changes: 42 additions & 38 deletions .github/ISSUE_TEMPLATE/camera_report.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Camera report
name: "Camera report / 摄像机报告 / Отчёт о камере"
description: Report how OpenIPC Decoder plays a camera (IP camera, NVR channel, encoder, RTSP server)
title: "[Camera]: "
labels: ["camera-report"]
Expand All @@ -8,20 +8,24 @@ body:
value: |
Thanks for testing! Camera reports help other users and show which streams need work.
**Remove the password from the URL** (write `user:***`) and do not post public IP addresses.
The app version and build hash are shown in the menu next to **Exit**, for example `v2.00, 1dda076`.
The app version is shown in the menu next to **Exit**, for example `v2.02`.

感谢测试!可以用中文填写。**请从 URL 中删除密码**(写成 `user:***`),不要公开 IP 地址。

Спасибо за тестирование! Можно писать по-русски. **Уберите пароль из URL** (`user:***`) и не публикуйте внешние IP-адреса.

- type: input
id: manufacturer
attributes:
label: Manufacturer
label: "Manufacturer / 厂商 / Производитель"
placeholder: "Hikvision, Dahua, XM (Xiongmai), OpenIPC board, ..."
validations:
required: true

- type: input
id: model
attributes:
label: Model
label: "Model / 型号 / Модель"
description: Model as printed on the label or shown in the camera's web interface
placeholder: "DS-2CD1023G0-I, IPC-HFW1230S, SSC335 board, ..."
validations:
Expand All @@ -30,38 +34,38 @@ body:
- type: dropdown
id: firmware_kind
attributes:
label: Firmware
label: "Firmware / 固件 / Прошивка"
options:
- OpenIPC (Majestic)
- OpenIPC (other streamer)
- Stock / vendor firmware
- Other
- "Other / 其他 / Другое"
validations:
required: true

- type: input
id: firmware_version
attributes:
label: Firmware version (optional)
label: "Firmware version (optional) / 固件版本(可选) / Версия прошивки (необязательно)"
description: "OpenIPC: `cat /etc/os-release` or the web interface; vendor firmware: version and date"
placeholder: "OpenIPC 2.6.10.12 lite / V5.5.0 build 180206"

- type: input
id: soc
attributes:
label: Processor / SoC (optional)
label: "Processor, SoC (optional) / 处理器、芯片(可选) / Процессор, SoC (необязательно)"
placeholder: "SigmaStar SSC335, HiSilicon Hi3516EV300, Goke GK7205V300, Ingenic T31, ..."

- type: input
id: sensor
attributes:
label: Image sensor (optional)
label: "Image sensor (optional) / 图像传感器(可选) / Сенсор (необязательно)"
placeholder: "SC2336, IMX307, GC2053, ..."

- type: input
id: url
attributes:
label: RTSP URL
label: "RTSP URL / RTSP 地址 / RTSP URL"
description: The URL that works in the app, with the password replaced by `***`. The path matters most (`/stream=0`, `/Streaming/Channels/101`, `/cam/realmonitor?channel=1&subtype=0`, ...)
placeholder: "rtsp://admin:***@192.168.1.10:554/stream=0"
validations:
Expand All @@ -70,7 +74,7 @@ body:
- type: textarea
id: other_urls
attributes:
label: Other streams (optional)
label: "Other streams (optional) / 其他码流(可选) / Другие потоки (необязательно)"
description: Substream, MJPEG or other paths of the same camera, one per line
placeholder: |
rtsp://admin:***@192.168.1.10:554/stream=1 — substream 704x576
Expand All @@ -79,39 +83,39 @@ body:
- type: dropdown
id: video_codec
attributes:
label: Video codec
label: "Video codec / 视频编码 / Видеокодек"
multiple: true
options:
- H.264
- H.265
- MJPEG
- Other
- "Other / 其他 / Другое"
validations:
required: true

- type: input
id: video_format
attributes:
label: Resolution, frame rate, bitrate (optional)
label: "Resolution, frame rate, bitrate (optional) / 分辨率、帧率、码率(可选) / Разрешение, частота кадров, битрейт (необязательно)"
placeholder: "1920x1080, 25 fps, 4 Mbit/s, key frame every 1 s"

- type: dropdown
id: audio_codec
attributes:
label: Audio codec
label: "Audio codec / 音频编码 / Аудиокодек"
options:
- No audio
- "No audio / 无音频 / Без звука"
- AAC
- Opus
- G.711 (PCMU / PCMA)
- L16 / PCM
- G.726
- Other / unknown
- "Other, unknown / 其他、未知 / Другое, неизвестно"

- type: checkboxes
id: transports
attributes:
label: Transports that work
label: "Transports that work / 可用的传输方式 / Работающие транспорты"
description: Menu → slot URL dialog (single view) → TCP / UDP / Auto / Multicast; "UDP push" = the camera sends RTP to a `udp://` slot or the U cell
options:
- label: TCP
Expand All @@ -123,62 +127,62 @@ body:
- type: dropdown
id: auth
attributes:
label: Authentication
label: "Authentication / 认证 / Аутентификация"
options:
- None
- "None / 无 / Нет"
- Basic
- Digest
- Credentials in the URL path (e.g. user=…_password=…)
- Unknown
- "Unknown / 未知 / Неизвестно"

- type: checkboxes
id: limits
attributes:
label: Camera limits
label: "Camera limits / 摄像机限制 / Ограничения камеры"
options:
- label: Accepts only one RTSP client at a time
- label: Needs a reconnect after the camera reboots (the app does not recover by itself)
- label: "Accepts only one RTSP client at a time / 同时只接受一个 RTSP 客户端 / Принимает только одного RTSP-клиента"
- label: "Needs a reconnect after the camera reboots / 摄像机重启后需要手动重连 / После перезагрузки камеры нужно переподключение"

- type: input
id: app_device
attributes:
label: App version and device
label: "App version and device / 应用版本和设备 / Версия приложения и устройство"
description: App version from the menu, and the device it ran on
placeholder: "v2.00, 1dda076 on AG-216 (Android 10)"
placeholder: "v2.02 on AG-216 (Android 10)"
validations:
required: true

- type: dropdown
id: result
attributes:
label: Overall result
label: "Overall result / 总体结果 / Общий результат"
options:
- Works
- Works with issues
- Does not work
- "Works / 正常 / Работает"
- "Works with issues / 可用但有问题 / Работает с проблемами"
- "Does not work / 不能用 / Не работает"
validations:
required: true

- type: checkboxes
id: works
attributes:
label: What works
label: "What works / 哪些功能正常 / Что работает"
options:
- label: Picture in single view
- label: Picture in multi-view
- label: Audio
- label: WebUI
- label: Debug page shows the stream (http://<device>:8085/)
- label: "Picture in single view / 单画面图像 / Картинка в одиночном виде"
- label: "Picture in multi-view / 多画面图像 / Картинка в мультивью"
- label: "Audio / 音频 / Звук"
- label: "WebUI"
- label: "Debug page shows the stream (http://<device>:8085/) / 调试页面显示码流 / Отладочная страница показывает поток"

- type: textarea
id: comment
attributes:
label: Comment (optional)
label: "Comment (optional) / 备注(可选) / Комментарий (необязательно)"
description: Anything that did not work or looked wrong, settings you had to change on the camera, delay, picture artefacts, ...

- type: textarea
id: logs
attributes:
label: Log (optional)
label: "Log (optional) / 日志(可选) / Лог (необязательно)"
description: "With USB/network debugging enabled: `adb logcat -d -s OpenIPCDecoder`, or `http://<device>:8085/log`. Check that no password is in it."
render: text
64 changes: 34 additions & 30 deletions .github/ISSUE_TEMPLATE/device_report.yml
Original file line number Diff line number Diff line change
@@ -1,40 +1,44 @@
name: Device report
name: "Device report / 设备报告 / Отчёт об устройстве"
description: Report how OpenIPC Decoder works on your phone, tablet, TV, set-top box or car device
title: "[Device]: "
title: "User test report / 用户测试报告 / Отчёт о тестировании от пользователя"
labels: ["device-report"]
body:
- type: markdown
attributes:
value: |
Thanks for testing! Reports are collected into the **Verified devices** table in the README.
The app version and build hash are shown in the menu next to **Exit**, for example `v2.00, a9ac8df`.
The app version is shown in the menu next to **Exit**, for example `v2.02`.

感谢测试!可以用中文填写。应用版本显示在菜单中 **Exit** 旁边。

Спасибо за тестирование! Можно писать по-русски. Версия приложения — в меню рядом с **Exit**.

- type: dropdown
id: device_type
attributes:
label: Device type
label: "Device type / 设备类型 / Тип устройства"
options:
- Phone
- Tablet
- TV
- Set-top box
- Car device / mirror
- Other
- "Phone / 手机 / Телефон"
- "Tablet / 平板 / Планшет"
- "TV / 电视 / Телевизор"
- "Set-top box / 机顶盒 / ТВ-приставка"
- "Car device, mirror / 车载设备、后视镜 / Автомобильное устройство, зеркало"
- "Other / 其他 / Другое"
validations:
required: true

- type: input
id: model
attributes:
label: Manufacturer and model
label: "Manufacturer and model / 厂商和型号 / Производитель и модель"
placeholder: "Samsung Galaxy A51 (SM-A515F)"
validations:
required: true

- type: input
id: android
attributes:
label: Android version / firmware
label: "Android version, firmware / Android 版本、固件 / Версия Android, прошивка"
description: Android version, plus the vendor firmware if it is not stock (ColorOS, SlimBOXtv, ...)
placeholder: "Android 13 / One UI 5.1"
validations:
Expand All @@ -43,59 +47,59 @@ body:
- type: input
id: soc
attributes:
label: SoC and kernel version
label: "SoC and kernel version / 芯片和内核版本 / SoC и версия ядра"
description: Settings → About → Kernel version. SoC if known (Amlogic S905X3, Allwinner H313, ...)
placeholder: "Exynos 9611, kernel 4.14.113"

- type: input
id: app_version
attributes:
label: App version
label: "App version / 应用版本 / Версия приложения"
description: Shown in the menu next to Exit
placeholder: "v2.00, a9ac8df"
placeholder: "v2.02"
validations:
required: true

- type: dropdown
id: result
attributes:
label: Overall result
label: "Overall result / 总体结果 / Общий результат"
options:
- Works
- Works with issues
- Does not work
- "Works / 正常 / Работает"
- "Works with issues / 可用但有问题 / Работает с проблемами"
- "Does not work / 不能用 / Не работает"
validations:
required: true

- type: checkboxes
id: works
attributes:
label: What works
label: "What works / 哪些功能正常 / Что работает"
options:
- label: H.264 video
- label: H.265 video
- label: Audio
- label: Quad mode
- label: Remote control / D-pad
- label: WebUI
- label: Screenshot (long press)
- label: "H.264 video / H.264 视频 / Видео H.264"
- label: "H.265 video / H.265 视频 / Видео H.265"
- label: "Audio / 音频 / Звук"
- label: "Multi-view / 多画面 / Мультивью"
- label: "Remote control, D-pad / 遥控器、方向键 / Пульт, D-pad"
- label: "WebUI"
- label: "Screenshot (long press) / 截图(长按) / Скриншот (долгое нажатие)"

- type: textarea
id: stream
attributes:
label: Camera and stream
label: "Camera and stream / 摄像机和码流 / Камера и поток"
description: Camera firmware (OpenIPC or other), resolution, FPS, bitrate, audio codec
placeholder: "OpenIPC on gk7205v300, H.265 1920x1080@25, 2 Mbps, AAC 16 kHz"

- type: textarea
id: notes
attributes:
label: Problems and notes
label: "Problems and notes / 问题和备注 / Проблемы и заметки"
description: What did not work or looked wrong (cropped picture, no sound, delay, crash, ...)

- type: textarea
id: logs
attributes:
label: Log (optional)
label: "Log (optional) / 日志(可选) / Лог (необязательно)"
description: "With USB/network debugging enabled: `adb logcat -d -s OpenIPCDecoder`"
render: text
23 changes: 23 additions & 0 deletions .github/workflows/device-report-title.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Device report title

# Device reports get one fixed title, set here rather than asked from the reporter: the form
# only pre-fills it and people replaced it with anything from a model to a problem (#120, #159)
on:
issues:
types: [opened, edited, labeled]

permissions:
issues: write

jobs:
title:
if: contains(github.event.issue.labels.*.name, 'device-report') && github.event.issue.title != 'User test report / 用户测试报告 / Отчёт о тестировании от пользователя'
runs-on: ubuntu-latest
steps:
- name: Set the title
env:
GH_TOKEN: ${{ github.token }}
REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
TITLE: User test report / 用户测试报告 / Отчёт о тестировании от пользователя
run: gh issue edit "$NUMBER" --repo "$REPO" --title "$TITLE"
Loading