Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

MediaCodec解码偶尔会异常导致视频流卡死问题

75

积分

0

威望

0

贡献

技术小白

积分
75

MediaCodec解码偶尔会异常导致视频流卡死问题

发表于 2016-10-9 16:55:04      浏览:13807 | 回复:19        打印     [复制链接] 楼主
使用Rk3288 pro的板子对取得的rtsp流使用MediaCodec硬解码偶尔会异常导致视频流卡死问题,求大神解决。。。
init如下:
MediaFormat mediaFormat = MediaFormat.createVideoFormat(mMime,mWidth,mHeight);               
                mMediaCodec = MediaCodec.createDecoderByType(mMime);
                if (mMediaCodec == null) {
                        return false;
                }
                mMediaCodec.configure(mediaFormat, mSurface, null, 0);  
                mMediaCodec.start();

decode如下:
ByteBuffer[] inputBuffers = mMediaCodec.getInputBuffers();
//                int inputBufferIndex = mMediaCodec.dequeueInputBuffer(-1);
                int inputBufferIndex = mMediaCodec.dequeueInputBuffer(0);
                if (inputBufferIndex >= 0) {
                    ByteBuffer inputBuffer = inputBuffers[inputBufferIndex];
                    inputBuffer.clear();
                    inputBuffer.put(input,0,length);
                    mMediaCodec.queueInputBuffer(inputBufferIndex, 0, length, 0, 0);
                }
                MediaCodec.BufferInfo bufferInfo = new MediaCodec.BufferInfo();
                int outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo,0);
                while (outputBufferIndex >= 0) {
                        mMediaCodec.releaseOutputBuffer(outputBufferIndex, true);
                    outputBufferIndex = mMediaCodec.dequeueOutputBuffer(bufferInfo, 0);
                }
望大家一起讨论解决!
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:26      沙发
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:31      板凳
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:31      地板
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:32      5#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:32      6#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:32      7#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:32      8#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:33      9#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

75

积分

0

威望

0

贡献

技术小白

积分
75
发表于 2016-10-17 15:25:33      10#
jingjin221 发表于 2016-10-12 09:05
请确定是卡在哪一步了?看代码,应该是卡在获取解码输入缓冲区那里了,dequeueInputBuffer的TIMEOUT不要设 ...

设置为0或者其他都是一样的结果
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表