解决三星ARM11开发板图片采集程序源码出现的Bug

三星公司提供的图片采集程序源码是这个:

/***************** Capture Thread *****************/
void capture_thread(void)
{
    int start, ret;
    int key;

    start = 1;
    ret = ioctl(cam_c_fp, VIDIOC_STREAMON, &start);
    if (ret < 0) {
        printf("V4L2 : ioctl on VIDIOC_STREAMON failed\n");
        exit(1);
    }

    printf("\nc : Capture\n");
    printf("x : Exit\n");
    printf("Select ==> ");  

    while (1) {
        fflush(stdin);
        key = getchar();

        if(key == ‘c‘) {
            cap_flag = TRUE;
        }
        else if(key == ‘x‘){
            finished = 1;
            pthread_exit(0);
        }

        if (cap_flag == TRUE) {
            capture();
            cap_flag = FALSE;
        }
    }

    start = 0;
    ret = ioctl(cam_c_fp, VIDIOC_STREAMOFF, &start);
    if (ret < 0) {
        printf("V4L2 : ioctl on VIDIOC_STREAMOFF failed\n");
        exit(1);
    }

    pthread_exit(0);
}

有同学会发现当连续输入”c“采集图片的时候会出现错误,而且每次都是第五次的时候出错”PP instance allocation is fail: No more instance“。这是为什么呢?

原来在三星提供的内核当中(经过查看内核发现这个问题)给出的摄像头采集图片的缓冲为4张图片,这里给出的方案为:

应为程序中出现了

ioctl(pp_fd, S3C_PP_ALLOC_KMEM, &alloc_info)

但是在 close之前没有释放这段内存,在close前增加

ioctl(pp_fd, S3C_PP_FREE_KMEM, &alloc_info) 

在SsbSipJPEGEncodeExe()中因为有open post processor所以在close之前close pp

时间: 2024-10-13 08:32:47

解决三星ARM11开发板图片采集程序源码出现的Bug的相关文章

美女图片采集器 (源码+解析)

前言: 有一段时间没写博客了, "持之以恒"徽章都暗了, 实在不该. 前一段确实比较忙, ...小小地给自己的懒找个借口吧. 大二即将结束, 学习iOS也有一段时间了.今天抽点时间, 开源一个前几天刚上传的App里面的一个功能, RT, 美女图片采集器.   美女.. 相信没有人不喜欢吧, 基于此, 这个小Demo应运而生. 效果演示: 看到这里, 如果还有兴趣学习的话, 可以先到我的git中下载源码, 然后配合着源码看我下面的解析.相信, 会让你有所收获的. git下载链接: Bea

三星 A8开发板 杂记

1.三星 A8开发板 可执行文件存放路径 默认在:/opt/PDA/bin/ 2.三星 A8开发板 开机启动程序 默认在: /bin/pda 3.三星 A8开发板 设置系统时间 date -s "2012-08-27 15:04:00" 4.三星 A8开发板 设置网络IP ifconfig eth0 192.168.4.1 netmask 255.255.255.0

微信小程序-整理各种小程序源码和资料免费下载

微信小程序整理下载 [小程序源码]微信小程序-车源宝微信版 [小程序源码]小程序-微赞社区(论坛demo) [小程序源码]微信小程序-收支账单 [小程序工具]微信小程序-日历 [小程序源码]小程序-在线聊天功能 [小程序源码]微信小程序-大好商城(新增功能天气查询和2048游戏) [小程序源码]微信小程序-查询号码归属地 [小程序源码]微信小程序-备忘录2 [小程序源码]微信小程序-QQ音乐 [小程序源码]小程序-货币汇率 [小程序源码]微信小程序-大学图书馆 [小程序源码]小程序-积分商城 [

三星RP6818开发板添加应用后分区烧写问题分析

当用三星RP6818开发板添加应用后分区烧写出现问题,可以将应用去掉再烧写测试,可能是应用.环境配置等出了问题. Q:烧写时,partmap我可以改吗?system.img有些大,超过500M了. 但我看这个长度也是足够的,为什么烧写出现unknownerror? 400m烧写的时候没问题. A:未知错误不是长度的问题.system分区足够大的了. Q:应该是什么问题?现在我烧写以前成功过的映像,也不行了,歇菜了. A:清除分区. Q:我看system分区,0x2f200000大约742M左右,

三星Exynos4412开发板RP4412升级烧写时注意按开机键5秒左右

关于荣品4412开发板使用中相关问题,仅作参考. 注意:RP4412开发板升级烧写换到inand启动时一定要按开机键5S左右. 问:用的荣品三星Exynos4412开发板,我把RP4412的iNAND内容清空后,按照升级方法所说的在命令行运行writer_4412_file.bat,升级完后开发板不能从iNAND启动.什么原因? 答:烧写的文件是1G内存的还是2G内存的.确定下烧对文件. 问:好像是1G,我在试试看试了还是不行呢怎么办,现在都没法启动了. 答:你确认下有没有严格按照步骤来烧写文件

impinj R2000开发板维修记录——程序下载

1.impinj R2000开发板的组成部分,图1是开发板的照片 图1 电路板主要由R2000芯片和ARM芯片AT91SAM7S256组成,如图2所示,左边芯片是ARM芯片,右边芯片是R2000芯片.ARM芯片部分是一个相对独立的部分,只要ARM系统能够正常工作,就可以像其他的ARM系统(如Jlink)一样下载程序,程序可以任意下载,甚至可以下载一下Jlink的固件,这件电脑会识别成一个Jlink设备,下面讨论如何下载开发板的固件程序. 2.固定程序的下载 R2000开发板的固件可以在官网(ww

玩转Android Camera开发(四):预览界面四周暗中间亮,只拍摄矩形区域图片(附完整源码)

杂家前文曾写过一篇关于只拍摄特定区域图片的demo,只是比较简陋,在坐标的换算上不是很严谨,而且没有完成预览界面四周暗中间亮的效果,深以为憾,今天把这个补齐了. 在上代码之前首先交代下,这里面存在着换算的两种模式.第一种,是以屏幕上的矩形区域为基准进行换算.举个例子,屏幕中间一个 矩形框为100dip*100dip.这里一定要使用dip为单位,否则在不同的手机上屏幕呈现的矩形框大小不一样.先将这个dip换算成px,然后根据屏幕的宽和高的像素计算出矩形区域,传给Surfaceview上铺的一层Vi

澜天娱乐php+mysql程序源码修复采集完美版区块链概念入门

区块链的本质区块链是什么?一句话,它是一种特殊的分布式数据库. 首先,区块链的主要作用是存储信息.任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库. 其次,任何人都可以架设服务器,加入区块链网络,成为一个节点.区块链的世界里面,没有中心节点,每个结点都是平等的,都保存着整个数据库.你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致. 区块链的诞生是为了满足什么需求?还是解决什么问题?溯源区块链,我们发现区块链诞生于比特币,是从比特币的技术中衍生出

微信小程序_微信小程序开发,小程序源码、案例、教程

原文地址:http://whosmall.com/?post=448 本文标签: 微信小程序 小程序源码案例 小程序项目 小程序源码 微信小程序教程 什么是微信小程序? 微信小程序是微信基于微信平台的一个应用发布平台,微信小程序app开发属于原生app组件提供js接口的开发方式,比混合是app的用户体验更好,仅次于原生应用. 不过微信小程序定位于小,要符合轻量易用无需下载,所以从体积上也是有限制,整个小程序应用体积不能超过1M. 微信小程序的应用场景? 微信小程序的应用场景适用于轻量应用,非强交