Transcoder icon indicating copy to clipboard operation
Transcoder copied to clipboard

java.lang.IllegalStateException: Failed to stop the muxer

Open Miteshmakwana73 opened this issue 4 years ago • 14 comments

I am using Motorola one fusion+ mobile

getting this error

image

` 2021-04-13 16:36:56.479 20572-21716/com.otaliastudios.transcoder.demo E/TranscodeEngine: Unexpected error while transcoding. java.lang.IllegalStateException: Failed to stop the muxer at android.media.MediaMuxer.nativeStop(Native Method) at android.media.MediaMuxer.stop(MediaMuxer.java:466) at com.otaliastudios.transcoder.sink.DefaultDataSink.stop(DefaultDataSink.java:218) at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.transcode(DefaultTranscodeEngine.kt:132) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:48) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) 2021-04-13 16:36:56.479 20572-21716/com.otaliastudios.transcoder.demo I/Decoder(VIDEO,3): release(): releasing codec. dequeuedInputs=0 dequeuedOutputs=0 2021-04-13 16:36:56.479 20572-21716/com.otaliastudios.transcoder.demo E/MediaMuxer: stop() is called in invalid state 3 2021-04-13 16:36:56.486 20572-21716/com.otaliastudios.transcoder.demo W/DefaultDataSink: Failed to release the muxer. java.lang.IllegalStateException: Failed to stop the muxer at android.media.MediaMuxer.nativeStop(Native Method) at android.media.MediaMuxer.stop(MediaMuxer.java:466) at android.media.MediaMuxer.release(MediaMuxer.java:706) at com.otaliastudios.transcoder.sink.DefaultDataSink.release(DefaultDataSink.java:224) at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.cleanup(DefaultTranscodeEngine.kt:137) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:63) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) 2021-04-13 16:36:56.486 20572-21716/com.otaliastudios.transcoder.demo I/DataSources: release(): releasing... 2021-04-13 16:36:56.487 20572-21716/com.otaliastudios.transcoder.demo I/DefaultDataSource(3): deinitialize(): deinitializing... 2021-04-13 16:36:56.489 20572-21716/com.otaliastudios.transcoder.demo I/DataSources: release(): released. 2021-04-13 16:36:56.490 20572-21716/com.otaliastudios.transcoder.demo I/MediaCodec: (0x7acca6c000) release 2021-04-13 16:36:56.502 20572-21716/com.otaliastudios.transcoder.demo I/MediaCodec: (0x7acfbd8a00) release

`

Miteshmakwana73 avatar Apr 13 '21 11:04 Miteshmakwana73

Hello, Please were you able to resolve this error? I'm getting the same error on the emulator.

phixtalk avatar May 26 '21 01:05 phixtalk

Same problem. Not getting caught in onTranscodeProgress, onTranscodeCompleted, onTranscodeCanceled, nor onTranscodeFailed.

This is happening on multiple devices. We will have to try and revert to previous releases or a new library.

Additionally getting this error:

W/DefaultDataSource(1): Could not release extractor: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaExtractor.release()' on a null object reference at com.otaliastudios.transcoder.source.DefaultDataSource.deinitialize(DefaultDataSource.java:95) at com.otaliastudios.transcoder.source.FilePathDataSource.deinitialize(FilePathDataSource.java:48) at com.otaliastudios.transcoder.internal.DataSources.deinit(DataSources.kt:23) at com.otaliastudios.transcoder.internal.DataSources.release(DataSources.kt:67) at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.cleanup(DefaultTranscodeEngine.kt:138) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:63) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) Could not release metadata: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.media.MediaMetadataRetriever.release()' on a null object reference at com.otaliastudios.transcoder.source.DefaultDataSource.deinitialize(DefaultDataSource.java:100) at com.otaliastudios.transcoder.source.FilePathDataSource.deinitialize(FilePathDataSource.java:48) at com.otaliastudios.transcoder.internal.DataSources.deinit(DataSources.kt:23) at com.otaliastudios.transcoder.internal.DataSources.release(DataSources.kt:67) at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.cleanup(DefaultTranscodeEngine.kt:138) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:63) at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102) at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641) at java.lang.Thread.run(Thread.java:919) I/DefaultDataSource(0): deinitialize(): deinitializing...

Please help.

aparkertg avatar May 29 '21 20:05 aparkertg

Note - Reverted back to version 0.9.1 and it's working as before.

aparkertg avatar May 29 '21 21:05 aparkertg

After migrating from 0.9.1 to 0.10.3, this error started to occur.

myalcinkuru avatar May 31 '21 10:05 myalcinkuru

Same here on Moto G4 with 0.10.4. Reverted to 0.9.1 with which the error does not occur.

kurtrex avatar Oct 25 '21 11:10 kurtrex

I can also confirm this issue, starting from v0.10.0 to v0.10.4

It seems to be very depended on the device, as I have multiple devices across different Android versions reporting the error and equally many devices which doesn't experience the issue.

So far we have seen the issue on the following devices:

  • Motorola G6 Play (Android 9)
  • Samsung Galaxy Tab S2 (Android 7)
  • Huawei Honor 9 (Android 9)
  • Samsung Galaxy S8 (Android 9)
  • Samsung Galaxy S9 (Android 10)
  • Sony XZ1 Compact (Android 9)
  • Motorola G8 Plus (Android 10)
  • LG G6 (Android 9)
  • Samsung Galaxy S8+ (Android 9)
  • Xiaomi Pocophone F1 (Android 10)
  • Xiaomi Mi 9 SE
  • SHARP QUALCOMM SHV39
  • Motorola One Action (Android 10)
  • LG G7 ThinQ (Android 10)
  • Nokia 6 (Android 9)

Noloxs avatar Dec 03 '21 13:12 Noloxs

Same Error ... Any update on this?

davindersidhu0770 avatar Dec 08 '21 11:12 davindersidhu0770

It's not being worked on. Stack traces in this ticket seem to represent different bugs, and in both cases I can't reproduce so it's hard to understand what's wrong.

If you have a repro device and media file, I encourage you to work on it or at least add a failing test here: https://github.com/natario1/Transcoder/blob/main/lib/src/androidTest/java/com/otaliastudios/transcoder/integration/IssuesTests.kt#L67-L90 , add media file in the assets folder. Then we should be able to fix it.

natario1 avatar Dec 08 '21 11:12 natario1

@natario1 on my device i am getting this exception (java.lang.IllegalStateException: Failed to stop the muxer). working fine on android 7,8,9 or 10 but in 6.0.1 its a bug.

davindersidhu0770 avatar Dec 08 '21 12:12 davindersidhu0770

I am also getting the same issue. I fixed by #159.

jumperson avatar Dec 23 '21 08:12 jumperson

I have the same problem that happens all the time with any video :

V/TranscodeEngine(10878): transcode(): executed step=334 advanced=false completed=true
I/MPEG4Writer(10878): reset()
D/MPEG4Writer(10878): Audio track stopping. Stop source
D/MPEG4Writer(10878): Audio track source stopping
D/MPEG4Writer(10878): Audio track source stopped
D/MPEG4Writer(10878): Audio track stopped. Stop source
D/MPEG4Writer(10878): Video track stopping. Stop source
D/MPEG4Writer(10878): Video track source stopping
D/MPEG4Writer(10878): Video track source stopped
I/MPEG4Writer(10878): Received total/0-length (155/1) buffers and encoded 155 frames. - Video
D/MPEG4Writer(10878): Video track stopped. Stop source
D/MPEG4Writer(10878): Duration from tracks range is [7685805, 7850244] us
D/MPEG4Writer(10878): Stopping writer thread
D/MPEG4Writer(10878): 0 chunks are written in the last batch
D/MPEG4Writer(10878): Writer thread stopped
I/MPEG4Writer(10878): release()
E/TranscodeEngine(10878): Unexpected error while transcoding.
E/TranscodeEngine(10878): java.lang.IllegalStateException: Failed to stop the muxer
E/TranscodeEngine(10878): 	at android.media.MediaMuxer.nativeStop(Native Method)
E/TranscodeEngine(10878): 	at android.media.MediaMuxer.stop(MediaMuxer.java:466)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.sink.DefaultDataSink.stop(DefaultDataSink.java:201)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.transcode(DefaultTranscodeEngine.kt:125)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:48)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102)
E/TranscodeEngine(10878): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99)
E/TranscodeEngine(10878): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
E/TranscodeEngine(10878): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
E/TranscodeEngine(10878): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
E/TranscodeEngine(10878): 	at java.lang.Thread.run(Thread.java:919)
E/MediaMuxer(10878): stop() is called in invalid state 3
W/DefaultDataSink(10878): Failed to release the muxer.
W/DefaultDataSink(10878): java.lang.IllegalStateException: Failed to stop the muxer
W/DefaultDataSink(10878): 	at android.media.MediaMuxer.nativeStop(Native Method)
W/DefaultDataSink(10878): 	at android.media.MediaMuxer.stop(MediaMuxer.java:466)
W/DefaultDataSink(10878): 	at android.media.MediaMuxer.release(MediaMuxer.java:706)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.sink.DefaultDataSink.release(DefaultDataSink.java:207)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.cleanup(DefaultTranscodeEngine.kt:130)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:63)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102)
W/DefaultDataSink(10878): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99)
W/DefaultDataSink(10878): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
W/DefaultDataSink(10878): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
W/DefaultDataSink(10878): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
W/DefaultDataSink(10878): 	at java.lang.Thread.run(Thread.java:919)
I/DataSources(10878): release(): releasing...
I/DefaultDataSource(127183679)(10878): deinitialize(): releasing...

The relevant line i guess is E/MediaMuxer(10878): stop() is called in invalid state 3

How do you revert to 0.9.1 @aparkertg please ?
When i set implementation 'com.otaliastudios:transcoder:0.9.1' the gradle says it can't find this version :

8: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':app:mergeDebugNativeLibs'.
> Could not resolve all files for configuration ':app:debugRuntimeClasspath'.
   > Could not find com.otaliastudios:transcoder:0.9.1.
     Searched in the following locations:
       - https://dl.google.com/dl/android/maven2/com/otaliastudios/transcoder/0.9.1/transcoder-0.9.1.pom
       - https://repo.maven.apache.org/maven2/com/otaliastudios/transcoder/0.9.1/transcoder-0.9.1.pom
       - https://storage.googleapis.com/download.flutter.io/com/otaliastudios/transcoder/0.9.1/transcoder-0.9.1.pom

Edit : This version is in jcenter() which is deprecated...

Tom3652 avatar Jan 24 '22 17:01 Tom3652

The same issue on Xiaomi Redmi Note 9 Pro (Android 10). Reproducible with any file.

09-10 20:56:23.030 E/TranscodeEngine(10146): Unexpected error while transcoding.
09-10 20:56:23.030 E/TranscodeEngine(10146): java.lang.IllegalStateException: Failed to stop the muxer
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at android.media.MediaMuxer.nativeStop(Native Method)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at android.media.MediaMuxer.stop(MediaMuxer.java:466)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.sink.DefaultDataSink.stop(DefaultDataSink.java:218)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.transcode(DefaultTranscodeEngine.kt:132)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:48)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-10 20:56:23.030 E/TranscodeEngine(10146): 	at java.lang.Thread.run(Thread.java:919)
09-10 20:56:23.031 I/Decoder(VIDEO,4)(10146): release(): releasing codec. dequeuedInputs=0 dequeuedOutputs=0
09-10 20:56:23.031 E/MediaMuxer(10146): stop() is called in invalid state 3
09-10 20:56:23.032 W/DefaultDataSink(10146): Failed to release the muxer.
09-10 20:56:23.032 W/DefaultDataSink(10146): java.lang.IllegalStateException: Failed to stop the muxer
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at android.media.MediaMuxer.nativeStop(Native Method)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at android.media.MediaMuxer.stop(MediaMuxer.java:466)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at android.media.MediaMuxer.release(MediaMuxer.java:706)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.sink.DefaultDataSink.release(DefaultDataSink.java:224)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.cleanup(DefaultTranscodeEngine.kt:137)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(TranscodeEngine.kt:63)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:102)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at com.otaliastudios.transcoder.Transcoder$1.call(Transcoder.java:99)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
09-10 20:56:23.032 W/DefaultDataSink(10146): 	at java.lang.Thread.run(Thread.java:919)

anyuta1166 avatar Sep 10 '22 19:09 anyuta1166

Same issue on samsung a20s

mohsin-whizpool avatar Aug 28 '23 06:08 mohsin-whizpool

Still an issue on 0.10.5 hence stuck with 0.9.1, Huawei P10 Lite Android 8

java.lang.IllegalStateException: Failed to stop the muxer
  at android.media.MediaMuxer.nativeStop(Native Method)
  at android.media.MediaMuxer.stop(MediaMuxer.java:447)
  at com.otaliastudios.transcoder.sink.DefaultDataSink.stop(Unknown Source:2)
  at com.otaliastudios.transcoder.internal.transcode.DefaultTranscodeEngine.transcode(Unknown Source:174)
  at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine$Companion.transcode(Unknown Source:113)
  at com.otaliastudios.transcoder.internal.transcode.TranscodeEngine.transcode(Unknown Source:2)
  at com.otaliastudios.transcoder.Transcoder$1.call(SourceFile:0)
  at com.otaliastudios.transcoder.Transcoder$1.call(SourceFile:0)
  at java.util.concurrent.FutureTask.run(FutureTask.java:266)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
  at java.lang.Thread.run(Thread.java:784)
ignoring execution exception. Should get handled by onTranscodeFiled() instead

licaon-kter avatar Nov 23 '23 13:11 licaon-kter