media icon indicating copy to clipboard operation
media copied to clipboard

H.265/HEVC Playback Fails on MediaTek Dimensity 700 / 900 / 1080 after Android 15 Upgrade

Open akhilesh-dubey opened this issue 5 months ago • 26 comments

Version

Media3 1.6.0

More version details

Player: ExoPlayer v1.6.0 Observations: After upgrading from Android 14 to Android 15, H.265/HEVC hardware decoding on MediaTek Dimensity 700, 900, or 1080 devices fails to render video. The decoder initializes without throwing errors, but the output surface remains black or frozen.

  • No error entries in adb logcat during failure.
  • Works normally on the same devices before Android 15 upgrade.
  • Reproducible across multiple devices using Dimensity 700 / 900 / 1080 chipsets.

Please investigate as a potential MediaCodec hardware decoder regression affecting MediaTek Dimensity 700/900/1080 HEVC decoding on Android 15.

Devices that reproduce the issue

Device Brand & Model: Samsung Galaxy A34, Redmi Note 12S, etc. Chipset: MediaTek Dimensity 700 / 900 / 1080 Android Version: Android 15 Hardware Decoder Used: Yes (OMX.MTK.HEVC.Decoder or equivalent MediaTek HEVC hardware decoder)

Devices that do not reproduce the issue

Android phone with other chipset on Android 15.

Reproducible in the demo app?

Not tested

Reproduction steps

Play an H.265/HEVC-encoded video (hvc1.2.4.L90.90) in ExoPlayer v1.6.0 with hardware decoding enabled. Observe playback behavior:

  • Black screen while audio continues
  • Stuck frame during playback Note: Play an H.264/AVC (avc1.64001f) file → works fine with hardware decoding.

Expected result

H.265/HEVC content should decode and render smoothly via the MediaTek HEVC hardware decoder.

Actual result

Black screen (audio continues) or frozen video frame. No MediaCodec error callback or ExoPlaybackException is reported.

Media

Test Video Details: Resolution: e.g., 1024×576 Frame Rate: e.g., 30 fps Bitrate: e.g., 3 Mbps Codec Profile & Level: hvc1.2.4.L93.90 (HEVC [email protected]) DRM: Widevine L1 content.

Bug Report

  • [ ] You will email the zip file produced by adb bugreport to [email protected] after filing this issue.

akhilesh-dubey avatar Aug 11 '25 06:08 akhilesh-dubey

@microkatz To provide additional details on the investigation:

The Galaxy A34 received a software update on June 6th introducing Android 15 and One UI 7, with firmware version A346BXXU9DYE7 (reference link). From this timeframe onward, we began receiving customer complaints regarding the “No video” issue.

Prior to the update (on Android 14), the Galaxy A34 5G reported its model as SM-A346B [MT6877V/TTZA]. After the Android 15 update, the reported model changed to SM-A346B [MT6877].

Our analytics data shows users experiencing playback issues immediately after the Android 15 update on the Galaxy A34 5G. The problem occurs specifically with HEVC codec playback and does not throw any errors.

Since this issue impacts many users, we request urgent support to help resolve it as soon as possible.

akhilesh-dubey avatar Aug 11 '25 19:08 akhilesh-dubey

In our initial investigation, it appears that the Non-DRM content plays without any issues using HEVC hardware decoder on same device.

akhilesh-dubey avatar Aug 11 '25 19:08 akhilesh-dubey

We have escalated this to MediaTek. Are you able to reproduce with HEVC content using the demo Exoplayer apk?

Internal ref: 440680767

rrfrias avatar Aug 23 '25 03:08 rrfrias

From the first comment

No error entries in adb logcat during failure.

I understand, but might you be able to share the logcat? And can you give us permission to share the logcat with MediaTek?

rrfrias avatar Aug 25 '25 08:08 rrfrias

@rrfrias I am unable to locate any asset in the demo app that uses HEVC with the Main10 profile (eg. hvc1.2.4.L90.90 with DRM enabled. However with DRM enabled HEVC main profile(eg. hev1.1.6.L123.90) plays without any issue. I'm currently looking for open-source HEVC Main10 content with DRM enabled that I can use and confirm.

akhilesh-dubey avatar Aug 25 '25 11:08 akhilesh-dubey

Opened an internal tracker 441087707 to add test content to Exoplayer and additional profile testing. If you can share a bugreport as mentioned two comments above, do let us know.

rrfrias avatar Aug 25 '25 18:08 rrfrias

We have identified additional MediaTek Dimensity models that are affected by the same root cause: MT6833 / MT6833V/NZA / MT6833V/PNZA / MT6833V/ZA MT6853V / MT6853V/NZA / MT6853V/TNZA MT6877 / MT6877V / MT6877V/TTZA MT6781

akhilesh-dubey avatar Aug 28 '25 08:08 akhilesh-dubey

@akhilesh-dubey might it be possible to share a bugreport and grant permission to share the bugreport with MediaTek?

rrfrias avatar Aug 28 '25 17:08 rrfrias

@rrfrias On XiaoMi TV with Android 14 , I also have the issue of having audio but no video during playback is likely due to a failure in the video decoding (MediaTek (MTK) hardware decoder ) or rendering process. The video decoder (c2.mtk.hevc.decoder) eventually reaches the RUNNING state, but no video frames are rendered, and no video renderedFrame or similar logs. [The content stream without DRM]

Image

This is the the provided log file: logcat1.txt.zip

Romantic-LiXuefeng avatar Sep 02 '25 01:09 Romantic-LiXuefeng

This look like unencrypted playback failure. @Romantic-LiXuefeng, can you open another tracker?

@akhilesh-dubey might it be possible to share a bugreport with us and grant permission to share it with MediaTek?

rrfrias avatar Sep 02 '25 22:09 rrfrias

This look like unencrypted playback failure. @Romantic-LiXuefeng, can you open another tracker?

@akhilesh-dubey might it be possible to share a bugreport with us and grant permission to share it with MediaTek?

Yes, In my scene, it's an unencrypted stream. If needed, I would like to open a new issue to track, Is there a preliminary analysis conclusion from the log. @rrfrias

Romantic-LiXuefeng avatar Sep 04 '25 01:09 Romantic-LiXuefeng

@rrfrias I’ve shared the bug report titled Issue#2711 bugreport for Video Freeze issue on MediaTek Dimensity devices. please let us know if you need any additional details.

akhilesh-dubey avatar Sep 04 '25 11:09 akhilesh-dubey

@akhilesh-dubey thanks for the bugreport. I do not see a license being retrieved. I see MediaCodec trying to connect to the surface and immediately after disconnecting. I think that playback did not happen in this case. Can you capture a bugreport that exhibits the problem you mentioned?

The decoder initializes without throwing errors, but the output surface remains black or frozen.

09-04 15:58:42.191 D MediaCodec: [0xb400007266c468e0] [c2.mtk.hevc.decoder] connectToSurface: surface 0xb400007196b58f50, mSurface 0xb400007196b1f7a0
09-04 15:58:42.191 D SurfaceUtils: connecting to surface 0xb400007196b58f60, reason connectToSurface
09-04 15:58:42.191 I MediaCodec: [c2.mtk.hevc.decoder] setting surface generation to 8627202
...
09-04 15:58:42.191 I MediaCodec: [mId: 0] [video-debug-dec] disconnectFromSurface: mSurface 0xb400007196b1f7a0
09-04 15:58:42.191 D MediaCodec: [0xb400007266c468e0] [c2.mtk.hevc.decoder] disconnectFromSurface: mSurface 0xb400007196b1f7a0
09-04 15:58:42.191 D SurfaceUtils: disconnecting from surface 0xb400007196b1f7b0, reason disconnectFromSurface
...
09-04 15:58:42.193 D CCodecBufferChannel: [c2.mtk.hevc.decoder#37] MediaCodec discarded an unknown buffer

rrfrias avatar Sep 04 '25 15:09 rrfrias

@rrfrias I've shared the bug report in the same email thread. Bug report was captured after reproducing the issue, where we observed a black screen with only audio and subtitles playing, but no video.

akhilesh-dubey avatar Sep 10 '25 18:09 akhilesh-dubey

Thanks! Looking at it with MediaTek.

rrfrias avatar Sep 11 '25 17:09 rrfrias

MediaTek indicated that there was an issue with the specific device. Will follow up with Xiaomi. @akhilesh-dubey if you have any bugreports/logcats with Samsung or devices from other OEMs, do send them our way.

rrfrias avatar Sep 16 '25 22:09 rrfrias

@rrfrias We’ve identified several OEM devices showing the same issue: audio plays but no video. Currently, we don’t have access to these devices to collect bugreports. The common factor is that they all use one of the mentioned MediaTek Dimensity chipsets, and the failures are observed after the Android 15 upgrade.

Affected Devices: Samsung Galaxy A14 5G Galaxy A22 5G Galaxy A32 5G Galaxy A34 5G Galaxy M53 5G

Xiaomi / Redmi Redmi Note 12S Redmi Note 13 Redmi 14C

Honor Honor 90 Honor 90 Lite Honor 200 Lite Oppo Oppo Reno Series

Vivo Vivo V25 Pro

Motorola Motorola Edge 20 Lite Motorola Edge 40 Motorola G54 5G

Lenovo Tab P11 (Gen 2) Tab P12

TCL Tab 10 5G

Infinix Note 12 Pro 5G Note 30 5G

akhilesh-dubey avatar Sep 17 '25 04:09 akhilesh-dubey

@rrfrias Since we don't have the specific hardware needed to provide the bugreport, could we raise this with other OEMs who might be able to help? Also, please let us know once the Demo app includes the HEVC Main 10 profile asset (internal tracker 441087707), so we can give it a try.

akhilesh-dubey avatar Sep 29 '25 09:09 akhilesh-dubey

Opened tracker 448443879 to work with Xiaomi for the Redmi devices.

Do you have a demo/test apk that you share with content that users have reported problems with. We would like to share it with partners (listed above) to see if they can reproduce. Even if it is a MediaTek issue, they do not have the ability to reproduce on OEM devices.

I assume since the app does not see errors, and you are only alerted to issues by users, you do not have an estimate for repro rate.

rrfrias avatar Sep 30 '25 21:09 rrfrias

@rrfrias Thanks for the update. Could you please confirm whether Xiaomi tested the DRM assets with the mentioned codec profile? Also, could you let us know which app they used for testing?

Based on user data, we observe a high reproducibility rate, as the average playback duration is significantly low for the mentioned profile.

akhilesh-dubey avatar Oct 13 '25 07:10 akhilesh-dubey

@rrfrias We have one more finding here - I retried the reproduction on the Xiaomi Redmi Note 13 5G device.

The same assets play smoothly without video freeze when selecting up to HD resolutions(1920x720), with the following configuration: mimeType=video/hevc, container=video/mp4, bitrate=17110602, codecs=hvc1.2.4.L123.90, drm=[playready,widevine,cenc], res=1920x800, color=BT709/Limited range/SDR SMPTE 170M/10/10, fps=23.976025, maxSubLayers=1, roleFlags=[main]] However, when the playback adapts to a higher resolution — Full HD (1920x1080) or above, the video freeze issue occurs: mimeType=video/hevc, container=video/mp4, bitrate=6719313, codecs=hvc1.2.4.L120.90, drm=[playready,widevine,cenc], res=1920x960, color=BT709/Limited range/SDR SMPTE 170M/10/10, fps=23.976025, maxSubLayers=1, roleFlags=[main]]

It’s important to note that before the Android 15 upgrade, the same device could play Full HD content without any freezing.

akhilesh-dubey avatar Oct 13 '25 15:10 akhilesh-dubey

Are you able to reproduce with

  1. A non-Xiaomi device? If so, can you share the logcat?
  2. Playing back test content from the exoplayer demo app:
  • Exoplayer demo app -> Widevine DASH:MP4, H265 -> WV Secure UHD (MP4, H265)

If not maybe there is something else related to your encoding that is causing playback failure. If you can share a demo apk with test content that would help Xiaomi/MediaTek investigate this sooner.

rrfrias avatar Oct 14 '25 21:10 rrfrias

@rrfrias I currently have only a Xiaomi device(Redmi Note 13 5G), which does not support UHD playback. When I try to play UHD content, it throws a decoder renderer error with NO_EXCEEDS_CAPABILITIES.

I tested a Widevine DASH (MP4, H.265) HD (CENC) stream with has a maximum resolution of 1920x856, and it played 1920x856 resolution without any issues.

To clarify, the sample asset stream uses the Main profile, whereas the issue I mentioned occurs with the Main 10 profile.

If we can get a sample asset encoded with HEVC Main10 + DRM + Full HD, I can test it on my device.

For reference, HEVC + HD + Main + DRM playback works fine without any issues.

akhilesh-dubey avatar Oct 30 '25 15:10 akhilesh-dubey

Thanks for pointing that out. Will encode some content and get back to you.

rrfrias avatar Nov 03 '25 08:11 rrfrias

I have Motorola Edge 40 with Android 15. CPU is Mediatek Dimensity 8020.

I'm not sure but I guess, it might be a problem with F1TV app. Of course F1TV support says that it's issue on my side, because this device isn't supported :) They don't have list of supported devices... They have requirements of devices here and here.

And I'm saying it here because in second link it says that it's required to have:

Video decoder capable of:

  • HEVC codec playback
  • Support for HEVC level hev1.2.4.L153.B0 with Android 14+.
Image

Well, idk how to fix it and this issue seems to be the only reason for the app to not work properly.

N58 avatar Nov 25 '25 20:11 N58

According to https://dashif.org/codecs/video/, "hev1.2.4.L153.B0" is also HEVC Main 10 profile. I guess that means this is the same problem.

fredgc avatar Nov 25 '25 23:11 fredgc