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.

decode_display_a8host_debug.xv5 unrecoverable error: OMX_ErrorBadParameter (0x80001005) ?

My goal is to demo smooth video playback on a DM8168 running a display at 1024 x 768. While the demo video dm816x_1080p_demo.264 is beautiful and decode_display_a8host_debug.xv5 decodes flawlessly, I see no option to get it to work at 1024 x 768.  

Here's what I have done:

  1. Used QuickTime Pro to scale a 1080p movie trailer to 1024 x 768
  2. Used mencoder to convert to video to H264-ES elementary stream or *.264.
  3. I configured Z3 DM8168 to drive display at 1024x768@60
  4. Stopped Matrix GUI
  5. Used decode_display_a8host_debug.xv5 to attempt play back unsuccsefully.

Using:

  • TI Graphics SDK 04.08.00.02 
  • TI EZSDK DM8168 EVM 5.05.01.04

Mencoder command used to create H264 ES Video:

mencoder IronMan-1024x768.mov -nosound -of rawvideo -ofps 30 -vf harddup -ovc x264 -x264encopts bframes=0 -o IronMan.264

While MPlayer running on the DM8168 plays entire video, it runs slow, and not smoothly:

mplayer -nosound -vo fbdev:/dev/fb0 /usr/share/ti/data/videos/IronMan.264 
MPlayer UNKNOWN-4.3.3 (C) 2000-2010 MPlayer Team

Playing /usr/share/ti/data/videos/IronMan.264.
H264-ES file format detected.
FPS seems to be: 60.000000
==========================================================================
Opening video decoder: [ffmpeg] FFmpeg's libavcodec codec family
Selected video codec: [ffh264] vfm: ffmpeg (FFmpeg H.264)
==========================================================================
Audio: no sound
Starting playback...
[h264 @ 0x841d48]Overread VUI by 93 bits
Could not find matching colorspace - retrying with -vf scale...
Opening video filter: [scale]
Movie-Aspect is 1.33:1 - prescaling to correct movie aspect.
[swscaler @ 0x8d9ca0]No accelerated colorspace conversion found from yuv420p to bgra.
[swscaler @ 0x8d9ca0]using unscaled yuv420p -> bgra special converter
VO: [fbdev] 1280x544 => 1280x960 BGRA 
V:   0.0  85/ 85 223% 99%  0.0% 0 0 
[h264 @ 0x841d48]Overread VUI by 93 bits
V:   0.1 110/110 199% 98%  0.0% 0 0 
[h264 @ 0x841d48]Overread VUI by 93 bits
V:   0.2 137/137 214% 97%  0.0% 0 0 
[h264 @ 0x841d48]Overread VUI by 93 bits

decode_display_a8host_debug.xv5T crashes after reporting:

got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)

/etc/init.d/matrix-gui-e stop
Stopping Matrix GUI application.
root@dm816x-evm:~# /usr/share/ti/ti-omx/decode_display_a8host_debug.xv5T -w 1024 -h 768 -f 30 -i /usr/share/ti/data/videos/IronMan.264  -g 0 -d 0 -c h264
input file: /usr/share/ti/data/videos/IronMan.264
width: 1024
height: 768
frame_rate: 60
gfx: fbdev disable
codec: h264
display_id: 0
 Decoder-Display example 
===============================
 OMX_Init completed 
 UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
 opening file 
 decoder compoenent is created 
PADX: 32 PADY: 24
 level set is 12 
 scalar compoenent is created 
set input port params (width = 1024, height = 768) 
set output port params (width = 1024, height = 768) 
set number of channels 
set input resolution 
set output resolution 
enable scalar input port 
got eventEnable/Disable Event 
enable scalar output port 
got eventEnable/Disable Event 
found handle 0x130068 for component OMX.TI.VPSSM3.VFDC 
 got display handle 
found handle 0x134070 for component OMX.TI.VPSSM3.CTRL.DC
Buffer Size computed: 1572864
set input port params (width = 1024, height = 768) 
setting input and output memory type to default
enable input port 
got eventEnable/Disable Event 
 connect call for decoder-scalar 
  connect call for scalar-display 
  decoder inport buffers allocated 
  decoder outport buffers allocated 
 got eventState changed to: OMX_StateIdle 
 decoder state IDLE 
  Scalar input port use buffer done 
  scalar outport buffers allocated 
 got eventState changed to: OMX_StateIdle 
 scalar state IDLE 
 got eventState changed to: OMX_StateIdle 
 ctrl-dc state IDLE 
 got eventState changed to: OMX_StateIdle 
 display state IDLE 
 got eventState changed to: OMX_StateExecuting 
 display control state execute 
 got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005) 

Thanks in advance for any direction,

-Ed

  • DM816x_EZ_5.03.01_Software_Developers_Guide said:
    Note! If you want to change the video resolution, then you must edit the OMTB script or call the necessary OMX API. For more information please refer the OMTB and OMX documentation. You must make sure that both the Graphics and Video resolution is configured to the same value.


    Must I also edit a OMTB script to use of  decode_display_a8host_debug.xv5 ?  If so, which OMS script applies to decode_display_a8host_debug.xv5?

    find /usr -name "*.oms"
    /usr/share/ti/ti-omtb/capture_dei_encode_30fps.oms
    /usr/share/ti/ti-omtb/decode_scale_display.oms
    /usr/share/ti/ti-omtb/fread_vdec_fwrite.oms
    /usr/share/ti/ti-omtb/decode_scale_display_30fps.oms
    /usr/share/ti/ti-omtb/dual_display_encode_decode.oms
    /usr/share/ti/ti-omtb/dual_display_encode_decode_nopause.oms
    /usr/share/ti/ti-omtb/capture_dei_encode.oms
    /usr/share/ti/ti-omtb/fread_venc_fwrite.oms
    /usr/share/ti/ti-omtb/fread_aacdec_fwrite.oms
    


    I found this document but I am still trying to understand what OMS scripts are and who and how they are used:

    ${EZSDK}/example-applications/omtb_01_00_01_07/packages/ti/sdo/omtb/docs/OMTB_01_00_01_07_UserGuide.pdf 


  • HI,

    I am also facing the same issue while trying to run this application in LCD (800x480). And also its showing the output height and width as 1920x1080.

    root@dm816x-evm:~# /usr/share/ti/ti-omx/decode_display_a8host_debug.xv5T   -w 80
    0 -h 480 -i /home/root/Housefull-2-Trailer_MP4.mp4 -f 30 -g 0 -d 1 -c h264
    input file: /home/root/Housefull-2-Trailer_MP4.mp4
    width: 800
    height: 480
    frame_rate: 30
    gfx: fbdev disable
    codec: h264
    display_id: 1
     Decoder-Display example
    ===============================
     OMX_Init completed
     UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
    UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
     opening file
     decoder compoenent is created
    PADX: 32 PADY: 24
     level set is 12
     scalar compoenent is created
    set input port params (width = 800, height = 480)
    set output port params (width = 1920, height = 1080)
    set number of channels
    set input resolution
    set output resolution
    enable scalar input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
    found handle 0x130068 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x134070 for component OMX.TI.VPSSM3.CTRL.DC
    Buffer Size computed: 4147200
    set input port params (width = 800, height = 480)
    setting input and output memory type to default
    enable input port
    got eventEnable/Disable Event
     connect call for decoder-scalar
      connect call for scalar-display
      decoder inport buffers allocated
      decoder outport buffers allocated
     got eventState changed to: OMX_StateIdle
     decoder state IDLE
      Scalar input port use buffer done
      scalar outport buffers allocated
     got eventState changed to: OMX_StateIdle
     scalar state IDLE
     got eventState changed to: OMX_StateIdle
     ctrl-dc state IDLE
     got eventState changed to: OMX_StateIdle
     display state IDLE
     got eventState changed to: OMX_StateExecuting
     display control state execute
     got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)


    Please suggest any solution to fix this issue.

    Thanks in advance.

    Regards,

    Salih

  • Hi Salih,

    decode_display application expects elementary streams since there are no parsers integrated for parsing container formats. The input file you are using seems in container format. Please extract .h264 from the .mp4 

    In dm816x/platform_utils.h, DISPLAY_WIDTH and DISPLAY_HEIGHT are defined as 1920 and 1080 repsectively for DM8168 device.

    Scalar will scale decoded output from 800x480 to 1920x1080 hence you are seeing 1920x1080 as output parameters.

    Thanks

    Ram

  • Hi Ram,

    Thanks for your prompt response. Should I change the DISPLAY_WIDTH and DISPLAY_HEIGHT as 800 and 480 in the platform_utils.h to make it work in the LCD. If I run .h264 (dm816x_1080p_demo.264) file, I am getting the same issue.

    If I change in that file, then how can I run the same in my HDMI .

    Please suggest any solution to fix this issue. Struggling with this for very long time.

    Thanks in advance.

    Regards,

    Salih

  • Hi Salih,

    Can you first try with -d 0 option to display on HDMI? For HDMI display, there won't be any scaling up. 

    I am not sure which daughter card you are using and the LCD attached to it.

    Give a try with DISPLAY_WIDTH 800 and DISPLAY_HEIGHT 480 once.

    Ram

  • Hi Ram,

    Thanks for your inputs.

    I have tried it with HDMI and it is working fine without any issue. I am using the my customized daughter board with the LCD of 800x480 as resolution. When tried to run in the LCD, I am getting that error message and nothing is displaying in the target console and also system gets stuck up with that.

    Regards,

    Salih

  • Hi Salih,

    For LCD, did you change DISPLAY_WIDTH and DISPLAY_HEIGHT to 800x480 ?

  • Hi,

    I have tried with changing of Display width and height. Still the issue remains same. Below is my console print from my target:

    root@dm816x-evm:~#
    root@dm816x-evm:~# /usr/share/ti/ti-omx/decode_display_a8host_debug.xv5T   -w 80
    0 -h 480 -i /usr/share/ti/data/videos/dm816x_1080p_demo.264  -f 30 -g 0 -d 1 -c
    h264
    input file: /usr/share/ti/data/videos/dm816x_1080p_demo.264
    width: 800
    height: 480
    frame_rate: 30
    gfx: fbdev disable
    codec: h264
    display_id: 1
     Decoder-Display example
    ===============================
     OMX_Init completed
     UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
    UIAClient is ready to send a UIA configuration command
    UIAClient received UIA_CONFIGURE_ACK
    UIAClient is done sending requests
     opening file
     decoder compoenent is created
    PADX: 32 PADY: 24
     level set is 12
     scalar compoenent is created
    set input port params (width = 800, height = 480)
    set output port params (width = 800, height = 480)
    set number of channels
    set input resolution
    set output resolution
    enable scalar input port
    got eventEnable/Disable Event
    enable scalar output port
    got eventEnable/Disable Event
    found handle 0x13c068 for component OMX.TI.VPSSM3.VFDC
     got display handle
    found handle 0x140070 for component OMX.TI.VPSSM3.CTRL.DC
    Buffer Size computed: 768000
    set input port params (width = 800, height = 480)
    setting input and output memory type to default
    enable input port
    got eventEnable/Disable Event
     connect call for decoder-scalar
      connect call for scalar-display
      decoder inport buffers allocated
      decoder outport buffers allocated
     got eventState changed to: OMX_StateIdle
     decoder state IDLE
      Scalar input port use buffer done
      scalar outport buffers allocated
     got eventState changed to: OMX_StateIdle
     scalar state IDLE
     got eventState changed to: OMX_StateIdle
     ctrl-dc state IDLE
     got eventState changed to: OMX_StateIdle
     display state IDLE
     got eventState changed to: OMX_StateExecuting
     display control state execute
     got event*** unrecoverable error: OMX_ErrorBadParameter (0x80001005)

    Please suggest any solution to solve this issue.

    Thanks in advance.

    Regards,

    Salih

  • Hi Salih,

    The issue is with display-controller for LCD configuration. Can you execute

    /usr/share/ti/ti-uia/loggerSMDump.out 0x9E400000 0x00100000 all

    to get the logs?

    You can also try with gstreamer application to decode and display on LCD

    on root-prompt execute runGSTDecodeDisplayLCD as shown below

    root@dm816x-evm:~# runGSTDecodeDisplayLCD

  • Hi,

    I am not seeing the file runGSTDecodeDisplayLCD in my SDK as well as in my targetfs. Please let me know where to get that file to test. I have attached the log with this post as I executed the above Dump command in the target

    1033.logs_dump.txt
    root@dm816x-evm:~# /usr/share/ti/ti-uia/loggerSMDump.out 0x9E400000 0x00100000 a
    ll
    Opened loggerSM.bin to store encoded records
    N:Video P:1 #:00000 T:0000000001a42bd5 M:xdc.runtime.Main S:Enabling Status Logger
    N:VPSS  P:2 #:00000 T:0000000011c04cbb M:xdc.runtime.Main S:Enabling Status Logger
    N:Video P:1 #:00001 T:0000000001a48c05 M:xdc.runtime.Main S:Enabling User1 Logs
    N:VPSS  P:2 #:00001 T:0000000011c0af17 M:xdc.runtime.Main S:Enabling User1 Logs
    N:Video P:1 #:00002 T:0000000001a4f6c1 M:xdc.runtime.Main S:Disabling User1 Logs
    N:VPSS  P:2 #:00002 T:0000000011c116ef M:xdc.runtime.Main S:Disabling User1 Logs
    N:Video P:1 #:00003 T:0000000001a5590f M:xdc.runtime.Main S:Disabling User1 Logs
    N:VPSS  P:2 #:00003 T:0000000011c17523 M:xdc.runtime.Main S:Disabling User1 Logs
    N:Video P:1 #:00004 T:0000000001a5b839 M:xdc.runtime.Main S:Disabling User1 Logs
    N:VPSS  P:2 #:00004 T:0000000011c1d125 M:xdc.runtime.Main S:Disabling User1 Logs
    N:Video P:1 #:00005 T:0000000001a61a1d M:xdc.runtime.Main S:Disabling User1 Logs
    N:VPSS  P:2 #:00005 T:0000000011c22f94 M:xdc.runtime.Main S:Disabling User1 Logs
    N:Video P:1 #:00006 T:0000000001a67ddf M:xdc.runtime.Main S:Enabling Analysis Logs
    N:VPSS  P:2 #:00006 T:0000000011c28f79 M:xdc.runtime.Main S:Enabling Analysis Logs
    N:Video P:1 #:00007 T:0000000001a93cf1 M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procAttach> @line<151>
    N:VPSS  P:2 #:00007 T:0000000011c8af39 M:xdc.runtime.Main S:edma3init() Passed
    N:Video P:1 #:00008 T:000000000200a6dd M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<177> msg<Before Ipc_attach>
    N:VPSS  P:2 #:00008 T:0000000013bf905b M:xdc.runtime.Main S:isI2cInitReq is 1
    N:Video P:1 #:00009 T:00000000082e45fd M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<184> msg<After Ipc_attach>
    N:VPSS  P:2 #:00009 T:0000000014913aae M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procAttach> @line<151>
    N:Video P:1 #:00010 T:00000000082ed79d M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<186> msg<Ipc_attach successful>
    N:VPSS  P:2 #:00010 T:0000000014fe5cb3 M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<191> msg<Before Ipc_attach>
    N:Video P:1 #:00011 T:00000000082f4ca3 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procAttach> @line<233> with error<0:ErrorNone>
    N:VPSS  P:2 #:00011 T:000000001b009ea7 M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<198> msg<After Ipc_attach>
    N:Video P:1 #:00012 T:0000000008342085 M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procInit> @line<250>
    N:VPSS  P:2 #:00012 T:000000001b013b0b M:xdc.runtime.Main S:Module<ti.omx> @<DomxCore_procAttach> @line<200> msg<Ipc_attach successful>
    N:Video P:1 #:00013 T:000000000836246d M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procMsgQInit> @line<115>
    N:VPSS  P:2 #:00013 T:000000001b01ab99 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procAttach> @line<233> with error<0:ErrorNone>
    N:Video P:1 #:00014 T:000000000836e02b M:xdc.runtime.Main S:Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<927> msg<Before MessageQ_registerHeap>
    N:VPSS  P:2 #:00014 T:000000001b06ce97 M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procInit> @line<250>
    N:Video P:1 #:00015 T:000000000837679b M:xdc.runtime.Main S:Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<932> msg<After MessageQ_registerHeap>
    N:VPSS  P:2 #:00015 T:000000001b0741a1 M:xdc.runtime.Main S:Module<ti.omx> Entering<DomxCore_procMsgQInit> @line<115>
    N:Video P:1 #:00016 T:000000000837e4b3 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procMsgQInit> @line<142> with error<0:ErrorNone>
    N:VPSS  P:2 #:00016 T:000000001b083693 M:xdc.runtime.Main S:Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<927> msg<Before MessageQ_registerHeap>
    N:Video P:1 #:00017 T:0000000008385ac5 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procInit> @line<346> with error<0:ErrorNone>
    N:VPSS  P:2 #:00017 T:000000001b08bded M:xdc.runtime.Main S:Module<ti.omx> @<OmxRpc_moduleRegisterMsgqHeap> @line<932> msg<After MessageQ_registerHeap>
    N:Video P:1 #:00018 T:000000000838f529 M:xdc.runtime.Main S:@ omxrpc_rcm_server_create: rcmServerName OmxRpcRcmServer_1, priority 8
    N:VPSS  P:2 #:00018 T:000000001b094349 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procMsgQInit> @line<142> with error<0:ErrorNone>
    N:Video P:1 #:00019 T:00000000083964e7 M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<225> msg<Before RcmServer_Params_init>
    N:VPSS  P:2 #:00019 T:000000001b09b6c9 M:xdc.runtime.Main S:Module<ti.omx> Leaving<DomxCore_procInit> @line<346> with error<0:ErrorNone>
    N:Video P:1 #:00020 T:000000000839e1eb M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<229> msg<After RcmServer_Params_init>
    N:VPSS  P:2 #:00020 T:000000001b0a5d6f M:xdc.runtime.Main S:@ omxrpc_rcm_server_create: rcmServerName OmxRpcRcmServer_2, priority 8
    N:Video P:1 #:00021 T:00000000083a5b1f M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<232> msg<Before RcmServer_create>
    N:VPSS  P:2 #:00021 T:000000001b0acc61 M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<225> msg<Before RcmServer_Params_init>
    N:Video P:1 #:00022 T:00000000083ff54d M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<240> msg<After RcmServer_create>
    N:VPSS  P:2 #:00022 T:000000001b0b45df M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<229> msg<After RcmServer_Params_init>
    N:Video P:1 #:00023 T:000000000840811f M:xdc.runtime.Main S:@ omxrpc_rcm_server_remote_fxn_register regFxnCategory 0
    N:VPSS  P:2 #:00023 T:000000001b0bcfcf M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<232> msg<Before RcmServer_create>
    N:Video P:1 #:00024 T:000000000840e9e7 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcGetHandle)
    N:VPSS  P:2 #:00024 T:000000001b11cad5 M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_create> @line<240> msg<After RcmServer_create>
    N:Video P:1 #:00025 T:00000000084182a7 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcFreeHandle)
    N:VPSS  P:2 #:00025 T:000000001b125cd7 M:xdc.runtime.Main S:@ omxrpc_rcm_server_remote_fxn_register regFxnCategory 0
    N:Video P:1 #:00026 T:000000000841f9ad M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcCreateProxyLite)
    N:VPSS  P:2 #:00026 T:000000001b12c699 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcGetHandle)
    N:Video P:1 #:00027 T:0000000008426e73 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcGetHeapMemStats)
    N:VPSS  P:2 #:00027 T:000000001b136689 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcFreeHandle)
    N:Video P:1 #:00028 T:000000000842e525 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcDeleteProxyLite)
    N:VPSS  P:2 #:00028 T:000000001b13f24d M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcCreateProxyLite)
    N:Video P:1 #:00029 T:0000000008435e0b M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_start> @line<256> msg<Before RcmServer_start>
    N:VPSS  P:2 #:00029 T:000000001b14752f M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcGetHeapMemStats)
    N:Video P:1 #:00030 T:000000000843e40f M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_start> @line<258> msg<After RcmServer_start>
    N:VPSS  P:2 #:00030 T:000000001b14f611 M:xdc.runtime.Main S:Calling RcmServer_addSymbol(OmxRpcDeleteProxyLite)
    N:VPSS  P:2 #:00031 T:000000001b157d4b M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_start> @line<256> msg<Before RcmServer_start>
    N:VPSS  P:2 #:00032 T:000000001b15ff81 M:xdc.runtime.Main S:Module<ti.omx> @<omxrpc_rcm_server_start> @line<258> msg<After RcmServer_start>
    
    

    Thanks in advance.

    Regards,

    Salih

  • Hi Salih,

    The log you shared doesn't have any info. It should have printed few logs of OMX state changes etc.

    Please try

    gst-launch -v filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 
    ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec framerate=30 ! omx_scaler 
    ! 'video/x-raw-yuv,width=800,height=480' ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 display-device=LCD ! omx_videosink sync=false display-device=LCD

  • Hi,

    I have tried with the above commands. I am not seeing any video in my Display.

    I am attaching the log with this post.

    6138.logs_gst.txt
    :~# /etc/init.d/matrix-gui-e stop
    Stopping Matrix GUI application.
    root@dm816x-evm:~# gst-launch -v filesrc location=/usr/share/ti/data/videos/dm81
    6x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec fr
    amerate=30 ! omx_scaler ! 'video/x-raw-yuv,width=800,height=480' ! omx_ctrl disp
    lay-mode=OMX_DC_MODE_1080P_60 display-device=LCD ! omx_videosink sync=false disp
    lay-device=LCD
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-h264, framed=(boolean)false
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, framed=(boolean)false
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, framed=(boolean)false, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920, height=(int)1080
    /GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:sink: caps = video/x-h264, framed=(boolean)false, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920, height=(int)1080
    /GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:sink: caps = video/x-h264, framed=(boolean)false, stream-format=(string)byte-stream, alignment=(string)au, width=(int)1920, height=(int)1080
    /GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:src: caps = video/x-raw-yuv-strided, width=(int)1920, height=(int)1080, format=(fourcc)NV12, rowstride=(int)2048, interlaced=(boolean)false, framerate=(fraction)0/1
    
    (gst-launch-0.10:1414): GStreamer-CRITICAL **: _gst_util_uint64_scale_int: assertion `denom > 0' failed
    /GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:sink: caps = video/x-raw-yuv-strided, width=(int)1920, height=(int)1080, format=(fourcc)NV12, rowstride=(int)2048, interlaced=(boolean)false, framerate=(fraction)0/1
    /GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:sink: caps = video/x-raw-yuv-strided, width=(int)1920, height=(int)1080, format=(fourcc)NV12, rowstride=(int)2048, interlaced=(boolean)false, framerate=(fraction)0/1
    /GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:src: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    /GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:src: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    /GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:sink: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    /GstPipeline:pipeline0/GstOmxVideoSink:omxvideosink0.GstPad:sink: caps = video/x-raw-yuv, width=(int)800, height=(int)480, format=(fourcc)YUY2, framerate=(fraction)0/1, interlaced=(boolean)false
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    OMX_EventError: 0x80001005
    unrecoverable error: One or more parameters were not valid (0x80001005)
    
    Caught interrupt -- handling interrupt.
    Interrupt: Stopping pipeline ...
    Execution ended after 15222855814 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    /GstPipeline:pipeline0/GstOmxVideoSink:omxvideosink0.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:src: caps = NULL
    /GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = NULL
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:src: caps = NULL
    /GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:src: caps = NULL
    /GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = NULL
    /GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = NULL
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = NULL
    Setting pipeline to NULL ...
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one Assertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    or more of its bAssertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    uffers and it thAssertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    us unpopulated (Assertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    0x8000101c)
    OMXAssertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    _EventError: 0x8Assertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    000101c
    unrecovAssertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    erable error: ThAssertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    e port has lost Assertion at Line no: 380 in /swcoe/sdk/cm/netra/arago-tmp/work/dm816x-evm-none-linux-gnueabi/ti-syslink-2_20_02_20-r4j/syslink_2_20_02_20/packages/ti/syslink/utils/hlos/knl/Linux/../../../../../../ti/syslink/utils/hlos/knl/ResTrack.c: (elem == NULL) : failed
    one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    OMX_EventError: 0x8000101c
    unrecoverable error: The port has lost one or more of its buffers and it thus unpopulated (0x8000101c)
    Freeing pipeline ...
    root@dm816x-evm:~# gst-launch -v filesrc location=/usr/share/ti/data/videos/dm81
    6x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec fr
    amerate=30 ! omx_scaler ! 'video/x-raw-yuv,width=800,height=480' ! omx_ctrl disp
    lay-mode=OMX_DC_MODE_1080P_60 display-device=LCD ! omx_videosink sync=false disp
    lay-device=LCD
    gst-launch-0.10: OmxRpc.c:624: OmxRpc_Instance_init: Assertion `(OmxRpc_errorNone == retVal)' failed.
    Aborted
    root@dm816x-evm:~#

    But if I execute the below commands, it is running but not displaying in my LCD.

    root@dm816x-evm:~# gst-launch playbin2 uri=file:///home/root/Clipcanvas.mp4
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...
    this input  params: 1024x576,1152 995328 1
    incoming buffer: nFilledLen: 1133536, nOffset: 27680 nFlags: 40000
    Recieved EOS event, press <CTRL+C> to terminate pipeline.
    Recieved EOS event, press <CTRL+C> to terminate pipeline.
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstAudioSinkClock
    Got EOS from element "playbin20".
    Execution ended after 7998792185 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Setting pipeline to NULL ...
    Freeing pipeline ...
    root@dm816x-evm:~#

    Can you suggest on what might be the issue?

    Thanks in advance.

    Regards,

    Salih

  • Hi,

    Any updates on this issue?. Waiting for your response. And also I want to know what is the difference between the slaveloader and firmware_loader?.  And also it possible to load both the firmware at a time?. I want to play a video using G-streamer in my LCD?. Still I am in confusion on which firmware needs to be loaded and which are module needs to be loaded to play a video in the LCD.

    I am struggling with this for very long time.If I loaded with the load-hd-v4l2-firmware.sh, and if I run the video, I am getting below errors and nothing is displaying.

    root@dm816x-evm:~# gst-launch playbin2 uri=file:///home/root/big_buck_bunny.mp4
    Setting pipeline to PAUSED ...
    Pipeline is PREROLLING ...

    ** (gst-launch-0.10:1478): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

    ** (gst-launch-0.10:1478): CRITICAL **: gst_v4l2sink_sync_rotation: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed

    ** (gst-launch-0.10:1478): CRITICAL **: gst_v4l2sink_sync_flip: assertion `v4l2_ioctl (fd, VIDIOC_S_CTRL, &control) >= 0' failed
    this input  params: 640x360,768 414720 1
    incoming buffer: nFilledLen: 506848, nOffset: 18464 nFlags: 40000
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstAudioSinkClock

    I am still in confusion what are the modules needs to be loaded when we have to run the video in the LCD using G-streamer.

    Thanks in advance.

    Regards,

    Salih

  • Hi Salih,

    Can you give a try on TI-EVM and check decode_display works fine on LCD?

    Can you again execute decode_display example for LCD and on other console get the logs using command

    /usr/share/ti/ti-uia/loggerSMDump.out 0x9E400000 0x00100000 all

    Your log doesn't have any info.

    If you have access to OVerlay package, please rebuild the firmwares with debug mode and then execute to get the logs.

  • Hi,

    How can I get the access for the Overlay package?. Currently I don't have any EVM board to test. Only my customized board only I am using to test this.

    Currently I loaded the v4l2 firmware and took the logs as per your commands. And I executed the decode_display example in the background. I have attached log file with this post.

    7144.logs_dump1.txt

    Please help me out to fix this issue.

    Thanks in advance.

    Regards,

    Salih

  • Hi,

    While loading the ti81xxvin.ko I am getting the below error:

    ti81xxvin ti81xxvin: Error registering v4l2 subdevice

    But still the module is loading, but I can't able to run the video using G-streamer in the LCD.

    Thanks in advance.

    Regards,

    Salih

  • Hi,

    Any updates on this above error to solve that issue.

    Thanks in advance.

    Regards,

    Salih

  • Hello,

    Please for the new issues open a new topic since is not clear what you are trying to execute.

    Please also answer these questions:

    What you are trying to execute OMX decode_display demo or gstreamer pipeline (these are two different usecases which are using two different frameworks)?

    Muhammad Salih said:
    And I executed the decode_display example in the background.

    What you mean, are you trying to execute the OMX decode_display demo and the gstreamer pipeline at the same time (simultaneously)?

    Which firmware you are loading in this use case?

    Are you using v4l2sink in the case when  you are using gstreamer pipeline?

    Are you trying with the default EZSDK or you have made some changes?

    Please I see  many topics regarding OMX decode_display, gstreamer, LCD display it is not clear what you are trying to use (gstreamer or OMX decode_display), what is done until now, what is running etc.

    Best Regards,

    Margarita

  • Hi,

    I am trying to run the G-streamer in order to play video in the LCD. But in GUI there is two demo videos available. I can able to play both video in the HDMI. If I switched to LCD, I couldn't run the same video in my LCD.

    My goal is to play video in the LCD using G-streamer with different pipelines. I don't know how to do the same. Please provide the complete procedure from HDMI to LCD for Video and the complete G-streamer pipelines which are supported with this processor.

    Thanks in advance.

    Regards,

    Salih

  • Hi,

    I have used both the firmware (load-hd-firmware.sh & load-hd-v4l2-firmware.sh). But the behaviour is same for both firmware. I have used the below G-streamer pipeline to run the video.

    gst-launch playbin2 uri=file:///home/root/sample.mp4 -v

    Thanks in advance.

    Regards,

    Salih

  • Hello,

    When you are using LCD display are you seeing the Martix GUI on the LCD?

    Muhammad Salih said:
    gst-launch playbin2 uri=file:///home/root/sample.mp4 -v

    This playbin2 is using v4l2sink so I assume that you want to use v4l2sink display component. In this usecase you should execute the load-hd-v4l2-firmware.sh to load the v4l2 firmware.

    I would recommend you to try with the filesrc not with playbin2 at the start with the h264 elementary stream:

    The pipeline in this case should be:

    gst-launch filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec    ! omx_scaler ! 'video/x-raw-yuv, width=(int)800, height=(int)480'  ! v4l2sink device=/dev/video1  show-preroll-frame=false sync=false min-queued-bufs=2

    This pipeline is working on my side it display_decode on the HDMI because I have v4l2sink with property device=/dev/video1.

    NOTICE:

    • V4L2 display nodes are /dev/video1, /dev/video2, /dev/video3
    • V4L2 capture nodes are /dev/video0, /dev/video4, /dev/video5 and /dev/video6.

    On /dev/video1 -- => video0 -- => vcompmux -- => hdmi_venc(display0)->on_chip_hdmi output in my case.

    Since you are using DM8168, I would recommend you to check http://processors.wiki.ti.com/index.php/TI81XX_PSP_VPSS_Video_Driver_User_Guide
     Miscellaneous Configurations chapter.

    When you are using playbin2 by default the /dev/video1 is opened, which is on_chip_hdmi output. 

    Best Regards,

    Margarita

     

     

     

  • Hi,

    I can able to see the Matrix-GUI in the LCD. How can I switch video from HDMI to LCD?.

    Regards,

    Salih

  • Hello,

    The pipeline in my previous post you should change the v4l2sink property device=/dev/videoXX number per where is mapped (/dev/video2?).

    Best Regards,

    Margarita