What's changed (since v1.0.0-alpha.5)
- fix(release): compile Kotlin out-of-process so R8 has the memory alone
- fix(release): build the release in one JVM so R8 does not get killed
- chore(release): bump version to 1.0.0-alpha.6
- docs(release): prepare the changelog and the release train for v1.0.0-alpha.6
- fix(airplay): keep the coded aspect when a decoder reports a scaled picture as a crop
What this release is. A bug fix for a hardware decoder that scales the
picture to the panel. The AirPlay mirror was stretched horizontally on the
Allwinner H726 (Magcubic/Gojodoq HY300, Android 14) — the decoder scaled the
decoded picture from 498x1080 to 484x712 and reported that scaled size in the
crop rectangle instead of a real crop. Reported as GitHub issue #21, with a
detailed root-cause analysis by the reporter.
Fixed
- Stretched AirPlay picture on hardware decoders that scale the frame — some
decoders scale the decoded picture to the panel and report that scaled size in
the crop rectangle instead of a real crop. PhairPlay trusted that rectangle and
stretched the picture horizontally (498x1080 was displayed as 484x712, aspect
0.68 instead of 0.46). The crop is now only used when its aspect ratio agrees
with the coded picture parsed from the stream's SPS; otherwise the coded aspect
wins, which undoes the decoder's distortion. A decoder that rotates the picture
is handled by comparing the SPS in both orientations. Implementation:
com.phairplay.airplay.OutputSizeResolver,VideoDecoder.publishOutputSize.
Proof:OutputSizeResolverTest(12 tests). The device test case DT-16
describes how to check it on a television.
Installation
Side-load the APK that matches your device (or upload the AAB to Google Play Console):
- PhairPlay-1.0.0-alpha.6-GoogleTV.apk — Google TV / Android TV APK (Android 10+)
- PhairPlay-1.0.0-alpha.6-FireTV.apk — Amazon Fire TV APK (Android 7.1+)
- PhairPlay-1.0.0-alpha.6-GoogleTV.aab — Google Play Store Android App Bundle (Google TV)
Use adb or a sideloading app like Downloader to install.
What was not tested
This is a prerelease. No television has run this build: 0 of the 16 device test
cases of the device test plan have been executed. Report what you
find as an issue.
The build itself
- The four checks of the quality gate and the JVM protocol suite were green on
the tagged commit. - Both APKs are signed with the release key. An update over an installed version
only works if the key is the same — otherwise uninstall the old version first.