dburckh / ExoPlayer

Deprecated. See https://github.com/dburckh/Media3Avi
Apache License 2.0
3 stars 2 forks source link

NullPointerException #1

Closed moneytoo closed 2 years ago

moneytoo commented 2 years ago

Hi! Here's an exception I got from couple of random files I have with me.

E/LoadTask: Unexpected exception loading stream
      java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
        at com.google.android.exoplayer2.extractor.avi.AviExtractor.readTracks(AviExtractor.java:233)
        at com.google.android.exoplayer2.extractor.avi.AviExtractor.read(AviExtractor.java:456)
        at com.google.android.exoplayer2.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:127)
        at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1046)
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:409)
        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:920)
I/SurfaceView: onWindowVisibilityChanged(0) true android.view.SurfaceView{954ee63 V.E...... ......I. 0,0-0,0} of ViewRootImpl@71dcceb[PlayerActivity]
E/ExoPlayerImplInternal: Playback error
      com.google.android.exoplayer2.ExoPlaybackException: Source error
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleIoException(ExoPlayerImplInternal.java:628)
        at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:604)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loopOnce(Looper.java:226)
        at android.os.Looper.loop(Looper.java:313)
        at android.os.HandlerThread.run(HandlerThread.java:67)
     Caused by: com.google.android.exoplayer2.upstream.Loader$UnexpectedLoaderException: Unexpected NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
        at com.google.android.exoplayer2.upstream.Loader$LoadTask.run(Loader.java:430)
        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:920)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int java.lang.String.hashCode()' on a null object reference
        at com.google.android.exoplayer2.extractor.avi.AviExtractor.readTracks(AviExtractor.java:233)
        at com.google.android.exoplayer2.extractor.avi.AviExtractor.read(AviExtractor.java:456)
        at com.google.android.exoplayer2.source.BundledExtractorsAdapter.read(BundledExtractorsAdapter.java:127)
        at com.google.android.exoplayer2.source.ProgressiveMediaPeriod$ExtractingLoadable.load(ProgressiveMediaPeriod.java:1046)

Sample: tv-test-10.zip

I cut the sample using this command: ffmpeg -i tv.avi -t 10 -c copy tv-test-10.avi Both the original as well as the sample are playable using apps like MX Player, VLC, mpv.

Thank you!

dburckh commented 2 years ago

Yeah, it's an unsupported FOURCC (DX50) and that caused a crash. I added it and fixed it so it logs a warning instead of crashing. The clip is now playing.

moneytoo commented 2 years ago

That fixed it. Thanks!