Chinaunix首页 | 论坛 | 博客
  • 博客访问: 37069
  • 博文数量: 17
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 0
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-28 21:44
个人简介

因工作项目需要,决定以零linux基础开始做基于海思HI3520D的视频系统的开发,记录一下开发的过程。

文章分类

全部博文(17)

文章存档

2015年(17)

我的朋友

分类: LINUX

2015-03-03 16:44:36

      今天把Venc的例程存储位置改成U盘,调试成功,记录一下过程。
     首先是要找到fopen命令初始化的存储路径。由于没有详细的文档,只能一个文件一个文件搜索。
     主要是两个文件:Venc文件夹里的sample_venc.c文件和common文件夹里的sample_comm_venc.c文件。
     首先是Venc文件夹里的sample_venc.c文件里有一个sample_comm_venc_startgetstream函数,启动了流媒体获取;跳转到sample_comm_venc.c文件中,调用了pthread_create函数,这个函数没有找到出处,但是其中一个参数调用了sample_comm_venc_getvencstreamproc函数,这个函数里面有sprintf函数,和fopen函数,其实就是写文件的存储路径的,我加上/mnt/usb再说;
   实际上仅仅修改这里就够了,我还想看看到哪个函数开始写入文件的。
      接下来调用了sample_comm_venc_savestream函数,调用sample_comm_venc_saveh264()函数,里面有fwrite函数,就开始写入了。
      按说路径改好了,执行sample_venc例程应该就把h.264文件存入到U盘里了,但是我执行之后发现报错:
     FAT-fs(sda1):Directory bread(block 8216)failed
    ……
     FAT-fs(sda1):Directory bread(block 8237)failed
    看起来挺明显的,应该是我的挂载的那个u盘的问题。
    ls一下/mnt/usb,果然也报错,我上次是挂的sda1;
    那就fdisk -l 一下,列表出来是sdb1;可能是我手碰了U盘一下,重新识别的时候给整到sdb1了(为啥是sdb1呢?可能是我挂载了sda1但是没有卸载吧)。
    那就退出目录,umount /mnt/usb
   重新挂载: mount -t vfat /dev/sdb1 /mnt/usb
   挂上了,再执行Venc例程,果然没问题,视频都存在U盘里了。
阅读(3898) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~