主题 : 谁了解USB Camera的视频采集和显示? 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 44828
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2011-04-28
最后登录: 2011-06-27
楼主  发表于: 2011-06-25 17:15

 谁了解USB Camera的视频采集和显示?

请问:谁了解USB Camera的视频采集和显示?
我用的是TINY6410,MJPEG编码的USB Camera,
目前能采集到影像,但无法解码成RGB显示出来,
我想采用硬解码。请大侠们帮帮忙!!!!
级别: 新手上路
UID: 44828
精华: 0
发帖: 11
金钱: 55 两
威望: 11 点
综合积分: 22 分
注册时间: 2011-04-28
最后登录: 2011-06-27
1楼  发表于: 2011-06-25 17:43
引用楼主kukuwezer于2011-06-25 17:15发表的 谁了解USB Camera的视频采集和显示? :
请问:谁了解USB Camera的视频采集和显示?
我用的是TINY6410,MJPEG编码的USB Camera,
目前能采集到影像,但无法解码成RGB显示出来,
我想采用硬解码。请大侠们帮帮忙!!!!

我使用三星自带的源码实现MJPEG文件的解码。但是在以下函数中出了问题:
JPEG_ERRORTYPE SsbSipJPEGDecodeExe(int dev_fd)
{
    LOG_MSG(LOG_TRACE, "SsbSipJPEGDecodeExe", "jCtx->decParam->fileSize : %d\n", jCtx->decParam->fileSize);

    if(jCtx->decParam->decType == JPG_MAIN){
        ioctl(dev_fd, IOCTL_JPG_DECODE, jCtx->decParam);

        LOG_MSG(LOG_TRACE, "SsbSipJPEGDecodeExe", "decParam->width : %d decParam->height : %d\n", jCtx->decParam->width, jCtx->decParam->height);
        LOG_MSG(LOG_TRACE, "SsbSipJPEGDecodeExe", "streamSize : %d\n", jCtx->decParam->dataSize);
    }
    else {
        // thumbnail decode, for the future work.
    }

    return JPEG_OK;
}

其中decParam->width 等于0,decParam->height等于0,但是,以下函数返回的解码输出缓冲指针不为空
/*----------------------------------------------------------------------------
*Function: SsbSipJPEGGetDecodeInBuf

*Parameters:         *openHandle : openhandle from SsbSipJPEGDecodeInit
                    size : input stream(YUV/RGB) size
*Return Value:        virtual address of Decoder input buffer
*Implementation Notes: allocate decoder input buffer
-----------------------------------------------------------------------------*/
void *SsbSipJPEGGetDecodeInBuf(int dev_fd, long size)
{
    if(size < 0 || size > MAX_FILE_SIZE){
        LOG_MSG(LOG_ERROR, "SsbSipJPEGGetDecodeInBuf", "Invalid Decoder input buffer size\r\n");
        return NULL;
    }

    jCtx->decParam->fileSize = size;

    jCtx->InBuf = (char *)ioctl(dev_fd, IOCTL_JPG_GET_STRBUF, jCtx->mappedAddr);
    
    return (jCtx->InBuf);
}
请问这是什么原因,怎么解决?
自由,自强,共享,共创。
级别: 论坛版主
UID: 12573
精华: 27
发帖: 8838
金钱: 46490 两
威望: 9298 点
综合积分: 18216 分
注册时间: 2010-01-09
最后登录: 2019-07-16
2楼  发表于: 2011-06-25 17:49
下次更新会解决Linux下JPEG界面问题,请留意更新。

ps: 你们是用来开发什么产品的?
新手如何向我们反馈有效的信息,以便解决问题,见此贴:
http://www.arm9home.net/read.php?tid-14431.html

[注]: 此处签名链接仅为指引方向,而非解答问题本身.