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.

dm6446 h264编码库使用疑问

硬件环境: dm6446

软件环境:dvevm1.20

                    codec_engine_1_10_01

                    framework_components_1_10_04

                    bios_5_31_01

h264编码库:h264venc_ti.l64P

以上h264编码库是我在网上找到的适用于dvevm1.20环境的h264编码库,但是是评估版,我将该编码库封装成了x64P文件,arm端的app能通过codec_engine 的VISA API接口正常创建h264算法(VIDENC1_create函数返回非null)。

问题:

     1. 是否能正常创建h264算法,就意味着这个库就能正常调用起来呢?

     2. 算法创建时,dataEndianness的参数只能配置为XDM_BYTE(大端模式),用其余模式算法均创建不成功,从user‘s guide中得知,目前该h264算法库只支持XDM_BYTE模式,但是我的设备用的是小端模式,请问这该如何转换?

     3. 当我使用VIDENC1_control来配置算法参数时,配置只返回了 (-1),在dsp中也没有相关信息提示打印出来,配置传入的参数均为demo程序中的默认参数,使用的命令id为XDM_SETPARAMS,请问这是怎么回事呢?或者我可以从哪些方面去排查问题?

  • 你好,

    建议你使用原始的整个DVSDK包进行开发。

  • 你好,感谢回答,我是使用整个原始dvsdk包进行开发的,只是软件列表中没有将所有部件都列出来而已。

  • 你好,

    原始的DVSDK包里面应该已经有包含h264enc的codec combo,有encode demo/encodedecode demo。为什么你还要单独再加上h264enc的库呢?

  • 你好,非常感谢回复。

    是这样的,我目前使用的dm6446设备,设备内存和cmobo中要求的不一致,所有我参照了cmobo中的例子,将h264库依据我的设备内存环境,重新封装成了x64P文件。另外,在demo中,通过DMAI来对h264算法进行调用,我觉得这样有点麻烦,所有自己写了个app,直接调用VISA API来调用h264算法,当然了,调用程序的编写也是参照encode demo的。

    目前我封装的x64P和app程序均能在我的设备中运行,h264算法创建成功,app中调用VIDENC1_control来获取缓存信息(命令值为XDM_GETBUFINFO)时,返回成功,但是如果配置算法参数时,就返回-1了。所配置的参数也是参照encode demo中的默认参数进行配置的。

    目前我在评估该h264算法库能否适用于我的开发环境,现在我能正常创建算法和获取缓存信息,是不是意味着该h264算法库适用于我的设备的?

  • 你好,

    内存和combo不同是什么意思?

    如果你的板子的内存和DM6446 EVM上的大小不一样,你可参考下面链接修改:

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

  • 你好,

    不好意思,可能我表达得不够清晰,我刚才所说得内存和combo不同,意思是在combo中不是有个server吗,里面有设计到一些内存分配的内容,这些内存分配的内容和我目前设备对应的内存有点不同,所有我使用了我自己的server程序,这个server我确定是没有错误的,集成我自定义的算法时,能在设备中正常运行。

    由于目前在ti官网下载的h264编码库都是需要对应dvsdk2.0以上开发套件进行开发的,目前我的设备中的开发环境是1.20版本的,由于设备设备升级设计到的修改比较多,所以我想先在原本的设备环境中进行h264算法库的评估工作,目前我使用的h264venc_ti.l64P文件是在网上找到的,上传者署名该库适用于dm6446 dvevm1.20环境,但是我不确定。

    请问我的设备内存一定要按照DM6446 EVM上的大小进行修改吗?h264venc_ti.l64P只是一个codec库,应该对设备内存方面,除了内存空间大小,其余像起始地址这些都没有硬性要求的吧?

  • 你好,问题我已经解决了,之前出现错误的原因在于参数配置的时候配置错了,非常感谢你耐心的回答

  • 您好!

          我现在也是将h264venc_ti.l64P封装成x64P文件,在arm端的app通过codec_engine,VIDENC1_create函数返回null,暂没找到原因?另外您说的问题2,算法创建时,dataEndianness的参数只能配置为XDM_BYTE(大端模式),在哪里,没看到有这些

  • 你好,关于创建不成功的,你可以开CE_DEBUG开看一下,先开等级2,找不到有用信息再开等级3。创建不成功通常是配置或者调用顺序的问题。大端那个问题的话,我之前是在例程自带的那个user guide 看到的,你的如果和我的不是同一个版本,不一定有这个限制。
  • 好的,非常感谢!我先试试

  • 问题已解决,非常感谢!

  • 解决了问题建议能分享下怎么解决的,好给后来人提供下思路。
  • 是的,谢谢!

    我的makefile 路径没改,导致新增加的h264enc codec 没加进去,引起创建失败

  • 您好!请问V4L2驱动是不是不支持OSD?