fix(android): don't letterbox against the configure placeholder
H264Decoder.outputSize() reported the 320x240 configure() placeholder until the codec parsed the in-band SPS, so fitVideo sized the view to 1488x1116 (1.33 aspect) and the first rendered frame(s) of 2.4 content were visibly squished before the real size corrected it ~40ms later. Report no size until INFO_OUTPUT_FORMAT_CHANGED delivers the real one: the first frame renders into the fullscreen surface and the correct letterbox follows immediately. Validated live on the Fairphone 6 (the placeholder 'video size' line is gone from logcat; 25/25 JVM tests).
This commit is contained in:
@@ -330,6 +330,18 @@ list the phone at 192.168.178.29:5005; a 25s `--send --target monitor
|
||||
Note: with both the Pi and the phone on the LAN, plain `--send` refuses
|
||||
(two receivers found) — target the phone with `--peer`.
|
||||
|
||||
Follow-up from the same on-device session — startup squish eliminated:
|
||||
`H264Decoder.outputSize()` previously reported the 320x240 configure()
|
||||
placeholder until the codec parsed the SPS, so `fitVideo` sized the
|
||||
TextureView 1488x1116 (1.33 aspect) and the first rendered frame(s) of
|
||||
2.4 content were visibly squished. It now returns null until
|
||||
`INFO_OUTPUT_FORMAT_CHANGED` fires; the first frame renders into the
|
||||
fullscreen surface and the correct letterbox (2484x1035) follows within
|
||||
~40ms. Validated live: no placeholder "video size" line in logcat.
|
||||
|
||||
Commits: 9a24933 (PROTOCOL_DNS_SD discovery fix + docs), plus the
|
||||
outputSize fix (see git log).
|
||||
|
||||
Still open (accepted, needs a device or a new test dep):
|
||||
|
||||
- Untested on device: `setOutputSurface` mid-session (surface switch) and
|
||||
|
||||
Reference in New Issue
Block a user