请选择 进入手机版 | 继续访问电脑版
搜索

2

主题

3

帖子

39

积分

新手上路

Rank: 1

积分
39
发表于 2016-1-7 14:25:32 12087 浏览 0 回复

关于4412的linux系统下的硬解码jpeg

安卓4.03相关代码Top4412_ICS_20150413\iTop4412_ICS\device\samsung\exynos4\libhwjpeg的jpeg_hal_unit.c
内核里相关代码iTop4412_Kernel_3.0_20150403.tar(1)\iTop4412_Kernel_3.0_20150403\iTop4412_Kernel_3.0\drivers\media\video\samsung\jpeg_v2x目录下
然后把安卓里面的代码抠出来,放在linux系统里编,我代码这样写的
//头文件
#include<jpeg_hal.h>
    int dec_fd;
    struct v4l2_format fmt;
    struct jpeg_config *config;
    struct jpeg_buf *out_buf;
    struct jpeg_buf *in_buf;
    unsigned char *m_tmpbuffer;

//源文件
    config= (struct jpeg_config *)calloc(1, sizeof(struct jpeg_config));
    out_buf=(struct jpeg_buf *)calloc(1, sizeof(struct jpeg_buf));
    in_buf=(struct jpeg_buf *)calloc(1, sizeof(struct jpeg_buf));
    dec_fd=jpeghal_dec_init();
    m_tmpbuffer = (unsigned char *) calloc(1, (size_t)1024*768*4);
    config->scaled_height=768;
    config->scaled_width=1024;
    config->height=768;
    config->width=1024;
    config->pix.dec_fmt.out_fmt=V4L2_PIX_FMT_RGB32;
    config->pix.dec_fmt.in_fmt=V4L2_PIX_FMT_JPEG_422;
    config->sizeJpeg=1024*768;
    config->num_planes=3;
    config->enc_qual=QUALITY_LEVEL_4;
    out_buf->memory=V4L2_MEMORY_MMAP;
    in_buf->memory=V4L2_MEMORY_MMAP;
    out_buf->num_planes=3;
    in_buf->num_planes=3;
   if( jpeghal_dec_setconfig(dec_fd,config)>=0)
       {
        printf("set config succes\n");
       }
   if(jpeghal_set_inbuf(dec_fd, in_buf)>=0)
       {
        printf("set inbuf succes\n");
       }
   if( jpeghal_set_outbuf(dec_fd, out_buf)>=0)
      {
       printf("set outbuf succes\n");
      }
  while(1)

    memcpy(in_buf->start[0],vd->tmpbuffer,vd->struvd->buf.bytesused);//拷贝摄像头压缩数据给解码器内存
    jpeghal_dec_exe(dec_fd,in_buf,out_buf);
    memcpy(m_tmpbuffer,out_buf->start[0],1024*768*4);

程序运行后打印信息
set config succes
set inbuf succes
set outbuf succes
Device information:
  Device path:  /dev/video5
  Frame size:   1024x768
  Frame rate:   30 fps
[ 7331.828197] ctx is null.
jpeg_v4l2_streamon:STREAMON failed:: Device or resource busy
jpeg_v4l2_streamon:STREAMON failed:: Device or resource busy
[ 7346.087380] ctx is null.
jpeg_v4l2_streamon:STREAMON failed:: Device or resource busy
jpeg_v4l2_streamon:STREAMON failed:: Device or resource busy
[ 7361.089575] ctx is null.

通过输出的m_tempbuffer我存了几张图,发现这有图像最上方的一窄条图像是正确的,其他的都不对
内核打印的信息ctx is null.也不知道只什么意思。。。。
有谁会这方面的给指教下,感激不尽那。。。



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

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

本版积分规则

登录或注册

官方客服

QQ:2551456065

官方QQ群

195631883

扫一扫关注迅为公众号

群号652692981

 
快速回复 返回顶部 返回列表