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.

Encoder H264 2.10 (Platinum): How to install on SDK 4?

Hi toall, I'm setting up SDK 4 and I'd like to use H264 Encoder v. 2.10 with it. I looked at the codec migration document (http://processors.wiki.ti.com/index.php/Migration/Integration_Guide_for_DM36x_H.264_version_2.x_codecs), but the info are only updated to SDK version 3, and  there's no mention of v.4. Whaere can I find some information on this?

I currently have SDK 4_00_00_22, with these package versions:

codec-engine_2_26_01_09
codecs-dm365_4_00_00_00
dm365mm-module_01_00_03
dmai_2_20_00_10
dvsdk-demos_4_00_00_18
dvtb_4_20_12
framework-components_2_25_03_07
linuxutils_2_25_05_11
xdais_6_26_01_03
xdctools_3_16_03_36

Thanks,

Cristiano.

  • Cristiano,

    I think SDK 4.x alredy has ver 2.0 codec integrated. You may just need to follow http://processors.wiki.ti.com/index.php/H.264_DM36x_Ver_2.1_Codec to migrate to ver 2.1 codec in case extended parameters are used. Otherwise, just replacing codec package "\codecs-dm365_4_00_00_00\packages\ti\sdo\codecs\h264enc"  with the files "packages\ti\sdo\codecs\h264enc" should be fine.

    regards

    Yashwant

  • Yashwant Dutt said:

    Cristiano,

    I think SDK 4.x alredy has ver 2.0 codec integrated. You may just need to follow http://processors.wiki.ti.com/index.php/H.264_DM36x_Ver_2.1_Codec to migrate to ver 2.1 codec in case extended parameters are used. Otherwise, just replacing codec package "\codecs-dm365_4_00_00_00\packages\ti\sdo\codecs\h264enc"  with the files "packages\ti\sdo\codecs\h264enc" should be fine.

    regards

    Yashwant

    Yes, I need extended parameters. So I downloaded codec 2.10, pointed my makefile to the correct directory, but it seemsit has to be rebuilt with the current tools? My toolchain, as default in SDK 4 is CodeSourcery_G++_Lite.

    This is the error message i get:

    line 79: XDCException: xdc.PACKAGE_REPARSE_FAILED: /home/janesconference/ti-dvsdk_dm365-evm_4_00_00_22/codecs-dm365_4_00_00_00/packages/ti/sdo/codecs/h264.2.10enc/ce/package.xdc found along the package path, but it's package files are incompatible with the current tools and could not be regenerated (InternalError: can't find specification file: ti/sdo/codecs/h264enc/ce/H264ENC.xdc).  The package ti.sdo.codecs.h264enc.ce must be rebuilt with the current tools.

    How can I rebuild the h264 encoder?

  • Cristiano,

    I have downloaded DVSDK 4.01 for dm365 and I replaced the h264 enc v2.0 with the h264 enc v 2.1. I was able to rebuild the demos with the new codec with no issues.

    Can you please do the same? (Please search the forum for DVSDK 4.01 release post). Let me know if you have any issues.

    Thanks

    cesar 

  • Cesar said:

    Cristiano,

    I have downloaded DVSDK 4.01 for dm365 and I replaced the h264 enc v2.0 with the h264 enc v 2.1. I was able to rebuild the demos with the new codec with no issues.

    Can you please do the same? (Please search the forum for DVSDK 4.01 release post). Let me know if you have any issues.

    Thanks

    cesar 

    Dear Cesar,

    I did the same as you (SDK version: 4_01_00_09, replaced H264 encoder with version: 02_10_00_06) but the incompatibility error remains the same:

    ======== Building video_encode_io1 ========
    Configuring application using linux/video_encode_io1_dm365.cfg

    configuring video_encode_io1_dm365.xv5T from package/cfg/video_encode_io1_dm365_xv5T.cfg ...
    js: "/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dmai_2_20_00_14/packages/ti/sdo/dmai/apps/video_encode_io1/linux/video_encode_io1_dm365.cfg", line 40: XDCException: xdc.PACKAGE_REPARSE_FAILED: /home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/codecs-dm365_4_00_00_00/packages/ti/sdo/codecs/h264enc_02_10_00_06/ce/package.xdc found along the package path, but it's package files are incompatible with the current tools and could not be regenerated (InternalError: can't find specification file: ti/sdo/codecs/h264enc/ce/H264ENC.xdc).  The package ti.sdo.codecs.h264enc.ce must be rebuilt with the current tools.
        "./package/cfg/video_encode_io1_dm365_xv5T.cfg", line 474
        "./package/cfg/video_encode_io1_dm365_xv5T.cfg", line 429

    Please note that SDK' s own H264 encoder (02_00_00_10) works well.

    Thanks,

    Cristiano.

  • Cristiano,

    I noticed that you have changed the name of the codec: codecs/h264enc_02_10_00_06 instead of codecs/h264enc.

    The name of the codec is part of the codec package name. The application .cfg file includes this package name. If you change the codec name the application will no longer find the codec. This is the source of the error you see.

     

    Thanks

    Cesar

  • Cesar said:

    Cristiano,

    I noticed that you have changed the name of the codec: codecs/h264enc_02_10_00_06 instead of codecs/h264enc.

    The name of the codec is part of the codec package name. The application .cfg file includes this package name. If you change the codec name the application will no longer find the codec. This is the source of the error you see.

     

    Thanks

    Cesar

    Dear Cesar,

    Actually I didn't exactly change name: I made a symbolic link h264enc ->  h264enc_02_10_00_06. The makefile couldn't handle links correcty, I guess, because renaming the directory name straight to h264enc as you suggested did the trick.

    I ran into another problem later in compilation, though. Seems that the dvtb demo is not up-to date with the new 2.10 extended parameters (as described inhttp://processors.wiki.ti.com/index.php/H.264_DM36x_Ver_2.1_Codec ). Could you confirm that dvtb can't compile "as is" with SDK 4.1 and codec 2.1? Here's the error:

    /home/janesconference/hd2/SDK_4.01/CodeSourcery/Sourcery_G++_Lite//bin/arm-none-linux-gnueabi-gcc -I /home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/psp/linux-2.6.32.17-psp03.01.01.38/include -I /home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/xdais_6_26_00_02/packages/ti/xdais/include  -I ../../../../../packages/ti/sdo/dvtb/core/inc/common -I ../../../../../packages/ti/sdo/dvtb/core/inc/linux -I ../../../../../packages/ti/sdo/dvtb/pal/linux/v4l2 -I /home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dvtb_4_20_15/packages/ti/sdo/dvtb/dm365/linux -I ../../../../../packages/ti/sdo/dvtb/pal/linux/alsa  -I /home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/linux-devkit/arm-none-linux-gnueabi/usr/include -Wall -DDM365  -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/codecs-dm365_4_00_00_00/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/framework-components_2_25_03_07/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/framework-components_2_25_03_07/fctools/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/codec-engine_2_26_01_09/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/xdais_6_26_00_02/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/linuxutils_2_25_05_11/packages" -I"/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/codec-engine_2_26_01_09/examples" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/xdctools_3_16_03_36/packages" -I"/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dvtb_4_20_15/packages/ti/sdo/dvtb/dm365/dvtb_dm365/.."  -Dxdc_target_types__="gnu/targets/codesourcery/std.h" -Dxdc_target_name__=GCArmv5T -Dxdc_cfg__header__="/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dvtb_4_20_15/packages/ti/sdo/dvtb/dm365/dvtb_dm365/package/cfg/dvtb_dm365_x470MV.h" -c   -o dvtbParam.rel.o linux/dvtbParam.c
    linux/dvtbParam.c: In function 'dvtb_initValues':
    linux/dvtbParam.c:417: error: 'IH264VENC_Params' has no member named 'aspectRatioX'
    linux/dvtbParam.c:418: error: 'IH264VENC_Params' has no member named 'aspectRatioY'
    linux/dvtbParam.c:419: error: 'IH264VENC_Params' has no member named 'pixelRange'
    linux/dvtbParam.c:420: error: 'IH264VENC_Params' has no member named 'timeScale'
    linux/dvtbParam.c:421: error: 'IH264VENC_Params' has no member named 'numUnitsInTicks'
    linux/dvtbParam.c:423: error: 'IH264VENC_Params' has no member named 'disableHDVICPeveryFrame'
    linux/dvtbParam.c:425: error: 'IH264VENC_Params' has no member named 'unrestrictedMV'
    linux/dvtbParam.c:445: error: 'IH264VENC_DynamicParams' has no member named 'intraSliceNum'
    linux/dvtbParam.c:447: error: 'IH264VENC_DynamicParams' has no member named 'meMultiPart'
    linux/dvtbParam.c:450: error: 'IH264VENC_DynamicParams' has no member named 'intraThrQF'
    make[2]: *** [dvtbParam.rel.o] Error 1
    make[2]: Leaving directory `/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dvtb_4_20_15/packages/ti/sdo/dvtb/dm365'
    make[1]: *** [DM365_BUILD] Error 2
    make[1]: Leaving directory `/home/janesconference/hd2/SDK_4.01/ti-dvsdk_dm365-evm_4_01_00_09/dvtb_4_20_15'
    make: *** [dvtb] Error 2

     

    Thank you,

    Cristiano.

  • Christiano,

    Can you please remove DVTB from the build script, i dont think you need it.  I am afraid, the DVTB uses extended parameters and hence its is outdated w.r.t. the new codec parameters.

    regards

    Yashwant