Skip to content

[video_player] Can't play videos on HUAWEI and HONOR devices #156459

Description

@Inakitajes

Steps to reproduce

  1. Initialize network video.
  2. Try to play.

Expected results

Normally playback videos without any issues. It actually plays fine on all other devices. We have this app in production and only HUAWEI and HONOR devices are experimenting issues.

Actual results

Nothing happen, screen is black. Logs shows some codecs error but after trying to research about the error message we couldn't find out.

Code sample

Code sample
    _controller = VideoPlayerController.networkUrl(
            Uri.parse("https://url_to_video"),
            videoPlayerOptions: VideoPlayerOptions(
              mixWithOthers: true,
              allowBackgroundPlayback: true,
            ),
          )
            ..addListener(() {})
            ..setLooping(true)
            ..setVolume(0)
            ..initialize().then((_) {
              resumeVideo();
            });

Screenshots or Video

Screenshots / Video demonstration

[Upload media here]

Logs

Logs
10-08 12:14:50.354 23696 23696 I ExoPlayerImpl: Init 905e38e [AndroidXMedia3/1.4.1] [HWELE, ELE-L29, HUAWEI, 29]
10-08 12:14:50.382 23696 24857 I OMXClient: IOmx service obtained
10-08 12:14:50.383 23696 24857 I ACodec  : In onAllocateComponent create compenent, codec name: OMX.hisi.video.decoder.avc
10-08 12:14:50.386 23696 24856 I MediaCodec: [OMX.hisi.video.decoder.avc] setting surface generation to 24264714
10-08 12:14:50.387 23696 24857 E ACodec  : [OMX.hisi.video.decoder.avc] setPortMode on output to DynamicANWBuffer failed w/ err -2147483648
10-08 12:14:50.391 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.391 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.391 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] using color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) and dataspace 0x104
10-08 12:14:50.392 23696 24857 I ACodec  : onStart
10-08 12:14:50.424 23696 24857 I HwExtendedUtils: Set to window composer mode as 2
10-08 12:14:50.426 23696 24857 I ACodec  : gralloc usage: 0(OMX) => 0x2900(ACodec)
10-08 12:14:50.426 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 10 failed: -1010
10-08 12:14:50.427 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 9 failed: -1010
10-08 12:14:50.427 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] Allocating 8 buffers from a native window of size 1342464 on output port
10-08 12:14:50.461 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.461 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.461 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] using color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) and dataspace 0x104
10-08 12:14:50.467 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.467 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] got color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) err=0(NO_ERROR)
10-08 12:14:50.467 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] using color aspects (R:2(Limited), P:1(BT709_5), M:1(BT709_5), T:3(SMPTE170M)) and dataspace 0x104
10-08 12:14:50.468 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] Now handling output port settings change
10-08 12:14:50.469 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] Output port now disabled.
10-08 12:14:50.470 23696 24857 I HwExtendedUtils: Set to window composer mode as 2
10-08 12:14:50.470 23696 24857 I ACodec  : gralloc usage: 0(OMX) => 0x2900(ACodec)
10-08 12:14:50.473 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 19 failed: -1010
10-08 12:14:50.474 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 18 failed: -1010
10-08 12:14:50.474 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 17 failed: -1010
10-08 12:14:50.474 23696 24857 W ACodec  : [OMX.hisi.video.decoder.avc] setting nBufferCountActual to 16 failed: -1010
10-08 12:14:50.474 23696 24857 E ACodec  : Failed to allocate output port buffers after port reconfiguration: (-1010)
10-08 12:14:50.474 23696 24857 E ACodec  : signalError(omxError 0x80001001, internalError -1010)
10-08 12:14:50.474 23696 24857 E ACodec  : Error occurred while disabling the output port
10-08 12:14:50.474 23696 24856 E MediaCodec: Codec reported err 0xfffffc0e, actionCode 0, while in state 6
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer: Video codec error
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:   java.lang.IllegalStateException
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2789)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at q5.h0.i(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at q5.t.H0(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at q5.t.e(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at d6.k.e(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at h5.o1.w(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at h5.o1.handleMessage(SourceFile:1)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at android.os.Handler.dispatchMessage(Handler.java:106)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at android.os.Looper.loop(Looper.java:219)
10-08 12:14:50.481 23696 24854 E MediaCodecVideoRenderer:       at android.os.HandlerThread.run(HandlerThread.java:67)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal: Playback error
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:   h5.u: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.64001F, -1, null, [1080, 720, 100.0, ColorInfo(BT709, Limited range, SDR SMPTE 170M, false, 8bit Luma, 8bit Chroma)], [-1, -1]), format_supported=YES
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at h5.o1.handleMessage(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at android.os.Handler.dispatchMessage(Handler.java:106)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at android.os.Looper.loop(Looper.java:219)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at android.os.HandlerThread.run(HandlerThread.java:67)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:   Caused by: d6.j: Decoder failed: OMX.hisi.video.decoder.avc
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at d6.k.C0(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at q5.t.e(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at d6.k.e(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at h5.o1.w(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       ... 4 more
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:   Caused by: java.lang.IllegalStateException
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2789)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at q5.h0.i(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       at q5.t.H0(SourceFile:1)
10-08 12:14:50.481 23696 24854 E ExoPlayerImplInternal:       ... 7 more
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal: Disable failed.
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:   java.lang.IllegalStateException
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at android.media.MediaCodec.native_flush(Native Method)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at android.media.MediaCodec.flush(MediaCodec.java:2194)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at q5.h0.flush(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at q5.t.K0(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at q5.t.M0(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at q5.t.c0(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at d6.k.c0(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at h5.n.f(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at h5.o1.v(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at h5.o1.A0(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at h5.o1.s1(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at h5.o1.handleMessage(SourceFile:1)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at android.os.Handler.dispatchMessage(Handler.java:106)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at android.os.Looper.loop(Looper.java:219)
10-08 12:14:50.482 23696 24854 E ExoPlayerImplInternal:       at android.os.HandlerThread.run(HandlerThread.java:67)
10-08 12:14:53.469 23696 24857 E ACodec  : signalError(omxError 0x80001001, internalError -110)
10-08 12:14:53.469 23696 24856 E MediaCodec: Codec reported err 0xffffff92, actionCode 0, while in state 10
10-08 12:14:53.482 23696 24857 I ACodec  : [OMX.hisi.video.decoder.avc] forcing the release of codec
10-08 12:14:53.496 23696 24857 E ACodec  : OMX.hisi.video.decoder.avc
10-08 12:17:16.187 23696 23696 W HiTouch_PressGestureDetector: Touch pointer move a lot. The moving distance of X is:19.0, limit is:60The moving distance of Y is:74.0, limit is:60
10-08 12:17:17.351 23696 23696 I ExoPlayerImpl: Release 905e38e [AndroidXMedia3/1.4.1] [HWELE, ELE-L29, HUAWEI, 29] [media3.common, media3.exoplayer, media3.decoder, media3.datasource, media3.extractor]

Flutter Doctor output

Doctor output
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.24.3, on macOS 15.0 24A335 darwin-arm64, locale en-US)
[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2024.1)
[✓] VS Code (version 1.94.0)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

Metadata

Metadata

Assignees

No one assigned

    Labels

    r: fixedIssue is closed as already fixed in a newer version

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions