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.

C6a816x H.264 Encode Demo Frame Rate

Other Parts Discussed in Thread: TVP7002

When I run the H.264 Encode Demo on the C6a816x EVM the resulting file: dm816x_1080p60_encode.264 gets written to the /usr/share/ti/data/videos directory. 

If I copy this file to my PC and view it using Windows Media Player or RealPlayer it plays at half the rate is should.

Has anybody else noticed this?

Does this .264 file not have the correct frame rate in it.  Does it have any frame rate information in it.

I feel like it should play at 60fps, but is only playing at 30 fps.

Any help would be appreciated.

Thanks,

-greg

  •  

    After some investigation, I think I understand this better.  The .264 file produced by the TI-8168 is a elementary stream of NAL units.  It has no timing information.  The elementary stream needs to be muxed into a container such as mp4, which will then specify the frame rate.

    If anyone has anything to add to this or correct, please feel free.

    Regards,

    -Greg

  • Hi Gregory,

     

    How you get H.264 Encode Demo? Where is in EZSDK?

    I am trying Video Encode on EVM DM8168 using OMTB.

    Can you look below link, I have post in this forum

    http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/p/129692/464564.aspx#464564

     

    Thanks & Regards,

    Pubesh.R

     

     

     

  •  

    This is the script that I edit:

    dual_display_encode_decode.oms

    If you look in this script you can find where the output is specified.

    You also have to uncomment out the line that gives write permission to that file.

    #To enable write to SD card change mode to file
    omx setp 0 h264venc data_opmode file
    omx setp 0 h264venc outfile /usr/share/ti/data/videos/dm816x_1080p60_encode.264

    Then I reboot the EVM, and use the touch screen to restart the demo.  I have not figured out how to stop and restart the demo process from the command line.

    It seg faults if I try to execute from the command line. 

    Also, to change the bit rate:

    omx api getparam  h264venc 0 0 1 OMX_IndexParamPortDefinition
    omx setp 0 h264venc OMX_IndexParamPortDefinition video.nBitrate 10000000
    omx api setparam  h264venc 0 0 1 OMX_IndexParamPortDefinition

    Hope that helps.....

     

     

     

  • Hi Gregory Goss,

     

    Thanks for your reply.  I have also found that, it is working.

    Now i am trying encode video alone.

    Giving the component video input to capture from dvd player (720p60). I am trying to file write After encoding data. It was writing the encoded data.

    But when play that file (dm816x_720p60_encode.264), it was full green color on player. I did not get the video from display also via HDMI.

    FYI,

    I have put my oms here.

     

    #omx omtb_dbg_lvl 0x00
    #omx omtb_dbg_lvl 0x04
    #omx omtb_dbg_lvl 0x08
    #omx omtb_dbg_lvl 0x10
    #omx omtb_dbg_lvl 0x80
    omx api init
    omx setp 0 vfcc compname OMX.TI.VPSSM3.VFCC 
    omx setp 0 tvp compname OMX.TI.VPSSM3.CTRL.TVP
    omx setp 0 h264enc compname OMX.TI.DUCATI.VIDENC
    omx setp 0 dc compname OMX.TI.VPSSM3.CTRL.DC
    omx setp 0 vfdc compname OMX.TI.VPSSM3.VFDC
    #I/P Port or O/P Port Params for VFCC
    omx setp 0 vfcc numoutbuf 6
    omx setp 0 vfcc frame_width 1280
    omx setp 0 vfcc frame_height 720
    omx setp 0 vfcc op_chromat_format 420SP
    omx setp 0 vfcc outbufalign 0
    omx setp 0 vfcc outbuf_contig disable
    omx setp 0 vfcc outbufsize 3110400
    omx setp 0 vfcc data_opmode driver
    omx setp 0 vfcc outbuf allocate
    omx setp 0 vfcc outbufsize_flag disable
    omx setp 0 vfcc numoutbuf 6
    omx setp 0 vfcc outbuf_contig disable
    omx setp 0 dei frame_width 1280
    omx setp 0 dei frame_height 720
    omx setp 0 dei op_chromat_format 420SP
    omx setp 0 dei ip_chromat_format 420SP
    omx setp 0 dei numinbuf 6 
    omx setp 0 dei inbufalign 0 
    omx setp 0 dei inbuf_contig disable
    omx setp 0 dei inbufsize_flag disable
    omx setp 0 dei inbufsize 3110400
    omx setp 0 dei numoutbuf 8
    omx setp 0 dei outbufalign 0
    omx setp 0 dei outbuf_contig disable
    omx setp 0 dei outbufsize_flag enable
    omx setp 0 dei outbufsize 4147200 
    omx setp 0 dei data_opmode driver
    omx setp 0 dei inbuf use
    omx setp 0 dei outbuf allocate
    omx setp 0 h264venc numinbuf 8
    omx setp 0 h264venc frame_width 1280
    omx setp 0 h264venc frame_height 720
    omx setp 0 h264venc inbufsize 4147200
    omx setp 0 h264venc numoutbuf 4
    omx setp 0 h264venc outbufsize_flag enable
    omx setp 0 h264venc outbufsize 3110400
    omx setp 0 h264venc data_opmode driver
    #To enable write to SD card change mode to file
    omx setp 0 h264venc data_opmode file
    omx setp 0 h264venc outfile /usr/share/ti/data/videos/dm816x_720p60_encode.264
    omx setp 0 vfdc frame_width 1280
    omx setp 0 vfdc frame_height 720
    omx setp 0 vfdc ip_chromat_format 422YUYV
    omx setp 0 vfdc numinbuf 8 
    omx setp 0 vfdc inbufalign 0
    omx setp 0 vfdc inbuf_contig disable
    omx setp 0 vfdc inbufsize 4147200 
    omx setp 0 vfdc data_opmode driver
    omx setp 0 vfdc inbuf use
    omx setp 0 vfdc graphics_flag disable
    omx setp 0 vfdc vcdemo_flag enable
    omx setp 0 vfdc mosaic_window_config vs
    omx setp 0 dc insmod_hdmi disable
    omx api gethandle tvp 0 0
    omx api gethandle vfcc 0 0
    omx api gethandle dei 0 0
    omx api gethandle h264venc 0 0
    omx api gethandle vfdc 1 0
    omx api gethandle dc 1 0
    #SET ALL THE PARAMS FOR TVP
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortID eHwPortId vip1_porta
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamVFCCHwPortID
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eCaptMode sc_non_mux
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eVifMode 16_bit
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eInColorFormat 422YUYV
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties eScanType progressive
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxWidth 1280
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxHeight 720
    omx setp 0 tvp OMX_TI_IndexParamVFCCHwPortProperties nMaxChnlsPerHwPort 1
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamVFCCHwPortProperties
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoStandard 720P60
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoDecoderId tvp7002
    omx setp 0 tvp OMX_TI_IndexParamCTRLVidDecInfo videoSystemId auto_detect
    omx api setparam tvp 0 0 0 OMX_TI_IndexParamCTRLVidDecInfo
    #************************************************************
    #SET ALL THE PARAMS FOR VFCC
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortID eHwPortId vip1_porta
    omx api setparam vfcc 0 0 0 OMX_TI_IndexParamVFCCHwPortID
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eCaptMode sc_non_mux
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eVifMode 16_bit
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eInColorFormat 422YUYV
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties eScanType progressive
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxWidth 1280
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxHeight 720
    omx setp 0 vfcc OMX_TI_IndexParamVFCCHwPortProperties nMaxChnlsPerHwPort 1
    omx api setparam vfcc 0 0 0 OMX_TI_IndexParamVFCCHwPortProperties
    omx setp 0 vfcc OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx api setparam  vfcc 0 0 0  OMX_TI_IndexParamBuffMemType
    omx setp 0 vfcc OMX_IndexParamCompBufferSupplier eBufferSupplier unspecified
    #omx api setparam  vfcc 0 0 0  OMX_IndexParamCompBufferSupplier
    omx setp 0 vfcc OMX_TI_IndexConfigVFCCFrameSkip frameSkipMask 0
    #omx api setconfig  vfcc 0 0 0  OMX_TI_IndexConfigVFCCFrameSkip
    omx setp 0 vfcc OMX_IndexParamVideoInit nPorts 16
    omx setp 0 vfcc OMX_IndexParamVideoInit nStartPortNumber 0
    #omx api setparam  vfcc 0 0 0  OMX_IndexParamVideoInit
    omx setp 0 dei OMX_TI_IndexParamVFPCNumChPerHandle nNumChannelsPerHandle 1
    omx api setparam dei 0 0 0 OMX_TI_IndexParamVFPCNumChPerHandle
    omx setp 0 dei OMX_TI_IndexConfigAlgEnable bAlgBypass enable
    omx setp 0 dei OMX_TI_IndexConfigAlgEnable nChId 0
    omx api setconfig dei 0 0 0 OMX_TI_IndexConfigAlgEnable
    omx setp 0 dei OMX_TI_IndexConfigSubSamplingFactor nSubSamplingFactor 1
    omx api setconfig dei 0 0 0 OMX_TI_IndexConfigSubSamplingFactor
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Width  1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Height 720
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Pitch  1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Width  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Height 0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Pitch  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmStartX  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmStartY  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmCropWidth 1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmCropHeight 720
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution eDir input
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution nChId 0
    omx api setconfig dei 0 0 0  OMX_TI_IndexConfigVidChResolution
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Width  1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Height 720
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm0Pitch  3840
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Width  1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Height 720
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution Frm1Pitch  1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmStartX  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmStartY  0
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmCropWidth 1280
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution FrmCropHeight 720
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution eDir output
    omx setp 0 dei OMX_TI_IndexConfigVidChResolution nChId 0
    omx api setconfig dei 0 0 16  OMX_TI_IndexConfigVidChResolution
    omx setp 0 dei OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx api setparam  dei  0 0 0  OMX_TI_IndexParamBuffMemType
    omx setp 0 dei OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx api setparam  dei 0 0 16  OMX_TI_IndexParamBuffMemType
    omx setp 0 dei OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx api setparam  dei 0 0 17  OMX_TI_IndexParamBuffMemType
    omx setp 0 dei OMX_TI_IndexParamCompPortNotifyType eNotifyType always
    #omx api setparam  dei  0 0 0  OMX_TI_IndexParamCompPortNotifyType
    omx setp 0 dei OMX_TI_IndexParamCompPortNotifyType eNotifyType always
    #omx api setparam  dei  0 0 16  OMX_TI_IndexParamCompPortNotifyType
    omx setp 0 dei OMX_TI_IndexParamCompPortNotifyType eNotifyType always
    #omx api setparam dei 0 0 17   OMX_TI_IndexParamCompPortNotifyType
    omx setp 0 dei OMX_IndexParamCompBufferSupplier eBufferSupplier unspecified
    omx setp 0 dei  OMX_TI_IndexParamVFPCNumChPerHandle nNumChannelsPerHandle 1
    omx setp 0 dei OMX_IndexParamVideoInit nPorts 3
    omx setp 0 dei OMX_IndexParamVideoInit nStartPortNumber 0
    omx api getparam  dei 0 0 0 OMX_IndexParamPortDefinition
    omx setp 0 dei OMX_IndexParamPortDefinition video.nStride 1280
    omx api setparam  dei 0 0 0 OMX_IndexParamPortDefinition
    omx api getparam  h264venc 0 0 0 OMX_IndexParamPortDefinition
    omx setp 0 h264venc OMX_IndexParamPortDefinition video.nStride 1280
    omx api setparam  h264venc 0 0 0 OMX_IndexParamPortDefinition
    omx setp 0 vfdc OMX_TI_IndexParamVFDCDriverInstId nDrvInstID 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCDriverInstId eDispVencMode 720p60
    omx api setparam  vfdc 1 0 0 OMX_TI_IndexParamVFDCDriverInstId
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winStartX 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winStartY 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winWidth 1280
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout winHeight 720
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_INT_ADDR_IDX 1280
    #3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_SP_Y_ADDR_IDX 1280
    #3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout pitch.VFDC_YUV_SP_CBCR_ADDR_IDX 1280
    #3840
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout dataFormat 422I_YUYV
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout bpp bits16
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout priority 0
    omx setp 0 vfdc OMX_TI_IndexParamVFDCCreateMosaicLayout nLayoutId 0
    omx setp 0 vfdc mosaicNumRows 1
    omx setp 0 vfdc mosaicNumCols 1
    omx setp 0 vfdc mosaicDispWindowWidth 1280
    omx setp 0 vfdc mosaicDispWindowHeight 720
    omx api setparam  vfdc 1 0 0 OMX_TI_IndexParamVFDCCreateMosaicLayout
    omx setp 0 vfdc OMX_TI_IndexConfigVFDCMosaicPort2WinMap nLayoutId 0
    omx api setconfig vfdc 1 0 0 OMX_TI_IndexConfigVFDCMosaicPort2WinMap 1 0 
    omx setp 0 vfdc OMX_TI_IndexParamBuffMemType eBufMemoryType default
    omx setp 0 vfdc OMX_IndexParamCompBufferSupplier eBufferSupplier unspecified
    omx setp 0 vfdc OMX_IndexParamVideoInit nPorts 1
    omx setp 0 vfdc OMX_IndexParamVideoInit nStartPortNumber 0
    omx api getparam  vfdc 1 0 0 OMX_IndexParamPortDefinition
    omx setp 0 vfdc OMX_IndexParamPortDefinition video.nStride 1280
    #3840
    omx api setparam  vfdc 1 0 0 OMX_IndexParamPortDefinition
    #************************************************************
    #SET ALL THE PARAMS FOR DC#0
    omx setp 0 dc OMX_TI_IndexParamVFDCDriverInstId nDrvInstID 0
    omx setp 0 dc OMX_TI_IndexParamVFDCDriverInstId eDispVencMode 720p60
    omx api setparam  dc 1 0 0 OMX_TI_IndexParamVFDCDriverInstId
    omx api sendcommand port vfcc 0 enable 0
    omx api sendcommand port vfcc 0 waitforsem 0
    omx api sendcommand port dei 0 enable 0
    omx api sendcommand port dei 0 waitforsem 0
    omx api sendcommand port dei 0 enable 16
    omx api sendcommand port dei 0 waitforsem 16
    omx api sendcommand port dei 0 enable 17
    omx api sendcommand port dei 0 waitforsem 17
    omx api sendcommand port h264venc 0 enable 0
    omx api sendcommand port h264venc 0 waitforsem 0
    omx api sendcommand port h264venc 0 enable 1
    omx api sendcommand port h264venc 0 waitforsem 1
    omx api connect vfcc 0 0 dei 0 0
    omx api connect dei 0 16 vfdc 1 0
    omx api connect dei 0 17 h264venc 0 0
    omx api sendcommand state vfcc 0 idle
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state tvp 0 idle
    omx api sendcommand state tvp 0 waitforsem
    omx api sendcommand state dei 0 idle
    omx api sendcommand state dei 0 waitforsem
    omx api sendcommand state dc 1 idle
    omx api sendcommand state dc 1 waitforsem
    omx api sendcommand state vfdc 1 idle
    omx api sendcommand state vfdc 1 waitforsem
    omx api sendcommand state h264venc 0 idle
    omx api sendcommand state h264venc 0 waitforsem
    omx api sendcommand state dc 1 exec
    omx api sendcommand state dc 1 waitforsem
    omx api sendcommand state vfdc 1 exec
    omx api sendcommand state vfdc 1 waitforsem
    omx api sendcommand state vfcc 0 exec
    omx api sendcommand state vfcc 0 waitforsem
    omx api sendcommand state dei 0 exec
    omx api sendcommand state dei 0 waitforsem
    omx api sendcommand state h264venc 0 exec
    omx api sendcommand state h264venc 0 waitforsem
    omx api sendcommand state tvp 0 exec
    omx api sendcommand state tvp 0 waitforsem

     

    please look, and if u did encode from external source like dvd player or camera, please give the oms script file.

    it will be helpful us.

     

    Thanks & Regards,

     

    Pubesh.R

  • I have not tried 720p yet.

    I upconvert my sources to 1080p60 component before sending in to the EVM. That seems to be the only thing it supports.

    We are working towards different input geometries at the moment.  And they might involve software changes, but not sure yet.

    -Greg