大家好、
我使用的是 DVSDK 4_02_00_01、并且遇到了与同时使用 DEI 和 h264编码器相关的问题
我的应用程序陷入死锁或收到 SIGSEV。
我正在附加调试日志、希望能够解决这个问题
谢谢、此致
Apurv Padole
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 4_02_00_01、并且遇到了与同时使用 DEI 和 h264编码器相关的问题
我的应用程序陷入死锁或收到 SIGSEV。
我正在附加调试日志、希望能够解决这个问题
谢谢、此致
Apurv Padole
h264Params.videncParams.size = sizeof (IH264VENC_Params);
h264Params.profileIdc = 100;/*!<配置文件 IDC */
h264Params.levelIdc = 50;/*!<级别 IDC *
h264Params.entropyMode = 1;/*!<熵模式标志0-CAVLC、1-CABAC */
h264Params.transform8x8FlagIntraFrame = 1;/*!<帧间8x8转换的标志*/
h264Params.transform8x8FlagInterFrame = 1;/*!<内部帧中8x8变换的标志*/
h264Params.seqScalingFlag = 1;
h264Params.videncParams.maxFrameRate = 25000;
h264Params.videncParams.reconchromaFormat = 9;
h264Params.videncParams.rateControlPreset = 2;
h264Params.videncParams.maxBitRate = 1500000;
h264Params.videncParams.encodingPreset = 2;
h264Params.videncParams.maxWidth = 576;
h264Params.videncParams.maxHeight = 720;
h264Params.videncParams.inputChromaFormat = 9;
h264Params.enableDDRbuff = 1;
其他 h264 prameters 设置为默认值。
DEI 和 H264编码器进程都以不同的线程运行。
将来自 deinterlacer 的输出缓冲器提供给调整器、调整器将其转换为预期分辨率 viz 736x576、然后将来自电阻器的输出缓冲器提供给 H264编码器。
我在调用处理函数之前正在为 DEI 创建输出缓冲器。
DEI 2.0版和 H264 2.20版
Uboot 中的操作模式被设定为单次触发模式
两种算法都处于不同的暂存组 ID 中、如果它们处于相同暂存组 ID 中、则会发生帧丢失。
您好!
[引用 user="Apurv Padole">H264版本2.20 [/quot]这是一个相当旧的版本。 最新的 GAED 版本为02.30.00.06可下载@ 
我已附加最新版本的调试库及其接口文件。 请对接口文件进行必要的更改。 您能否尝试使用此调试库、将其重命名为.a. 您的所有参数设置看起来都很好。
e2e.ti.com/.../h264venc_5F00_ti_5F00_arm926_5F00_debug.a.txt
您好 Prashanth、
感谢您的支持。
我已根据您的建议更改了编解码器和调试库。 现在我没有遇到分割故障、但 H264流程中存在致命的不可恢复错误。
我正在附加当前调试日志:e2e.ti.com/.../13Feb_5F00_CrashingDebug2.txt
谢谢、此致、
Apurv Padole
您好 Praveen、
真的很抱歉,不能再回到过去了
H264参数与之前相同。
Deinterlacer 参数
deiAttrs.height = 576;
deiAttrs.width = 720;
deiAttrs.inFormat =彩色空间_UYVY;
deiAttrs.outFormat =彩色空间_UYVY;
deiAttrs.threshold[0]= 1;
deiAttrs.threshold[1]= 33;
deiAttrs.sysBaseAddr = sysBaseAddr;
deiOutBufferAttrs.dim.height = 576;
deiOutBufferAttrs.dim.width = 720;
deiOutBufferAttrs.dim.lineLength = DMI_Roundup (BufferGfx_calcLineLength (deiOutBufferAttrs.dim.width、
Colorspace_UYVY)、32);
deiOutBufferAttrs.dim.x = 0;
deiOutBufferAttrs.dim.y = 0;
deiOutBufferAttrs.colorspace =彩色空间_UYVY;
我已更改 H264调试库、并附加了调试日志 e2e.ti.com/.../14Jan_5F00_DebugCrashing.txt
谢谢、此致
Apurv Padole
仍然无法正常工作。
您好!
[引用 user="Apurv Padole">在 H264编码器资源分配(Venc1_create ("h264")之前、我正在为 Deinterlacer 调用资源分配函数(Venc1_create)作为记录。 这样做是否有问题?[/报价]这不应导致任何问题。
您能否尝试在使用 h264软件包的示例 testapplication 中设置默认参数? 您可以在 DVSDK_insatlldir/DM365_codecs_xx_xx_xx/packages/ti/sdo/codec/h264enc/apps/client/test/testvecs/config/testparams.cfg 上找到它
让 enableDDRbuff = 1;同时确保 将 XDM_YUV_420SP 馈送至 h264编码器。 不支持其他格式。
对于 DEI 的调试库、您需要联系您当地的 TI FAE。
您好!
在为 Deinterlacer 分配资源之前、我尝试为 h264编码器分配资源、我可以看到调试日志中存在一些差异。
代码正常工作、但此方法使视频质量下降。 我正在附加调试日志:e2e.ti.com/.../17Jan2017.txt
maxWidth 和 maxHeight 被设定为720 x 576
谢谢、此致
Apurv Padole
您好 Prashanth、
答案如下:-
>>您能解释一下您的用例吗? 它以前是 DEI + H264编码器。 您是否同时使用 DEI+H264Encod器+JPEG 编码器? 如何设置组 ID?
我们以前的用例就像同时录制和捕获。 我们初始化了 JPEG 编码器。 我们将在记录期间创建 H264和 DEI 的实例。
但现在、我们只尝试进行视频录制。 在这种情况下、我们将在录制过程中创建 H264和 DEI 编码器、但不会创建 JPEG 编码器。 在这种情况下、我们还会遇到段错误、有时还会重启内核。
我们将为 H264和 JPEG 设置灌浆 ID "1"、为 DEI 设置"2"。
>>当您设置 enableDDRBuff=1 (正如之前和 Anand 建议的那样)时、DEI+H264编码器应该能够解决任何问题。
当您看到分割故障时、您能否共享更多日志、这将有助于进一步分析。
我们设置 enableDDRBuff=1、但会出现分段故障。
内核重新引导的日志文件随附此文件。 e2e.ti.com/.../Kernel-_5F00_Rebooting_5F00_logs.txt
谢谢、此致
UMA Shanker
您好 Prashanth、
感谢您的回答。
现在、我们没有遇到分段故障。 我们现在将重新启动内核。
当我们同时使用 h264和 dei 时、您能确认它是否与 h264参数有任何相关性吗?
测量参数如下所示:-
modprobe cmemk phys_start=0x87800000 phys_end=0x90000000 allowOverlap=1 phys_start_1_0x00001000 phys_end_1_0x00008000 Pools;1=1x28672 useHeapIfPoolUnavailable = 1
我要附加我们的配置文件。
e2e.ti.com/.../2134.encodedecode_5F00_new.txt
谢谢、此致
UMA Shanker