moonlight-stream / moonlight-stream/moonlight-android

[Issue]: Moonlight cannot find hardware accelerated video codecs

Open
#1,491 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug
Dominant language
C
Stars
7.1k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

Describe the bug

About a month ago I stopped being able to use Moonlight on my Poco X3 Pro running crDroid 11.2 (Android 15). The issue I get is a black screen with a popup that says "This device or ROM doesn't support hardware accelerated H.264 playback.". It used to work just fine before.

I recently noticed an update for my ROM that happened around the time when I started having this issue that says "Removed deprecated OMX and replaced with c2 media codecs". Checking the Moonlight logs I notice a peculiar line that says "Examining decoder capabilities of c2.android.avc.decoder (round 1)" and then "Skipping software-only decoder: c2.android.avc.decoder", so I was wondering if it's possible that Moonlight thinks this decoder is software-only when it's actually a usable hardware codec on my device.

I've already checked the basic troubleshooting guide to no avail, and I've recently asked for help on the Discord server, but nobody was able to figure out what was going on.

Steps to reproduce
  • Run Moonlight on a Poco X3 Pro running the latest crDroid 11.2 ROM
  • Pair a device running Sunshine
  • Try to connect to the device
Affected games

Any

Other Moonlight clients

PC

Moonlight adjusted settings

Yes

Moonlight adjusted settings (please complete the following information)

Video frame balancing was set on "Prefer lower delays"

Moonlight default settings

Yes

Gamepad-related connection issue

No

Gamepad-related input issue

No

Gamepad-related streaming issue

Yes

Android version

Android 15

Device model

Poco X3 Pro

Server PC OS version

Windows 10 22H2

Server PC GeForce Experience version

Sunshine v2025.122.141614

Server PC Nvidia GPU driver version

572.83

Server PC antivirus and firewall software

Windows Defender and Windows Firewall

Screenshots

Image

Relevant log output
--- Moonlight log ---
03-17 19:07:11.028  7103  7103 I com.limelight.LimeLog: Timing out polled state for [redacted]
03-17 19:07:11.035  7103 12300 I com.limelight.LimeLog: NSD: Service discovery started
03-17 19:07:11.038  7103 13632 I com.limelight.LimeLog: Starting parallel poll for [redacted] 
03-17 19:07:11.059  7103 12300 I com.limelight.LimeLog: NSD: Machine appeared: [redacted]
03-17 19:07:11.073  7103 12322 I com.limelight.LimeLog: mDNS: [redacted] has 1 IPv4 addresses
03-17 19:07:11.073  7103 12322 I com.limelight.LimeLog: mDNS: [redacted] has 3 IPv6 addresses
03-17 19:07:11.074  7103 12322 I com.limelight.LimeLog: Found link-local address: [redacted]
03-17 19:07:11.074  7103 12322 I com.limelight.LimeLog: Ignoring non-matching global address: [redacted]
03-17 19:07:11.074  7103 12322 I com.limelight.LimeLog: Ignoring non-matching global address: [redacted]
03-17 19:07:11.075  7103 12322 I com.limelight.LimeLog: Ignoring non-global address: [redacted]
03-17 19:07:11.128  7103 13633 I com.limelight.LimeLog: Parallel poll for [redacted] returned address: [redacted]
03-17 19:07:12.634  7103 13633 I com.limelight.LimeLog: Starting parallel poll for [redacted]
03-17 19:07:12.751  7103 13633 I com.limelight.LimeLog: Parallel poll for [redacted] returned address: [redacted]
03-17 19:07:13.132  7103 12300 I com.limelight.LimeLog: NSD: Service discovery stopped
03-17 19:07:13.228  7103  7103 I com.limelight.LimeLog: Using Android O+ native mouse capture
03-17 19:07:13.236  7103  7103 I com.limelight.LimeLog: Examining decoder capabilities of c2.android.avc.decoder (round 1)
03-17 19:07:13.236  7103  7103 I com.limelight.LimeLog: Skipping software-only decoder: c2.android.avc.decoder
03-17 19:07:13.236  7103  7103 I com.limelight.LimeLog: Examining decoder capabilities of c2.android.avc.decoder (round 2)
03-17 19:07:13.237  7103  7103 I com.limelight.LimeLog: Skipping software-only decoder: c2.android.avc.decoder
03-17 19:07:13.237  7103  7103 I com.limelight.LimeLog: Skipping software-only decoder: c2.android.avc.decoder
03-17 19:07:13.237  7103  7103 W com.limelight.LimeLog: No AVC decoder found
03-17 19:07:13.237  7103  7103 I com.limelight.LimeLog: Examining decoder capabilities of c2.qti.hevc.decoder (round 1)
03-17 19:07:13.237  7103  7103 I com.limelight.LimeLog: Skipping decoder that lacks FEATURE_LowLatency for round 1
03-17 19:07:13.238  7103  7103 I com.limelight.LimeLog: Examining decoder capabilities of c2.android.hevc.decoder (round 1)
03-17 19:07:13.238  7103  7103 I com.limelight.LimeLog: Skipping software-only decoder: c2.android.hevc.decoder
03-17 19:07:13.238  7103  7103 I com.limelight.LimeLog: Examining decoder capabilities of c2.qti.hevc.decoder (round 2)
03-17 19:07:13.238  7103  7103 I com.limelight.LimeLog: Media performance class: 30
03-17 19:07:13.239  7103  7103 I com.limelight.LimeLog: Selected HEVC decoder: c2.qti.hevc.decoder
03-17 19:07:13.239  7103  7103 I com.limelight.LimeLog: No AV1 decoder found
03-17 19:07:13.268  7103  7103 I com.limelight.LimeLog: Decoder c2.qti.hevc.decoder will use reference frame invalidation for HEVC
03-17 19:07:13.268  7103  7103 I com.limelight.LimeLog: Decoder c2.qti.hevc.decoder wants 1 slices per frame
03-17 19:07:13.269  7103  7103 I com.limelight.LimeLog: Requesting 1 slices per frame
03-17 19:07:13.273  7103  7103 I com.limelight.LimeLog: Enumerated 0 gamepads
03-17 19:07:13.274  7103  7103 I com.limelight.LimeLog: Current display mode: 1080x2400x120.00001
03-17 19:07:13.274  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x120.00001
03-17 19:07:13.274  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x90.0
03-17 19:07:13.275  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x60.000004
03-17 19:07:13.275  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x50.0
03-17 19:07:13.276  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x48.000004
03-17 19:07:13.276  7103  7103 I com.limelight.LimeLog: Examining display mode: 1080x2400x30.000002
03-17 19:07:13.276  7103  7103 I com.limelight.LimeLog: Best display mode: 1080x2400x120.00001
03-17 19:07:13.276  7103  7103 I com.limelight.LimeLog: Current display mode is already the best display mode
03-17 19:07:13.277  7103  7103 I com.limelight.LimeLog: Display refresh rate: 120.00001
03-17 19:07:13.288  7103  7103 I com.limelight.LimeLog: Enumerated 0 gamepads

--- codecs from aida64 ---
<<< Codec >>>

c2.android.aac.decoder: audio/mp4a-latm
OMX.google.aac.decoder: audio/mp4a-latm
c2.android.aac.encoder: audio/mp4a-latm
OMX.google.aac.encoder: audio/mp4a-latm
c2.android.amrnb.decoder: audio/3gpp
OMX.google.amrnb.decoder: audio/3gpp
c2.android.amrnb.encoder: audio/3gpp
OMX.google.amrnb.encoder: audio/3gpp
c2.android.amrwb.decoder: audio/amr-wb
OMX.google.amrwb.decoder: audio/amr-wb
c2.android.amrwb.encoder: audio/amr-wb
OMX.google.amrwb.encoder: audio/amr-wb
c2.android.flac.decoder: audio/flac
OMX.google.flac.decoder: audio/flac
c2.android.flac.encoder: audio/flac
OMX.google.flac.encoder: audio/flac
c2.android.g711.alaw.decoder: audio/g711-alaw
OMX.google.g711.alaw.decoder: audio/g711-alaw
c2.android.g711.mlaw.decoder: audio/g711-mlaw
OMX.google.g711.mlaw.decoder: audio/g711-mlaw
c2.android.mp3.decoder: audio/mpeg
OMX.google.mp3.decoder: audio/mpeg
c2.android.opus.decoder: audio/opus
OMX.google.opus.decoder: audio/opus
c2.android.opus.encoder: audio/opus
c2.android.raw.decoder: audio/raw
OMX.google.raw.decoder: audio/raw
c2.android.vorbis.decoder: audio/vorbis
OMX.google.vorbis.decoder: audio/vorbis
c2.qti.avc.encoder: video/avc
OMX.qcom.video.encoder.avc: video/avc
c2.qti.heic.encoder: image/vnd.android.heic
c2.qti.hevc.decoder: video/hevc
OMX.qcom.video.decoder.hevc: video/hevc
c2.qti.hevc.encoder: video/hevc
OMX.qcom.video.encoder.hevc: video/hevc
c2.qti.hevc.encoder.cq: video/hevc
c2.qti.vp8.decoder: video/x-vnd.on2.vp8
OMX.qcom.video.decoder.vp8: video/x-vnd.on2.vp8
c2.qti.vp8.encoder: video/x-vnd.on2.vp8
OMX.qcom.video.encoder.vp8: video/x-vnd.on2.vp8
c2.qti.vp9.decoder: video/x-vnd.on2.vp9
OMX.qcom.video.decoder.vp9: video/x-vnd.on2.vp9
c2.android.av1-dav1d.decoder: video/av01
c2.android.av1.encoder: video/av01
c2.android.avc.decoder: video/avc
OMX.google.h264.decoder: video/avc
c2.android.avc.encoder: video/avc
OMX.google.h264.encoder: video/avc
c2.android.h263.decoder: video/3gpp
OMX.google.h263.decoder: video/3gpp
c2.android.h263.encoder: video/3gpp
OMX.google.h263.encoder: video/3gpp
c2.android.hevc.decoder: video/hevc
OMX.google.hevc.decoder: video/hevc
c2.android.hevc.encoder: video/hevc
c2.android.mpeg4.decoder: video/mp4v-es
OMX.google.mpeg4.decoder: video/mp4v-es
c2.android.mpeg4.encoder: video/mp4v-es
OMX.google.mpeg4.encoder: video/mp4v-es
c2.android.vp8.decoder: video/x-vnd.on2.vp8
OMX.google.vp8.decoder: video/x-vnd.on2.vp8
c2.android.vp8.encoder: video/x-vnd.on2.vp8
OMX.google.vp8.encoder: video/x-vnd.on2.vp8
c2.android.vp9.decoder: video/x-vnd.on2.vp9
OMX.google.vp9.decoder: video/x-vnd.on2.vp9
c2.android.vp9.encoder: video/x-vnd.on2.vp9
OMX.google.vp9.encoder: video/x-vnd.on2.vp9
c2.android.av1.decoder: video/av01
Additional context

No response

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the Android decoder capability check that emits the reported c2.android.avc.decoder and FEATURE_LowLatency log messages. Compare how the c2 and OMX codecs are classified on the affected device; done means AVC hardware acceleration is correctly recognized and the connection no longer reports that no AVC decoder was found.

Written by the indexing model from the issue text.

Assessment

Tech stack
android
Domain
audio-video-rtc, mobile-dev
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.