Mediacodec果冻豆

jig*_*esh 5 mp4 android android-4.2-jelly-bean

我正在使用媒体编解码器在jelly-bean上获取.mp4文件并在logcat中获取它

02-27 12:12:13.645: A/ACodec(6760): frameworks/av/media/libstagefright/ACodec.cpp:1041 CHECK(def.nBufferSize >= size) failed.
02-27 12:12:13.645: A/libc(6760): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1), thread 6778 (CodecLooper)
Run Code Online (Sandbox Code Playgroud)

谁能告诉我这是什么?以及如何解决?

use*_*321 6

您提供的信息不多,所以答案如下:

看起来它是libstagefright库的内部检查.

在解码器的配置上,我在Samsung Tab 2上遇到了同样的错误.

mDecoder = MediaCodec.createDecoderByType(mime);
Run Code Online (Sandbox Code Playgroud)

在创建解码器之后,它通过从提取器(也称为解复用器)接收的输入格式进行配置

MediaFormat inputFormat = extractor.getTrackFormat(i);

mDecoder.configure(inputFormat, null, null, 0); // <-- crashes here
Run Code Online (Sandbox Code Playgroud)

修复(将它放在mDecoder.configure之前):

inputFormat.setInteger(MediaFormat.KEY_MAX_INPUT_SIZE, 0);
Run Code Online (Sandbox Code Playgroud)