See that mako's OMX element is a bit smarter and decides to release a few buffers before they are consumed later on. This breaks the current buffer list logic inside compat/media/media_codec_layer.cpp, causing an index out of range issue.
V/MediaCodecLayer( 4647): size_t media_codec_get_output_buffers_size(MediaCodecDelegate) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): size_t media_codec_get_nth_output_buffer_capacity(MediaCodecDelegate, size_t) V/MediaCodecLayer( 4647): uint8_t* media_codec_get_nth_output_buffer(MediaCodecDelegate, size_t) F/MediaCodecLayer( 4647): const TYPE& android::Vector<TYPE>::operator[](size_t) const [with TYPE = android::sp<android::ABuffer>; size_t = unsigned int]: index=9 out of range (9)
See that mako's OMX element is a bit smarter and decides to release a few buffers before they are consumed later on. This breaks the current buffer list logic inside compat/ media/media_ codec_layer. cpp, causing an index out of range issue.
V/MediaCodecLayer( 4647): size_t media_codec_ get_output_ buffers_ size(MediaCodec Delegate) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer_ capacity( MediaCodecDeleg ate, size_t) get_nth_ output_ buffer( MediaCodecDeleg ate, size_t) :Vector< TYPE>:: operator[ ](size_ t) const [with TYPE = android: :sp<android: :ABuffer> ; size_t = unsigned int]: index=9 out of range (9)
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
V/MediaCodecLayer( 4647): size_t media_codec_
V/MediaCodecLayer( 4647): uint8_t* media_codec_
F/MediaCodecLayer( 4647): const TYPE& android: