diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..915e7dc --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,119 @@ +# Changelog + +The version lives in `versionName` in `android/app/build.gradle` (`v2`) and in +`app/build.gradle` (`basic`). Builds are published only as the +[`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release, which holds the +newest `v2` and `basic` builds, and in the OpenIPC Telegram channel; there are no releases +per version (#194). This file is the change history: one section per `v2` version, newest +first, then the legacy `basic` line. + +## 2.17 — 2026-10-17 + +- Turn in the camera settings (Auto, 0°, 90°, 180°, 270°), stored per slot; H.264/H.265 are + turned by the decoder (Android 6+), MJPEG by the view; Auto keeps the URL's `?rotate=` and + the toys' defaults (PR #225, part of #201). + +## 2.16 — 2026-10-16 + +- Jieli YL3 toys: frames built from several pieces in one datagram, no more freezes and + broken colours (PR #224, closes #187). +- A flaky unit test of the RTSP heartbeat is stable again (PR #227). + +## 2.15 — 2026-10-16 + +- Toy drones: FLOW-UFO (`flowufo://`), KY UFO RTSP (MJPEG turned 270°, `?rotate=` + overrides it) and Jieli (PR #215, part of #187, closes #200). + +## 2.13 — 2026-10-16 + +- A swipe from the screen edge (pulling the status bar) no longer opens the menu + (PR #216, #213). + +## 2.12 — 2026-10-15 + +- The system bars stay hidden over the video on Android 15, the debug page shows only LAN + addresses, the menu no longer leaks over other windows (PR #206, #202, #203, #205). + +## 2.11 — 2026-10-15 + +- Save report: stats and the log in one file, from the app and from the debug page + (PR #208, #207). + +## 2.10 — 2026-10-15 + +- A transient decoder loss no longer drops the learnt decoding capacity to the floor + (PR #190, #189). +- Releases: only `latest` and test pre-releases, no release per version (PR #195, #194); + docs on `mapping.txt` (#193). + +## 2.09 — 2026-10-15 + +- The single view draws on a SurfaceView instead of a TextureView, which stalled on some TV + boxes (PR #185, #76). + +## 2.08 — 2026-10-15 + +- Smaller APK: launcher icon / TV banner and the debug page (PR #184, part of #181). + +## 2.07 — 2026-10-14 + +- WebUI inside the system bars on Android 15 (PR #180, #169). +- CI keeps the R8 `mapping.txt` of every build and release, to read obfuscated stack traces + (PR #183, #181). + +## 2.06 — 2026-10-14 + +- The menu as an 8 / 4 / 4 grid with words; the debug page's Info is off by default + (PR #178, #174, #176, #177). + +## 2.05 — 2026-10-14 + +- Reset in the menu clears all settings after a confirmation; the menu in two columns + (PR #172, #171, #173). + +## 2.04 — 2026-10-14 + +- The picture size comes from the decoder's crop rectangle: 1080p streams are no longer + shown as 1920×1088, and the single view keeps the aspect ratio (PR #167, #166). + +## 2.03 — 2026-10-14 + +- The debug page keeps the grid in the single view, with short stream checks (PR #163, + #100). + +## 2.02 — 2026-10-14 + +- WebUI full screen, resized above the on-screen keyboard (PR #161, #160). +- Issue forms in English, Chinese and Russian; a fixed title for device reports (PR #164). + +## 2.01 — 2026-10-13 + +- S is the playback mode (every frame or key frames only) in every view, Q is the view + (PR #155, #153). +- A release of its own for every 2.xx version (PR #158, #157); replaced by `latest` only in + 2.10. + +## 2.00 — 2026-10-13 + +- Version 2.00 for the `v2` branch (`versionCode` 25); `basic` stays 1.07.1, so a `v2` build + installs over it. The version is shown from `versionName` everywhere: the menu, the debug + page, `/stats.json`, the user agent (PR #154, #152). + +## Before 2.00 + +Versions 1.x of the `v2` line, up to 1.28 (2026-05-04) and the work merged until +2026-10-13 (PRs up to #147): see the git history and the merged pull requests. + +## basic (legacy) + +`basic` is the original app, `decoder.apk` in the `latest` release; it gets fixes only. + +### 1.07.1 — 2026-10-12 + +- Robust RTSP handshake, end-of-stream handling, thread lifecycle and SDP parsing (PR #41, + #36–#40). + +### 1.07 — 2025-11-11 + +- The WebUI window works on older devices. Earlier versions (1.04–1.06): see "Version + history" in the README of the `basic` branch. diff --git a/README.md b/README.md index bc55fc3..3460d3e 100644 --- a/README.md +++ b/README.md @@ -47,6 +47,8 @@ Ready-to-install builds are in the [**latest** release](https://github.com/OpenI Every build is replaced in `latest` by the next one. Development is continuous, so there are no releases per version; every `v2` and `basic` build is also posted with its version and commit to the OpenIPC Telegram channel ([our channels](https://openipc.org/our-channels)). +The change history of every version is in [CHANGELOG.md](CHANGELOG.md). + A beta channel is available on [Google Play](https://play.google.com/apps/internaltest/4701231141824898735). To join it, send your e-mail through the [OpenIPC Telegram channels](https://openipc.org/our-channels). ## Requirements diff --git a/README.ru.md b/README.ru.md index 6386edb..2360e33 100644 --- a/README.ru.md +++ b/README.ru.md @@ -47,6 +47,8 @@ Каждая новая сборка заменяет предыдущую в `latest`. Разработка идёт непрерывно, поэтому отдельных релизов по версиям нет; каждая сборка веток `v2` и `basic` с номером версии и коммитом публикуется в Telegram-канале OpenIPC ([наши каналы](https://openipc.org/our-channels)). +История изменений по версиям — в [CHANGELOG.md](CHANGELOG.md). + Есть бета-канал в [Google Play](https://play.google.com/apps/internaltest/4701231141824898735). Чтобы попасть в него, пришлите свой e-mail через [Telegram-каналы OpenIPC](https://openipc.org/our-channels). ## Требования diff --git a/README.zh-CN.md b/README.zh-CN.md index a9e6bc7..28434d8 100644 --- a/README.zh-CN.md +++ b/README.zh-CN.md @@ -47,6 +47,8 @@ 每次新构建都会替换 `latest` 中的上一个构建。开发是持续进行的,因此不再按版本单独发布;`v2` 和 `basic` 分支的每个构建连同版本号和提交都会发布到 OpenIPC 的 Telegram 频道([我们的频道](https://openipc.org/our-channels))。 +各版本的变更记录见 [CHANGELOG.md](CHANGELOG.md)。 + [Google Play](https://play.google.com/apps/internaltest/4701231141824898735) 上提供测试渠道。如需加入,请通过 [OpenIPC Telegram 频道](https://openipc.org/our-channels)发送您的电子邮箱。 ## 系统要求 diff --git a/docs/testing.md b/docs/testing.md index 79c73c5..d1561c8 100644 --- a/docs/testing.md +++ b/docs/testing.md @@ -49,6 +49,7 @@ CI is the reference: the project does not depend on local builds. - `v2` is **2.xx** (from 2.00). Every pull request that changes the app bumps `android/app/build.gradle` as its last commit before the merge: `versionName` +0.01, `versionCode` +1. Docs-only and CI-only pull requests do not. - `basic` keeps its 1.07.x line. +- **`CHANGELOG.md`** is the change history: the version bump commit of a pull request that changes the app adds the version's section (`## — `, newest first) in the same pull request. - Development is continuous, so there is **no release per version** (#194). The [`latest`](https://github.com/OpenIPC/decoder/releases/tag/latest) release always holds the newest `v2` and `basic` builds. Every `v2` and `basic` build is also posted to the OpenIPC Telegram channel with its version and commit, and that is where their older builds can be found. Builds of other branches are only workflow artifacts of their runs (90 days). - **Test pre-releases**: to let a reporter test a branch, a pre-release named after the issue is made by hand from the branch's CI artifact, e.g. [`toys-187-test2`](https://github.com/OpenIPC/decoder/releases/tag/toys-187-test2) for #187. It is deleted when the test is over, or replaced by the next one.