09年遇到两件最郁闷的问题,一个是freescale 的wince5 wm9715驱动,用无锡开发板,没法录音。厂家很不负责。后来找到freescale总部,答复是,原来就没搞定,这些都是废话了。
换了三星6410,知道还在完善中,bug特多,用时编解码时遇到图像会串的问题,就是编码的图像会显示到解码的图像上,经过三星FAE的测试反馈到三星总部,第二天给了个8月11号发布的包,说搞定了,已测试图像不串了,但编码有问题,修改三星封装库中的两个参数,终于搞定了。
如下:
void *SsbSipH264EncodeInit(unsigned int uiWidth, unsigned int uiHeight,
unsigned int uiFramerate, unsigned int uiBitrate_kbps,
unsigned int uiGOPNum)
{
_MFCLIB_H264_ENC *pCTX;
HANDLE hOpen;
//
/ CreateFile /
//
hOpen = CreateFile(L"MFC1:",
GENERIC_READ|GENERIC_WRITE,
0,
NULL,
OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL,
NULL);
if (hOpen == INVALID_HANDLE_VALUE) {
LOG_MSG(LOG_ERROR, "SsbSipH264EncodeInit", "MFC Open failure./n");
return NULL;
}
pCTX = (_MFCLIB_H264_ENC *) malloc(sizeof(_MFCLIB_H264_ENC));
if (pCTX == NULL) {
LOG_MSG(LOG_ERROR, "SsbSipH264EncodeInit", "malloc failed./n");
CloseHandle(hOpen);
return NULL;
}
memset(pCTX, 0x00, sizeof(_MFCLIB_H264_ENC));
pCTX->magic = _MFCLIB_H264_ENC_MAGIC_NUMBER;
pCTX->hOpen = hOpen;
pCTX->fInit = 0;
pCTX->width = uiWidth;
pCTX->height = uiHeight;
pCTX->framerate = uiFramerate;
pCTX->bitrate = uiBitrate_kbps;
pCTX->gop_num = uiGOPNum;
pCTX->intraqp = 1;
pCTX->qpmax = 32;
pCTX->gamma = 0.75;
pCTX->enc_strm_size = 0;
return (void *) pCTX;
}
如果你遇到同样问题,请更换bsp。