Exoplayer: Cannot play mp4 videos in some devices like Redmi & micromax

Created on 7 Mar 2018  路  20Comments  路  Source: google/ExoPlayer

In same device I am able to play mp4 videos but some videos are not working whereas as all the videos have same bitrate, framerate, quality bla bla (all same)

03-07` 14:51:16.255 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.255 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.274 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.274 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.280 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.280 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.294 18656 18778 W VideoCapabilities: Unsupported mime video/divx
03-07 14:51:16.300 18656 18778 W VideoCapabilities: Unsupported mime video/divx4
03-07 14:51:16.307 18656 18778 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 14:51:16.316 18656 18778 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 14:51:16.329 18656 18778 W Utils   : could not parse long range '35-34'
03-07 14:51:16.352 18656 18778 I VideoCapabilities: Unsupported profile 4 for video/mp4v-es
03-07 14:51:16.361 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.361 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.384 18656 18787 I OMXClient: MuxOMX ctor
03-07 14:51:16.551 18656 18786 I MediaCodec: [OMX.qcom.video.decoder.avc] setting surface generation to 19103745
03-07 14:51:16.553 18656 18787 I ExtendedACodec: setupVideoDecoder()
03-07 14:51:16.553 18656 18787 I ExtendedACodec: vpp-enable search is 0 and value is 0
03-07 14:51:16.567 18656 18787 I ExtendedACodec: Decoder will be in frame by frame mode
03-07 14:51:16.603 18656 18787 D SurfaceUtils: set up nativeWindow 0x7f74ee2810 for 1296x968, color 0x7fa30c04, rotation 0, usage 0x2002900
03-07 14:51:16.636 18656 18795 I OMXClient: MuxOMX ctor
03-07 14:51:16.651 18656 18787 E ACodec  : [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
03-07 14:51:16.651 18656 18787 E ACodec  : signalError(omxError 0x80001009, internalError -2147483648)
03-07 14:51:16.652 18656 18786 E MediaCodec: Codec reported err 0x80001009, actionCode 0, while in state 6
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal: Internal runtime error.
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2570)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:899)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:510)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
03-07 14:51:16.705 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f5c0
03-07 14:51:16.705 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 16 to native window
03-07 14:51:16.706 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f680
03-07 14:51:16.706 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 15 to native window
03-07 14:51:16.707 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f6e0
03-07 14:51:16.707 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 14 to native window
03-07 14:51:16.708 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f740
03-07 14:51:16.708 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 13 to native window
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal: Stop failed.
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_stop(Native Method)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.stop(MediaCodec.java:2007)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:455)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:409)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:283)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:145)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:709)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:684)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:364)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
03-07 14:51:16.255 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.255 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.274 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.274 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.280 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.280 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.294 18656 18778 W VideoCapabilities: Unsupported mime video/divx
03-07 14:51:16.300 18656 18778 W VideoCapabilities: Unsupported mime video/divx4
03-07 14:51:16.307 18656 18778 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 14:51:16.316 18656 18778 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 14:51:16.329 18656 18778 W Utils   : could not parse long range '35-34'
03-07 14:51:16.352 18656 18778 I VideoCapabilities: Unsupported profile 4 for video/mp4v-es
03-07 14:51:16.361 18656 18778 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 14:51:16.361 18656 18778 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 14:51:16.384 18656 18787 I OMXClient: MuxOMX ctor
03-07 14:51:16.551 18656 18786 I MediaCodec: [OMX.qcom.video.decoder.avc] setting surface generation to 19103745
03-07 14:51:16.553 18656 18787 I ExtendedACodec: setupVideoDecoder()
03-07 14:51:16.553 18656 18787 I ExtendedACodec: vpp-enable search is 0 and value is 0
03-07 14:51:16.567 18656 18787 I ExtendedACodec: Decoder will be in frame by frame mode
03-07 14:51:16.603 18656 18787 D SurfaceUtils: set up nativeWindow 0x7f74ee2810 for 1296x968, color 0x7fa30c04, rotation 0, usage 0x2002900
03-07 14:51:16.636 18656 18795 I OMXClient: MuxOMX ctor
03-07 14:51:16.651 18656 18787 E ACodec  : [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
03-07 14:51:16.651 18656 18787 E ACodec  : signalError(omxError 0x80001009, internalError -2147483648)
03-07 14:51:16.652 18656 18786 E MediaCodec: Codec reported err 0x80001009, actionCode 0, while in state 6
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal: Internal runtime error.
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2570)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:899)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:510)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 14:51:16.697 18656 18778 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
03-07 14:51:16.705 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f5c0
03-07 14:51:16.705 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 16 to native window
03-07 14:51:16.706 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f680
03-07 14:51:16.706 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 15 to native window
03-07 14:51:16.707 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f6e0
03-07 14:51:16.707 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 14 to native window
03-07 14:51:16.708 18656 18787 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f7189f740
03-07 14:51:16.708 18656 18787 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 13 to native window
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal: Stop failed.
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_stop(Native Method)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.media.MediaCodec.stop(MediaCodec.java:2007)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:455)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:409)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:283)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:145)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:709)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:684)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:364)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 14:51:16.720 18656 18778 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)

My code

BandwidthMeter bandwidthMeter = new DefaultBandwidthMeter();
TrackSelector trackSelector = new DefaultTrackSelector(new AdaptiveTrackSelection.Factory(bandwidthMeter));
LoadControl loadControl = new DefaultLoadControl(
new DefaultAllocator(true, BUFFER_SEGMENT_SIZE),
15 * 1000,
30 * 1000,
DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_MS,
DefaultLoadControl.DEFAULT_BUFFER_FOR_PLAYBACK_AFTER_REBUFFER_MS
);
player = ExoPlayerFactory.newSimpleInstance(this, trackSelector, loadControl);
Uri videouri = Uri.parse(link);
defaultHttpDataSourceFactory = new DefaultHttpDataSourceFactory("exoplayervideo");
extractorsFactory = new DefaultExtractorsFactory();
videoSource = new ExtractorMediaSource
(videouri, defaultHttpDataSourceFactory, extractorsFactory, null, null);
playerView.setPlayer(player);
player.addListener(this);
dialog = ProgressDialog.show(this, "Please wait", "Buffering...");
player.prepare(videoSource);
player.setPlayWhenReady(true);

intended behavior

Most helpful comment

I guess developers are no more active or interested in this issue :-1:

All 20 comments

We cannot help unless we receive a full bug report (captured with adb bugreport shortly after encountering the problem) and a sample media file that causes the issue to occur.

I am getting this issue in production and cannot send the bug report... app is not crashing anywhere as well

Can you at least get a sample of problematic media and some more information about the device (e.g. what build it's running, the exact model name, etc etc). Most analytics services provide quite a lot more information than has been provided above.

"network":"MOBILE",
"platformextension":"android_native",
"brand":"Xiaomi",
"af_timestamp":"1520408419280",
"model":"Redmi 4",
"product":"santoni",
"sdk":"25"

Android version : 7.0

link of media : https://drive.google.com/file/d/1enU5v5oaOPA4kZlAsFd-YEuVsuQ-HMbA/view?usp=sharing

another stack trace :
03-07 13:50:36.708 11592 11728 D AppsFlyer_4.5.0: response code: 404
03-07 13:50:38.047 11592 11727 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 13:50:38.047 11592 11727 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 13:50:38.066 11592 11727 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 13:50:38.066 11592 11727 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 13:50:38.072 11592 11727 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 13:50:38.072 11592 11727 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 13:50:38.086 11592 11727 W VideoCapabilities: Unsupported mime video/divx
03-07 13:50:38.090 11592 11727 W VideoCapabilities: Unsupported mime video/divx4
03-07 13:50:38.097 11592 11727 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 13:50:38.110 11592 11727 W VideoCapabilities: Unsupported mime video/mp4v-esdp
03-07 13:50:38.124 11592 11727 W Utils   : could not parse long range '35-34'
03-07 13:50:38.145 11592 11727 I VideoCapabilities: Unsupported profile 4 for video/mp4v-es
03-07 13:50:38.152 11592 11727 W VideoCapabilities: Unrecognized profile 2130706433 for video/avc
03-07 13:50:38.152 11592 11727 W VideoCapabilities: Unrecognized profile 2130706434 for video/avc
03-07 13:50:38.169 11592 11735 I OMXClient: MuxOMX ctor
03-07 13:50:38.360 11592 11734 I MediaCodec: [OMX.qcom.video.decoder.avc] setting surface generation to 11870209
03-07 13:50:38.363 11592 11735 I ExtendedACodec: setupVideoDecoder()
03-07 13:50:38.363 11592 11735 I ExtendedACodec: vpp-enable search is 0 and value is 0
03-07 13:50:38.375 11592 11735 I ExtendedACodec: Decoder will be in frame by frame mode
03-07 13:50:38.399 11592 11735 D SurfaceUtils: set up nativeWindow 0x7f756fb610 for 1296x968, color 0x7fa30c04, rotation 0, usage 0x2002900
03-07 13:50:38.434 11592 11743 I OMXClient: MuxOMX ctor
03-07 13:50:38.468 11592 11735 E ACodec  : [OMX.qcom.video.decoder.avc] ERROR(0x80001009)
03-07 13:50:38.468 11592 11735 E ACodec  : signalError(omxError 0x80001009, internalError -2147483648)
03-07 13:50:38.468 11592 11734 E MediaCodec: Codec reported err 0x80001009, actionCode 0, while in state 6
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal: Internal runtime error.
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2570)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:899)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:510)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 13:50:38.516 11592 11727 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
03-07 13:50:38.529 11592 11735 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f70a56160
03-07 13:50:38.529 11592 11735 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 16 to native window
03-07 13:50:38.531 11592 11735 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f74307960
03-07 13:50:38.531 11592 11735 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 15 to native window
03-07 13:50:38.532 11592 11735 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f74307660
03-07 13:50:38.532 11592 11735 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 14 to native window
03-07 13:50:38.534 11592 11735 E Surface : getSlotFromBufferLocked: unknown buffer: 0x7f743079c0
03-07 13:50:38.534 11592 11735 W ACodec  : [OMX.qcom.video.decoder.avc] can not return buffer 13 to native window
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal: Stop failed.
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal: java.lang.IllegalStateException
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_stop(Native Method)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at android.media.MediaCodec.stop(MediaCodec.java:2007)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:455)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:409)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:283)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:145)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:709)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:684)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:364)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:98)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:163)
03-07 13:50:38.553 11592 11727 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)

Thanks! We'll see if we can reproduce.

One final question: Are you able to tell from the reports you've received whether the failure occurs reliably for some pieces of media but not others? Or is it possible this is just a sporadic failure that happens sometimes, regardless of what piece of media is being played.

Same device can play other videos (not all- above video is one of them)

No the problem occurs every time user plays the video whereas the same video gets played flawless in other devices like : Xiomi Mi5, Nexus6, OnePlus5T etc...

any progress ?

No, sorry. We don't have one of these devices to test on, unfortunately. I'm also slightly unclear exactly what the device is, if we were to buy one. The "santoni" codename seems to be for the Redmi 4X, rather than the Redmi Note 4 as per the title of this issue. It's also a bit unclear to me how many versions of this device there are (e.g. if there are two variants with different chipsets, as is the case for the Redmi Note 4).

ok will confirm with the customer and revert soon. Thank you

device is redmi 4 and outside India its called redmi 4X rest everything is same

 AppsFlyer_4.5.0: data: {"device":"Q350","firstLaunchDate":"2018-04-10_2330+0530","installDate":"2018-04-10_2324+0530","sdk":"23","carrier":"BSNL Mobile",,"date1":"2018-04-10_2324+0530","af_preinstalled":"false","advertiserIdEnabled":"true","iaecounter":"0","lang_code":"en","appsflyerKey":"zn****************8TE7","app_version_name":"1.5","lang":"English","timepassedsincelastlaunch":"11","dkh":"znjKLA4s","advertiserId":"b6ae9653-5753-4ba6-b6a6-ed60cc31b6fe","isGaidWithGps":"true","deviceType":"user","af_v":"4a9c3c8442d152a2e85175a5523f9449fd6b6c3d","app_version_code":"6","af_events_api":"1","platformextension":"android_native","network":"MOBILE","operator":"BSNL Mobile","country":"US","date2":"2018-04-10_2324+0530","brand":"Micromax","af_timestamp":"1523613114187","uid":"1523382873665-422522010808811980","isFirstCall":"true","counter":"81","model":"Micromax Q350","product":"Q350"}

04-13 15:21:54.565  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:54.566  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.566  7864  7864 I SurfaceView: Changes: creating=false format=false size=false visible=false left=false top=false mUpdateWindowNeeded=true mReportDrawNeeded=true redrawNeeded=false forceSizeChanged=false mVisible=true mRequestedVisible=true, this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.566  7864  7864 I SurfaceView: Cur surface: Surface(name=null)/@0x2f6c034, this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.569  7864  7864 I SurfaceView: New surface: Surface(name=null)/@0xe043ca3, vis=true, frame=Rect(0, 0 - 854, 480), this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.570  7864  7864 I SurfaceView: surfaceRedrawNeeded, this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.570  7864  7864 I SurfaceView: finishedDrawing, this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.570  7864  7864 V SurfaceView: Layout: x=0 y=0 w=854 h=480, frame=Rect(0, 0 - 854, 480), this = android.view.SurfaceView{d9446b9 V.E...... ......ID 0,0-854,480}
04-13 15:21:54.572  7864  7864 I SurfaceView: Punch a hole(dispatchDraw), w = 854, h = 480, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:54.591  7864  7864 I SurfaceView: updateWindow -- UPDATE_WINDOW_MSG, this = Handler (android.view.SurfaceView$1) {24bf2da}
04-13 15:21:54.741  7864  7864 I SurfaceView: updateWindow -- setFrame, this = android.view.SurfaceView{d9446b9 V.E...... ......I. 0,0-854,480}
04-13 15:21:54.742  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:54.742  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ......I. 0,0-854,480}
04-13 15:21:54.743  7864  7864 I SurfaceView: Punch a hole(dispatchDraw), w = 854, h = 480, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:54.889  7864  7864 I SurfaceView: updateWindow -- setFrame, this = android.view.SurfaceView{d9446b9 V.E...... ......I. 0,0-854,480}
04-13 15:21:54.889  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:54.889  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ......I. 0,0-854,480}
04-13 15:21:54.890  7864  7864 I SurfaceView: Punch a hole(dispatchDraw), w = 854, h = 480, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:54.906  7864  8109 D libc-netbsd: [getaddrinfo]: hostname=t.appsflyer.com; servname=(null); netid=0; mark=0
04-13 15:21:54.906  7864  8109 D libc-netbsd: [getaddrinfo]: ai_addrlen=0; ai_canonname=(null); ai_flags=4; ai_family=0
04-13 15:21:55.564  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:55.564  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:56.568  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:56.568  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:56.895  7864  8110 E NativeCrypto: ssl=0xb94902f0 cert_verify_callback x509_store_ctx=0x9d722d2c arg=0x0
04-13 15:21:56.895  7864  8110 E NativeCrypto: ssl=0xb94902f0 cert_verify_callback calling verifyCertificateChain authMethod=ECDHE_RSA
04-13 15:21:57.157  7864  8109 D AppsFlyer_4.5.0: response code: 404
04-13 15:21:57.574  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:57.576  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:58.596  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:58.596  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:59.498  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:59.498  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:21:59.545  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:21:59.545  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:22:06.702  7864  8119 D SurfaceUtils: set up nativeWindow 0xb973ba38 for 1280x720, color 0x23, rotation 0, usage 0x2933
04-13 15:22:06.870  7864  8125 E ACodec  : cannot find aac bit rate
04-13 15:22:06.871  7864  8125 E OMXNodeInstance: getParameter(1:google.aac.decoder, ??(0x7f200406)) ERROR: UnsupportedIndex(0x8000101a)
04-13 15:22:06.877  7864  8119 E ACodec  : [OMX.MTK.VIDEO.DECODER.AVC] ERROR(0x80001005)
04-13 15:22:06.877  7864  8119 E ACodec  : signalError(omxError 0x80001005, internalError -2147483648)
04-13 15:22:06.878  7864  8118 E MediaCodec: Codec reported err 0xfffffbb1, actionCode 0, while in state 6
04-13 15:22:06.879  7864  8126 I hexdump : 00000000:  11 90                                             ..
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal: Internal runtime error.
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal: java.lang.IllegalStateException
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at android.media.MediaCodec.dequeueOutputBuffer(MediaCodec.java:2392)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.drainOutputBuffer(MediaCodecRenderer.java:899)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.render(MediaCodecRenderer.java:510)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.doSomeWork(ExoPlayerImplInternal.java:479)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:308)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:107)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:207)
04-13 15:22:06.896  7864  8108 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
04-13 15:22:06.904  7864  8119 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb9315ca0
04-13 15:22:06.906  7864  8119 E ACodec  : failed to cancel buffer from native window: 0xb973ba38, err = -22
04-13 15:22:06.908  7864  8119 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb9332a00
04-13 15:22:06.908  7864  8119 E ACodec  : failed to cancel buffer from native window: 0xb973ba38, err = -22
04-13 15:22:06.914  7864  8119 E Surface : getSlotFromBufferLocked: unknown buffer: 0xb9680508
04-13 15:22:06.915  7864  8119 E ACodec  : failed to cancel buffer from native window: 0xb973ba38, err = -22
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal: Stop failed.
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal: java.lang.IllegalStateException
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at android.media.MediaCodec.native_stop(Native Method)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at android.media.MediaCodec.stop(MediaCodec.java:1914)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.releaseCodec(MediaCodecRenderer.java:455)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.mediacodec.MediaCodecRenderer.onDisabled(MediaCodecRenderer.java:409)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.video.MediaCodecVideoRenderer.onDisabled(MediaCodecVideoRenderer.java:283)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.BaseRenderer.disable(BaseRenderer.java:145)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.resetInternal(ExoPlayerImplInternal.java:709)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.stopInternal(ExoPlayerImplInternal.java:684)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:364)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at android.os.Handler.dispatchMessage(Handler.java:107)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at android.os.Looper.loop(Looper.java:207)
04-13 15:22:06.934  7864  8108 E ExoPlayerImplInternal:     at android.os.HandlerThread.run(HandlerThread.java:61)
04-13 15:22:06.960  7864  7864 I TEST    : onLoadingChanged: false
04-13 15:22:06.960  7864  7864 I TEST    : Buffered Position: 128
04-13 15:22:06.960  7864  7864 I TEST    : Buffered Percentage: 0
04-13 15:22:06.970  7864  7864 I TEST    : ExoPlayer State is: IDLE
04-13 15:22:06.979  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:22:06.980  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:22:07.165  7864  7864 D usershow: 13000
04-13 15:22:07.184  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:22:07.185  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:22:10.197  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = false, this = android.widget.VideoView{6a8055a GFE...... ......I. 0,0-0,0 #7f0e04b3 app:id/video}
04-13 15:22:10.197  7864  7864 I SurfaceView: updateWindow -- OnPreDrawListener, mHaveFrame = true, this = android.view.SurfaceView{d9446b9 V.E...... ........ 0,0-854,480}
04-13 15:22:14.910  7864  7864 I TEST    : ExoPlayer State is: IDLE

It seems its not a device specific problem but a bug somewhere in Exoplayer, other device also encounter such similar problem and not a single video is being played whereas all the videos are working fine in other device and emulator as well

any progress ??

kindly update !

Same problem on device:
Phone Model: vivo Y37A
Android Version: 5.0.2
vivo ROM: Funtouch OS_2.5

I am facing same problem in MI device. any solution?

I guess developers are no more active or interested in this issue :-1:

I'm having a similar issue and I believe santoni just doesn't support 1080p video. I can't find this in your error logs, but mine shows:

D/MediaCodecInfo(15947): NoSupport [sizeAndRate.support, 1920x1080x59.9998893737793] [OMX.qcom.video.decoder.avc, video/avc] [santoni, Redmi 4X, Xiaomi, 28]

Yes, that implies the device doesn't support the resolution. We try and play the video anyway because some devices are known to under-report their capabilities, but then playback fails, which is not unexpected for a device that reports its capabilities correctly.

When playback fails, you should see an ExoPlaybackException reported via EventListener.onPlayerError. On recent releases you can query this exception to determine whether the failure occurred trying to play media that exceeded the device capabilities:

@Override
public void onPlayerError(@NonNull ExoPlaybackException e) {
  boolean exceededDeviceCapabilities = e.type == ExoPlaybackException.TYPE_RENDERER 
      && e.rendererFormatSupport != RendererCapabilities.FORMAT_HANDLED;
  ...

We intend to make this a bit easier in a future release.

Closing this issue on the assumption that the videos being played exceed the capabilities of the device.

Was this page helpful?
0 / 5 - 0 ratings