CNA-GAP-068: Video playback is unavailable on Windows, MinGW, Emscripten, Android and iOS: CNA has no FFmpeg integration for those targets yet
Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.
modules/CMakeLists.txt marks those targets as outside the FFmpeg integration, so CNA_ENABLE_VIDEO=AUTO falls back to the no-video backend and ON fails configuration; Video probing and VideoPlayer::Play then throw NotSupportedException. docs/video-backend.md describes this as 'no target-native FFmpeg integration or decode verification yet' (MEDIA-192 to MEDIA-195), so it is unfinished CNA work rather than a constraint of those platforms.
- Identifier
CNA-GAP-068- Category
- Functional gap
- Subsystem
- Audio & media
- Status
- Open
- Verified against
- CNA
009d40f5(009d40f5dd085c4e674d3479675fac84b12b3e0a) - Evidence basis
- Source-verified: read at TARGET, not executed
- Tests touching this area
- Yes: see Current tests
- Affected contract
- Video, VideoPlayer and Load<Video> on WIN32/MinGW, Emscripten, Android and iOS builds
Expected behaviour
XNA plays video on Windows.
Actual behaviour at TARGET
modules/CMakeLists.txt sets _cna_ffmpeg_platform_supported OFF for MINGW OR WIN32 OR EMSCRIPTEN OR ANDROID OR CNA_APPLE_IOS (so a cross-build never picks up the host's pkg-config files); CNA_ENABLE_VIDEO=AUTO then builds the no-video backend and ON stops configuration. Linux and macOS with FFmpeg development packages get video.
Source locations
modules/CMakeLists.txt— CNA_ENABLE_VIDEO handling and _cna_ffmpeg_platform_supported
Evidence
Checked by reading at 009d40f5; not executed.
Focused reproduction
No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.
Current tests
Video decoder tests run on Linux CI with the distribution's FFmpeg.
Regression test
A target-specific FFmpeg integration and a CI job per platform.
Blast radius
Games that play video on the listed targets.
Workaround
Play cut-scenes through a platform player outside CNA, or ship pre-rendered frames.
Related pages
The same subject is explained at several altitudes. These are the neighbouring pages at each one.
- Internals
- Video FFmpeg backend internals
- Known issues
- Functional gap index