newtaDev / pod_player

Video player for flutter web & mobile devices, Play video from youtube or vimeo or network in flutter using pod player
https://pub.dev/packages/pod_player
MIT License
89 stars 144 forks source link

Codec error in Android #121

Open duongtuancanhktpm opened 11 months ago

duongtuancanhktpm commented 11 months ago

Android 12 Flutter 3.10.2 • channel stable • https://github.com/flutter/flutter.git Framework • revision 9cd3d0d9ff (6 days ago) • 2023-05-23 20:57:28 -0700 Engine • revision 90fa3ae28f Tools • Dart 3.0.2 • DevTools 2.23.1

I have a app using pod_player to play videos from YT. While I change between videos(spam ~2 minutes), I got this issue. While I play on Ios simulator, the app is not smooth. Is any problem while I init player controller with empty URL? Need to add any action while dispose to avoid the issue? Please help, Thank you

///init player final PodPlayerController playerController = PodPlayerController( playVideoFrom: PlayVideoFrom.youtube(''), podPlayerConfig: const PodPlayerConfig( autoPlay: true, ), )..initialise(); ///on click video playerController.changeVideo( playVideoFrom: PlayVideoFrom.youtube(videoUrl), );

///dispose @override void dispose() async { super.dispose(); controller.playerController.dispose(); controller.playerController.removeListener(() { }); }

--logcat E/ACodec (16145): Unable to instantiate codec 'OMX.qcom.video.decoder.avc' with err 0xfffffff4. E/ACodec (16145): signalError(omxError 0xfffffff4, internalError -12) E/MediaCodec(16145): Codec reported err 0xfffffff4, actionCode 0, while in state 1/INITIALIZING W/MediaCodec-JNI(16145): try to release MediaCodec from JMediaCodec::~JMediaCodec()... W/MediaCodec-JNI(16145): done releasing MediaCodec from JMediaCodec::~JMediaCodec(). W/MediaCodecRenderer(16145): Preferred decoder instantiation failed. Sleeping for 50ms then retrying. I/DMCodecAdapterFactory(16145): Creating an asynchronous MediaCodec adapter for track type video I/ACodec (16145): [] Now uninitialized I/ACodec (16145): [] onAllocateComponent I/OMXClient(16145): IOmx service obtained E/ACodec (16145): Unable to instantiate codec 'OMX.qcom.video.decoder.avc' with err 0xfffffff4. E/ACodec (16145): signalError(omxError 0xfffffff4, internalError -12) E/MediaCodec(16145): Codec reported err 0xfffffff4, actionCode 0, while in state 1/INITIALIZING W/MediaCodec-JNI(16145): try to release MediaCodec from JMediaCodec::~JMediaCodec()... W/MediaCodec-JNI(16145): done releasing MediaCodec from JMediaCodec::~JMediaCodec(). W/MediaCodecRenderer(16145): Failed to initialize decoder: OMX.qcom.video.decoder.avc W/MediaCodecRenderer(16145): android.media.MediaCodec$CodecException: Failed to initialize OMX.qcom.video.decoder.avc, error 0xfffffff4 W/MediaCodecRenderer(16145): at android.media.MediaCodec.native_setup(Native Method) W/MediaCodecRenderer(16145): at android.media.MediaCodec.(MediaCodec.java:1961) W/MediaCodecRenderer(16145): at android.media.MediaCodec.createByCodecName(MediaCodec.java:1938) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.AsynchronousMediaCodecAdapter$Factory.createAdapter(AsynchronousMediaCodecAdapter.java:95) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:111) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) W/MediaCodecRenderer(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) W/MediaCodecRenderer(16145): at android.os.Handler.dispatchMessage(Handler.java:102) W/MediaCodecRenderer(16145): at android.os.Looper.loopOnce(Looper.java:226) W/MediaCodecRenderer(16145): at android.os.Looper.loop(Looper.java:313) W/MediaCodecRenderer(16145): at android.os.HandlerThread.run(HandlerThread.java:67) E/MediaCodecVideoRenderer(16145): Video codec error E/MediaCodecVideoRenderer(16145): com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(1, null, null, video/avc, avc1.4D401F, -1, null, [1280, 720, 24.0], [-1, -1]) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1021) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) E/MediaCodecVideoRenderer(16145): at android.os.Handler.dispatchMessage(Handler.java:102) E/MediaCodecVideoRenderer(16145): at android.os.Looper.loopOnce(Looper.java:226) E/MediaCodecVideoRenderer(16145): at android.os.Looper.loop(Looper.java:313) E/MediaCodecVideoRenderer(16145): at android.os.HandlerThread.run(HandlerThread.java:67) E/MediaCodecVideoRenderer(16145): Caused by: android.media.MediaCodec$CodecException: Failed to initialize OMX.qcom.video.decoder.avc, error 0xfffffff4 E/MediaCodecVideoRenderer(16145): at android.media.MediaCodec.native_setup(Native Method) E/MediaCodecVideoRenderer(16145): at android.media.MediaCodec.(MediaCodec.java:1961) E/MediaCodecVideoRenderer(16145): at android.media.MediaCodec.createByCodecName(MediaCodec.java:1938) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.AsynchronousMediaCodecAdapter$Factory.createAdapter(AsynchronousMediaCodecAdapter.java:95) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:111) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) E/MediaCodecVideoRenderer(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) E/MediaCodecVideoRenderer(16145): ... 11 more E/ExoPlayerImplInternal(16145): Playback error E/ExoPlayerImplInternal(16145): com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(1, null, null, video/avc, avc1.4D401F, -1, null, [1280, 720, 24.0], [-1, -1]), format_supported=YES E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:578) E/ExoPlayerImplInternal(16145): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal(16145): at android.os.Looper.loopOnce(Looper.java:226) E/ExoPlayerImplInternal(16145): at android.os.Looper.loop(Looper.java:313) E/ExoPlayerImplInternal(16145): at android.os.HandlerThread.run(HandlerThread.java:67) E/ExoPlayerImplInternal(16145): Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(1, null, null, video/avc, avc1.4D401F, -1, null, [1280, 720, 24.0], [-1, -1]) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1021) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) E/ExoPlayerImplInternal(16145): ... 4 more E/ExoPlayerImplInternal(16145): Caused by: android.media.MediaCodec$CodecException: Failed to initialize OMX.qcom.video.decoder.avc, error 0xfffffff4 E/ExoPlayerImplInternal(16145): at android.media.MediaCodec.native_setup(Native Method) E/ExoPlayerImplInternal(16145): at android.media.MediaCodec.(MediaCodec.java:1961) E/ExoPlayerImplInternal(16145): at android.media.MediaCodec.createByCodecName(MediaCodec.java:1938) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.AsynchronousMediaCodecAdapter$Factory.createAdapter(AsynchronousMediaCodecAdapter.java:95) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:111) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) E/ExoPlayerImplInternal(16145): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) E/ExoPlayerImplInternal(16145): ... 11 more

newtaDev commented 11 months ago

Please don’t initialise the video controller with empty URL

duongtuancanhktpm commented 11 months ago

Please don’t initialise the video controller with empty URL

I change to late initialise, and use a correct URL, but the problem still happen. It seem happen after I call playerController.changeVideo ~10 time. Is there any problem with media codec while change video? I got the log that NO_MEMORY for mediaCodec. Please help to check the problem

I/ACodec (28967): [OMX.qcom.video.decoder.avc] OMX_QCOM_FramePacking_OnlyOneCompleteFrame is setting W/ACodec (28967): Fail to set FramePackingMode(-1010) E/ACodec (28967): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (28967): signalError(omxError 0x80001001, internalError -12) E/MediaCodec(28967): Codec reported err 0xfffffff4/NO_MEMORY, actionCode 0, while in state 3/CONFIGURING

newtaDev commented 11 months ago

Please add reproducible code to this issue

duongtuancanhktpm commented 11 months ago

Please add reproducible code to this issue

Thanks for quick responding. I have made a demo. There is an issue with universal_html, then I change line 2752 of file [/universal_html-2.2.2/lib/src/html/dom/element_subclasses.dart] from (final parsed = css.parse(text);) to (final parsed = css.parse(text ?? "");) then build the project. Reproduce step: open app > go to play video > change between 2 videos( press links below player) about 20 times(1 time/ ~2s) > error.

https://github.com/duongtuancanhktpm/error_demo

duongtuancanhktpm commented 11 months ago

Screenshot_20230531_163142_DEV forstudent This is a sometime issue. I do not know exactly reproduce step for this case.

Shahed-Atik commented 11 months ago

Screenshot_20230531_163142_DEV forstudent This is a sometime issue. I do not know exactly reproduce step for this case.

I have same issue

duongtuancanhktpm commented 11 months ago

Screenshot_20230531_163142_DEV forstudent This is a sometime issue. I do not know exactly reproduce step for this case.

I have same issue

I tried to change playerController = PodPlayerController() to call changeVideo() while playerController is initialized, then the issue seem fixed. But playerController is late initalize(need to get video URL from API). Too hard to use the playerController not support "lazy" initial without video URL

newtaDev commented 11 months ago

Don't initialize The PodPlayerController inside GetXController... And Dispose the PodPlayerController when exited from the page


class PlayerController extends GetxController {
  static String url1 = "https://www.youtube.com/watch?v=PXTWHpeAEdI";
  static String url2 = "https://www.youtube.com/watch?v=1rgGwx7Qtjc";
  late PodPlayerController playerController;

  void onChangeVideo(String url) {
    playerController.changeVideo(playVideoFrom: PlayVideoFrom.youtube(url));
  }
}

In player_screen.dart page

  @override
  void initState() {
    controller.playerController = PodPlayerController(
      playVideoFrom: PlayVideoFrom.youtube(PlayerController.url1),
      podPlayerConfig: const PodPlayerConfig(
        autoPlay: true,
      ),
    )..initialise();
    super.initState();
  }

  @override
  void dispose() {
    controller.playerController.dispose();
    super.dispose();
  }
duongtuancanhktpm commented 11 months ago

newtaDev

I change to init PodPlayerController as your gudie, but the Video codec error still happen. I have fixed ("PodGetXController" not found) issue by avoid call init PodPlayerController after initialised. I do not know the best way to init podPlayerCotroller afet get video URL from API. PodVideoPlayer need to init with build, but in this time, PodPlayerController has no URL

harshd110 commented 10 months ago

hi we are geting same issue when we multiple video change that time we face same issue

      controller.pause();

        await controller.videoSeekTo(Duration.zero);
        await controller.changeVideo(
          playVideoFrom: PlayVideoFrom.vimeo(
             "15515555" ),
          playerConfig: PodPlayerConfig(autoPlay: false),
        );

I/ExoPlayerImpl(26310): Init 5853926 [ExoPlayerLib/2.18.7] [whyred, Redmi Note 5 Pro, Xiaomi, 28] D/AudioManager(26310): getStreamVolume isRestricted mode = 0 I/OMXClient(26310): IOmx service obtained D/SurfaceUtils(26310): connecting to surface 0x753a1a1010, reason connectToSurface I/MediaCodec(26310): [OMX.qcom.video.decoder.avc] setting surface generation to 26941457 D/SurfaceUtils(26310): disconnecting from surface 0x753a1a1010, reason connectToSurface(reconnect) D/SurfaceUtils(26310): connecting to surface 0x753a1a1010, reason connectToSurface(reconnect) I/ExtendedACodec(26310): setupVideoDecoder() E/ExtendedACodec(26310): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (26310): signalError(omxError 0x80001001, internalError -12) E/MediaCodec(26310): Codec reported err 0xfffffff4, actionCode 0, while in state 3 E/ACodec (26310): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (26310): signalError(omxError 0x80001001, internalError -12) D/SurfaceUtils(26310): disconnecting from surface 0x753a1a1010, reason disconnectFromSurface E/MediaCodec(26310): configure failed with err 0xfffffff4, resetting... E/MediaCodec(26310): Codec reported err 0xfffffff4, actionCode 0, while in state 0 I/OMXClient(26310): IOmx service obtained W/MediaCodecRenderer(26310): Preferred decoder instantiation failed. Sleeping for 50ms then retrying. I/OMXClient(26310): IOmx service obtained D/SurfaceUtils(26310): connecting to surface 0x753a1a1010, reason connectToSurface I/MediaCodec(26310): [OMX.qcom.video.decoder.avc] setting surface generation to 26941458 D/SurfaceUtils(26310): disconnecting from surface 0x753a1a1010, reason connectToSurface(reconnect) D/SurfaceUtils(26310): connecting to surface 0x753a1a1010, reason connectToSurface(reconnect) I/ExtendedACodec(26310): setupVideoDecoder() E/ExtendedACodec(26310): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (26310): signalError(omxError 0x80001001, internalError -12) E/ACodec (26310): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (26310): signalError(omxError 0x80001001, internalError -12) E/MediaCodec(26310): Codec reported err 0xfffffff4, actionCode 0, while in state 3 D/SurfaceUtils(26310): disconnecting from surface 0x753a1a1010, reason disconnectFromSurface E/MediaCodec(26310): configure failed with err 0xfffffff4, resetting... E/MediaCodec(26310): Codec reported err 0xfffffff4, actionCode 0, while in state 0 I/OMXClient(26310): IOmx service obtained W/MediaCodecRenderer(26310): Failed to initialize decoder: OMX.qcom.video.decoder.avc W/MediaCodecRenderer(26310): android.media.MediaCodec$CodecException: Error 0xfffffff4 W/MediaCodecRenderer(26310): at android.media.MediaCodec.native_configure(Native Method) W/MediaCodecRenderer(26310): at android.media.MediaCodec.configure(MediaCodec.java:1960) W/MediaCodecRenderer(26310): at android.media.MediaCodec.configure(MediaCodec.java:1889) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:113) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) W/MediaCodecRenderer(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) W/MediaCodecRenderer(26310): at android.os.Handler.dispatchMessage(Handler.java:102) W/MediaCodecRenderer(26310): at android.os.Looper.loop(Looper.java:201) W/MediaCodecRenderer(26310): at android.os.HandlerThread.run(HandlerThread.java:65) E/MediaCodecVideoRenderer(26310): Video codec error E/MediaCodecVideoRenderer(26310): com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(2, null, null, video/avc, avc1.640020, 3092353, null, [1280, 720, 25.0], [-1, -1]) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1021) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) E/MediaCodecVideoRenderer(26310): at android.os.Handler.dispatchMessage(Handler.java:102) E/MediaCodecVideoRenderer(26310): at android.os.Looper.loop(Looper.java:201) E/MediaCodecVideoRenderer(26310): at android.os.HandlerThread.run(HandlerThread.java:65) E/MediaCodecVideoRenderer(26310): Caused by: android.media.MediaCodec$CodecException: Error 0xfffffff4 E/MediaCodecVideoRenderer(26310): at android.media.MediaCodec.native_configure(Native Method) E/MediaCodecVideoRenderer(26310): at android.media.MediaCodec.configure(MediaCodec.java:1960) E/MediaCodecVideoRenderer(26310): at android.media.MediaCodec.configure(MediaCodec.java:1889) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:113) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) E/MediaCodecVideoRenderer(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) E/MediaCodecVideoRenderer(26310): ... 10 more E/ExoPlayerImplInternal(26310): Playback error E/ExoPlayerImplInternal(26310): com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(2, null, null, video/avc, avc1.640020, 3092353, null, [1280, 720, 25.0], [-1, -1]), format_supported=YES E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:578) E/ExoPlayerImplInternal(26310): at android.os.Handler.dispatchMessage(Handler.java:102) E/ExoPlayerImplInternal(26310): at android.os.Looper.loop(Looper.java:201) E/ExoPlayerImplInternal(26310): at android.os.HandlerThread.run(HandlerThread.java:65) E/ExoPlayerImplInternal(26310): Caused by: com.google.android.exoplayer2.mediacodec.MediaCodecRenderer$DecoderInitializationException: Decoder init failed: OMX.qcom.video.decoder.avc, Format(2, null, null, video/avc, avc1.640020, 3092353, null, [1280, 720, 25.0], [-1, -1]) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1021) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecOrBypass(MediaCodecRenderer.java:537) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onInputFormatChanged(MediaCodecRenderer.java:1453) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onInputFormatChanged(MediaCodecVideoRenderer.java:917) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.readSourceOmittingSampleData(MediaCodecRenderer.java:954) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:769) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:1007) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:502) E/ExoPlayerImplInternal(26310): ... 3 more E/ExoPlayerImplInternal(26310): Caused by: android.media.MediaCodec$CodecException: Error 0xfffffff4 E/ExoPlayerImplInternal(26310): at android.media.MediaCodec.native_configure(Native Method) E/ExoPlayerImplInternal(26310): at android.media.MediaCodec.configure(MediaCodec.java:1960) E/ExoPlayerImplInternal(26310): at android.media.MediaCodec.configure(MediaCodec.java:1889) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.SynchronousMediaCodecAdapter$Factory.createAdapter(SynchronousMediaCodecAdapter.java:51) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.DefaultMediaCodecAdapterFactory.createAdapter(DefaultMediaCodecAdapterFactory.java:113) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.initCodec(MediaCodecRenderer.java:1099) E/ExoPlayerImplInternal(26310): at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.maybeInitCodecWithFallback(MediaCodecRenderer.java:1010) E/ExoPlayerImplInternal(26310): ... 10 more E/flutter (26310): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(VideoError, Video player had error com.google.android.exoplayer2.ExoPlaybackException: MediaCodecVideoRenderer error, index=0, format=Format(2, null, null, video/avc, avc1.640020, 3092353, null, [1280, 720, 25.0], [-1, -1]), format_supported=YES, null, null) E/flutter (26310): #0 PodPlayerController._checkAndWaitTillInitialized (package:pod_player/src/controllers/pod_player_controller.dart:73:9) E/flutter (26310): #1 PodPlayerController._checkAndWaitTillInitialized (package:pod_player/src/controllers/pod_player_controller.dart:82:11) E/flutter (26310): E/flutter (26310): #2 PodPlayerController._checkAndWaitTillInitialized (package:pod_player/src/controllers/pod_player_controller.dart:82:5) E/flutter (26310): E/flutter (26310): #3 PodPlayerController._checkAndWaitTillInitialized (package:pod_player/src/controllers/pod_player_controller.dart:82:5) E/flutter (26310): E/flutter (26310): #4 PodPlayerController._checkAndWaitTillInitialized (package:pod_player/src/controllers/pod_player_controller.dart:82:5) E/flutter (26310): E/flutter (26310): #5 PodPlayerController.initialise (package:pod_player/src/controllers/pod_player_controller.dart:61:5) E/flutter (26310):

duongtuancanhktpm commented 9 months ago

it seems some sources have not been released after call controller.changeVideo(). But I have no exp about media service of Android so I can't check more.

DipakSkywave commented 4 weeks ago

Please don’t initialise the video controller with empty URL

I change to late initialise, and use a correct URL, but the problem still happen. It seem happen after I call playerController.changeVideo ~10 time. Is there any problem with media codec while change video? I got the log that NO_MEMORY for mediaCodec. Please help to check the problem

I/ACodec (28967): [OMX.qcom.video.decoder.avc] OMX_QCOM_FramePacking_OnlyOneCompleteFrame is setting W/ACodec (28967): Fail to set FramePackingMode(-1010) E/ACodec (28967): [OMX.qcom.video.decoder.avc] configureCodec returning error -12 E/ACodec (28967): signalError(omxError 0x80001001, internalError -12) E/MediaCodec(28967): Codec reported err 0xfffffff4/NO_MEMORY, actionCode 0, while in state 3/CONFIGURING

@duongtuancanhktpm Can you resolve this issue? If yes then tell me how to resolve this issue.