|
请问有谁使用过H8做硬解码?
本人在使用,全志官方解码库https://github.com/allwinner-zh/media-codec做解码时遇到以下问题,请问哪位大神能指点一下:
1. 开发板是CubieBoard 5,系统使用的是Cubie官方给的linaro-server
Linux version 3.4.39 (sam@cubie) (gcc version 4.6.3 20120201 (prerelease) (crosstool-NG linaro-1.13.1-2012.02-20120222 - Linaro GCC 2012.02) )
2. 编译运行media-codec提供的demo程序后,出现了段错误
warning: awplayer <ve.c:109>: xxxxxxx firstMemchunk.size(0) '0x40000000'
Segmentation fault
3. 使用gdb调试后定位到问题出在venc_device.c文件里面
Program received signal SIGSEGV, Segmentation fault.
VencoderDeviceCreate (type=type@entry=VENC_CODEC_H264)
at venc_device.c:102
warning: Source file is more recent than executable.
102 if (posVEncNode->type == type)
3. 进入查看源码,发现出现错误的原因是:VencoderDeviceCreate函数需要获取的设备实例都源于下面这个全局变量gVEncoderList ,但是奇怪的是找遍了源码也没有发现再哪里调用了VEncoderRegister()向gVEncoderList 注入设备实例
static struct VEncoderListS gVEncoderList = {{NULL, NULL}, 0, PTHREAD_MUTEX_INITIALIZER};
【venc_device.c 45行】
int VEncoderRegister(VENC_CODEC_TYPE type, char *desc, VENC_DEVICE *device)
【venc_device.h 44行】 |
|