当前位置:  技术问答>linux和unix

请教大家一个问题

    来源: 互联网  发布时间:2016-08-02

    本文导语:  本帖最后由 nosilence_2007 于 2010-01-25 17:01:41 编辑 这个问题呢比较大,贴代码很难。 希望过来人能够给点拨一下,一点思路也没有。 我们正在android平台上开发多媒体,AP有硬件加速器的。所以播放就用了硬件加速器。...

本帖最后由 nosilence_2007 于 2010-01-25 17:01:41 编辑
这个问题呢比较大,贴代码很难。 希望过来人能够给点拨一下,一点思路也没有。

我们正在android平台上开发多媒体,AP有硬件加速器的。所以播放就用了硬件加速器。

但是播放H264出现了问题,比如一个4分钟左右的视频,他能够播放几次,但是不断循环的话就会decoder 出错,而究其原因不是硬件加速器的原因,而是往里面输入的数据就出错了。  

数据是从 文件->tempbuf->buffer->mp4 parser ->decoder

这里 文件到tempbuf数据是对的,但是从tempbuf->bffer就会出错,如果出错的话,decoder就出错了。

我当初怀疑是sdcard读写文件的问题,但是我将文件放到onenand或者 通过
mkdir temp;
mount -t tmpfs none /temp;
然后文件拷到temp下 
如果不断循环还是会出错。

而奇怪的是为什么重新开始多次之后会出错呢? 因为每次播放不都是在重复操作么? 我们的stream 和frm buffer都是事前预置的

因为我们没有调试器,所以也不知道到底是哪里的问题。调了很久也不知道到底问题出在哪里。

看起来好像是野指针的问题,但是怎么也找不到这个在哪里?!! 现在又不知道是否有可能硬件错误或者是其他错误


希望哪位大哥能够点拨一下。 非常谢谢

|
文件->tempbuf->buffer->mp4 parser ->decoder 

因为4分钟左右的视频 是分段读取的。 重复播放实际上是重新seek文件,然后读取。硬件应该是没有问题,parser本身应该也没有问题。
这期间可能会出现的问题,内存管理出错,buffer这边是否是固定的数组还是malloc出来的。建议将buffer改的大上两倍,调试一下如果循环的次数多了。那基本上就能肯定buffer管理出错。

|
我建议你把你要问的问题下到标题上面高手打开的几率不会很高的!

|
如果是不断重复出错的,更可能的是软件的问题,不是sdcard的问题。


而且你也发现了是但是从tempbuf->bffer就会出错,那么就有可能是tempbuf 到buffer这里的内存的管理有问题。

能否使用log记录每次崩溃前这个地方的内存的状态那?

|
水平不够 帮你顶一顶

|
关注

|
重点检查 tempbuf->buffer 业务逻辑的代码,加入assert和日志。
为什么你们的平台不能调试呢?

|
关键点就是在"他能够播放几次,但是不断循环的话就会decoder 出错"

1)循环播放跟一次播放/停止/再次播放 本身就有些不一样。
你可以查一查
2)“出错”,出什么错?
让大家猜迷?

思路已经比较清晰,请顺着这条路跟下去。


|
文件->tempbuf->buffer

没看明白怎么会跟sdcard有关系? 文件是在sdcard上? tempbuf是在内存里吗?buffer是在内存里吗?

|
问题其实蛮奇怪的。按经验来看,读文件,和最后的解码本身出错的概率很小。也就是说问题应该集中在tempbuf和buffer之间。
重新播放是需要重新打开文件,找文件头播放的,这个时候产生的buffer都是临时申请的,基本上如果出错都是次次出错,要么就是堆或者栈爆掉。
如果这边查证不出来的话,再检查一下,是否有野指针,修改了内存的值,这个很难查出来。需要读一下系统log,看看期间发生了哪些事件。调试就是不停的查找验证过程。
如果担心硬件问题,就把硬件加速先关起来。看看是否一样出错。

|

我觉得根据描述野指针、硬件不稳定概率比较大。

出错的地址是否是固定的?
如果是怀疑野指针的话,要么从被改写的内容看,如果地址固定且修改不频繁的话还可以使用数据断点(如果CPU有的话)


    
 
 

您可能感兴趣的文章:

  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • 请教,请教,这个问题是为什么????
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教一个函数入口处的汇编问题(压栈问题)
  • 请教!出现这个提示是什么原因..是模块版本问题,还是其他问题..http://220.114.102.28/xitong/ProductShow.asp?ArticleID=82
  • 请教两个小问题:一个cgywin下使用vi的问题,另一个socket的问题
  • 请教一个opengl的问题
  • 请教两个redhat9问题
  • 请教kdevelop的问题
  • 送上100分问题请教,同时学习一下进程通讯问题,望各位不吝赐教
  • 请教linux 下的adsl拨号问题.
  • 请教unix常用命令命令问题
  • 请教,帖子回复的显示问题
  • 请教关于sendto问题
  • 请教linux共享上网的问题!!!在线等,问题解决马上结贴
  • 有在用AXIS的朋友吗?请教一个问题
  • 高分请教,n简单的问题急急!!!
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教这种循环的执行过程
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教两个shell
  • 请教高手:如何用gnome/gtk编写托盘程序
  • 菜鸟请教Linux
  • 请教semop()函数的用法、含义
  • 请教个,关于C编译器参数CFLAGS的问题(真诚请教,分不够了全部送出)
  • 请问如何在Redhat7.1下安装Ftp服务,如何开启Ftp帐号????请教!!!急急急急急急
  • Think in java 问题。(请教)
  • 请教下我的eth0为什么设置后重启会失败?
  • 请教:$PWD 这个东西是什么意思啊?谢谢!
  • 请教高手AIX中怎么删除行尾的字符^M


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3