diff --git a/docs/guides/cast-to-a-tv.md b/docs/guides/cast-to-a-tv.md index 0c67db99..3191a91f 100644 --- a/docs/guides/cast-to-a-tv.md +++ b/docs/guides/cast-to-a-tv.md @@ -94,9 +94,10 @@ can use the TV as a display, read its remote, speak through it and play video on it. - **The TV as a display.** `RokuDisplay` is a framebuffer display whose frames - show full-screen, sent as PNGs. At 480x270 a desktop gets 6 to 10 frames a - second onto the TV, and a P4 about 2. The TV fetching each PNG sets that - limit: the program itself draws at 28 to 29. + show full-screen, sent as PNGs. At 480x270 a desktop gets 8 to 14 frames a + second onto the TV, and a P4 about 2. On a desktop the TV fetching each PNG + sets that limit, and the program itself draws at 28 to 29. On a P4 it's the + 270 to 290 ms each PNG takes to encode. - **The remote as input.** All eleven buttons a channel can see arrive as key presses and releases, and a held button repeats. testris plays from the couch through [`roku/board_config.py`](https://github.com/PyDevices/pydevices-examples/blob/main/lib/examples/roku/board_config.py). diff --git a/docs/reference/cast-runtimes.md b/docs/reference/cast-runtimes.md index 479ff5ac..3cd96d35 100644 --- a/docs/reference/cast-runtimes.md +++ b/docs/reference/cast-runtimes.md @@ -6,13 +6,17 @@ for testris and for the LVGL `lv_test_timer`. | Runtime | Companion channel | Miracast to a Roku | Miracast to Windows | HLS | |---|---|---|---|---| -| `python` (Linux) | 8.2, 9.1 | 30, 30 | 30 | plays | -| `python.exe` (Windows) | 12.2, 10.6 | 30, 30 | 30 | plays | -| `micropython` (unix) | 11.8, 7.4 | no H.264 | no H.264 | no H.264 | -| `micropython.exe` (Windows) | 8.4, 7.7 | no H.264 | no H.264 | no H.264 | -| ESP32-P4 4" panel | 2.2, 2.1 | 29, 18 | 30 | plays | +| `python` (Linux) | 11.0, 9.1 | 30, 30 | 30 | plays | +| `python.exe` (Windows) | [closes](https://github.com/PyDevices/pydevices-examples/issues/245), 13.6 | 30, 30 | 30 | plays | +| `micropython` (unix) | 13.4, 11.3 | no H.264 | no H.264 | no H.264 | +| `micropython.exe` (Windows) | 7.7, 7.8 | no H.264 | no H.264 | no H.264 | +| ESP32-P4 4" panel | 2.2, 2.1 | -, 29 | 30 | plays | | ESP32-S3 LCD-7 | 1.8, 1.7 | no H.264 | no H.264 | no H.264 | +A dash is a figure we haven't measured. On Windows CPython, testris over the +Companion channel closes the cast a moment after it starts +([#245](https://github.com/PyDevices/pydevices-examples/issues/245)). + **No H.264** is by design. Desktop MicroPython and the S3 have no H.264 encoder, and adding one isn't planned, so `CastDisplay` and `HlsDisplay` stop there with an error that says so. On CPython, ffmpeg does the encoding: put it @@ -25,6 +29,6 @@ the same MPEG-TS over RTP that the P4 sends, byte for byte. it needs a second PC as the receiver: Windows won't take a cast from itself. On a desktop, a frame costs a few milliseconds of PNG encoding. On the P4 it's -about 180 ms at 480x270 and on the S3 about 380 ms, which is why the boards get -2 frames a second over the Companion channel and 18 to 29 over Miracast, where the P4's H.264 encoder -does the work. +about 270 to 290 ms at 480x270 and on the S3 about 380 ms, which is why the +boards get 2 frames a second over the Companion channel and about 29 over +Miracast, where the P4's H.264 encoder does the work.