feat(hwdec): add Android MediaCodec backend - #62
Draft
justin13888 wants to merge 6 commits into
Draft
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #30
Summary
Android API boundary
MediaCodec is the sole Android decoding backend. Media3 and ExoPlayer orchestrate playback over MediaCodec, while ImageDecoder consumes complete image sources and is not the HEIF/AVIF item-codestream boundary needed here. Java MediaCodecList is used only because MediaCodecInfo.isHardwareAccelerated and isAlias are the public definitive classification methods starting at API 29; decoding and output acquisition remain NDK AMediaCodec and AImageReader.
Primary contracts:
Validation completed
Physical-device merge gate — pending
This remains draft until both report blocks are attached:
The instrumentation test rejects emulators because their codec inventory and acceleration path may depend on host passthrough. No performance threshold is imposed; cold_us and warm_us are diagnostic. Run instructions and pinned Linux/macOS build toolchains are in android/mediacodec-harness/README.md.
The current development host has no Android SDK/NDK, adb, or attached device, so no device report is claimed in this PR yet.