This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DVSDK-demos运行问题

Other Parts Discussed in Thread: THS7353

DVSDK-demos_4_02_00_01运行在自己做的开发板上(开发板上的DSP芯片是DM368ZCE)的时候,编码后(720p)的帧率由30帧变为22帧,并且不能显示采集到的视频,请问是什么原因引起的?( 在DM368EVM上运行一切正常)。

  • 硬件和原理图是一样的吗?

    您的capture的display是要显示在什么设备上,分量显示还是lcd显示呢

  • kooking,您好;

        首先感谢您对该问题的关注!硬件和原理图与dm368evm评估板上的基本一样。我的capture的display是由普通的液晶显示器进行显示的,分量显示。

  • 不知道dvsdk自带的ubl是否可以直接在您的硬件上使用,您可以cat /proc/cpuinfo,和evm板对比一下,看频率是否正常

    如果显示异常,可以用ccs测试下,或者直接修改驱动,看是否可以正常显示colorbar

  • kooking,您好;

          在CCS测试时,可以正常显示colorbar。

  • 如果colorbar可以正常显示,720p decode应该也没问题吧,文件系统下面有测试源usr/share/ti/data/videos。

    如果显示正常,可能问题出在前面的采集,最简单的办法是,在enocde中,Capture_get一帧数据后,直接保存原始yuv数据,看这个数据是否正常,还有就是22帧的时候,arm的负载是多少呢

  • kooking,您好:

        按照您的指导我们进行了720p decode测试(测试时采用分量输出,但是只将Y信号与显示器相连),显示器显示内容为“不支持的模式 不支持该分辨率,请更改外部设备的分辨率”。22帧的时候,arm负载是百分之十几。

     

  • colobar是直接从dm368输出,decode不能正常显示,难道是和ths7353 有关吗?检查一下硬件电路吧,软件上也可以跟一下decode-dmai-kernel driver。先查显示,显示正常了,再查采集,暂时就想到这么多:)

  • kooking,您好:

        dm368evm评估板上外设的时钟是由cpld提供的,而我们自己做的开发板上外设的时钟由外部直接提供的(74.25),不知道是否跟此有关?

  • 不排除这个影响,还有就是ubl在配置ppl1 ppl2时也比较重要,你仔细和这个对比一下,可能kernel中driver对HD部分也需要修改:

    http://processors.wiki.ti.com/index.php/DM36x_to_DM368_NAND_UBL_porting_guide

  • kooking,您好:

        我与您给出的pll配置进行了一下对比,没有不同。

        想问您一个decode端的问题:

       1、要解码的视频文件是通过Loader_readData()函数读取的吗?

        2、视频文件读取不应该是在loaderThrFxn线程中进行的吗?为什么在videoThrFxn线程中也调用了Loader_readData()函数?

        能麻烦您帮忙介绍一下decoder端的数据流向吗?我现在看的有点混乱。

  • 视频文件是通过Loader_readData读取的,videoThrFxn应该没有Loader_readData了吧,不过也有些loader的函数,是为了读取数据,不好意思,太细节的早就忘了。

    我之前好像也出现过“不支持的模式 不支持该分辨率”,主要是时钟频率和evm板有些差别,修改了ubl中的ppl配置,内核drivers/media/video/davinci/davinci_platform.c中修改和ubl中相同,720p就正常了

    #define VENC_74_25MHZ (74250000)

  • kooking,您好:

        videoThrFxn读取数据所为何用啊?

       在内核drivers/media/video/davinci/davinci_platform.c中将#define VENC_74_25MHZ (74250000)修改为#define VENC_74_25MHZ (75600000),问题依然存在。请问ubl中的pll配置需要修改吗?

  • 刚回去看了下代码
     hLoader = Loader_create(envp->videoFile, &lAttrs);创建loader的时候,loader的缓冲大小
    而loader的缓冲大小跟decoer的大小lAttrs.readSize = Vdec2_getInBufSize(hVd2); 有关,所以放在vidoe线程里了
    loader也要知道每次读多大的数据
  • kooking,您好:

         非常感谢您的指导!

         不好意思,我还有个问题想咨询您:请问dvsdk中内外部时钟选择是怎样实现的?我们想确定一下开发板是运行在外部时钟还是内部时钟。

      

  • 这个是由硬件控制的吧,cpu工作后,内部时钟有pll控制

  • kooking,您好:

        非常感谢您对该问题的关注,目前问题已解决!

       可我还有个问题想问您:

       请问demo中编码端writer线程中往文件中写数据的时候buffer长度为什么是变化的?每次写的长度不是帧长吧?为什么呢?

  • kooking,您好:

        非常感谢您对该问题的关注,目前问题已解决!

       可我还有个问题想问您:

       请问demo中编码端writer线程中往文件中写数据的时候buffer长度为什么是变化的?每次写的长度不是帧长吧?为什么呢?

x 出现错误。请重试或与管理员联系。