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.

GStreamer Media Player problems

Hi, All:

I am building a QT media player based on GStreamer on DM8148 EVM platform. My EZSDK version is 5.03.01.15.

This QT media player PC version works fine on Ubuntu system. On DM8148 platform, it can do basic video playback, but has many problems.

In DM814x_EZ_Software_Developers_Guide.pdf, the GStreamer sample uses command line:

# gst-launch -v filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 \
! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! omx_scaler \
! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false

It only support H264 video, but I need the media player can auto detect media format and load proper plugins. So I am using playbin2 plugin.

If use gst-launch to simulate my media player,  the command likes:

# gst-launch playbin2 uri=file:///home/media/2.mp4 video_sink='videoscale!'video/x-raw-yuv,width=800,height=600'!autovideosink'     // I can not use omx_scaler plugin in this command line. I don't know why.

It can playback video properly. But the program hang when I do these operations:

1. Resize the output resolution.

    On the PC, I can change the parameters when the state is GST_STATE_NULL or GST_STATE_READY, but on the EVM board, I can not do it.

2. Adjust the progress.

    I am using gst_element_seek() function.

3. Stop.

    Now I can let it work after change the state sequentially: GST_STATE_PLAYING -> GST_STATE_PAUSE -> GST_STATE_READY -> GST_STATE_NULL. If I change the state from GST_STATE_PLAYING to any state except GST_STATE_PAUSE, the program hang.

When the program hang, no error message output. If I "kill" the program, the program can not be killed and the status change to "Z". In this case, if I start gst-lanuch command again, I got messages like these:

----------------------------------------------------------------

Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_prime: MessageQ_put failed: status = 0xfffffffe
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_prime: MessageQ_put failed: status = 0xfffffffe
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_prime: MessageQ_put failed: status = 0xfffffffe
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_prime: MessageQ_put failed: status = 0xfffffffe
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_prime: MessageQ_put failed: status = 0xfffffffe
Assertion at Line no: 1244 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
ServiceMgr_rxThreadFxn: bind() failed with errno = 98
Assertion at Line no: 766 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (handle != NULL) : failed
Caught SIGSEGV accessing address 0xe
Spinning. Please run 'gdb gst-launch 1281' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
Assertion at Line no: 700 in /swcoe/sdk/cm/netra/arago-tmp/work/dm814x-evm-none-linux-gnueabi/ti-syslink-2_00_05_85-r1i/syslink_2_00_05_85/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
ServiceMgr_stop: MessageQ_put failed: status = 0xfffffffe

----------------------------------------------------------------

Seems have problems on syslink side. I have no idea how to fix it.

 

Any suggestion is welcome. Thanks!

  • Hi,

    The assertion is indeed from Syslink layer:  a call to MessageQ_put() call passing a NULL messageQ handle.

    The source of the issue, however should lie somewhere above syslink on the s-w stack. It looks like "ServiceMgr_prime" is issuing the put calls.

    THere is not much more information here to work with, see if you can narrow it down with a stack trace, and isolate the issue more.

    Murat

     

  • Hi, 

    I spent many time on this problem but no more progress.

    I check out and compile the GStreamer latest version and the version used in EZSDK 5.03. But even worse, they can only play audio, video player does not work. 

    I ported gdb(no gdbserver) to the board, but when the program hang(I adjust the output resolution or playback progress), I can not get any error message. 

    Do you have any suggestion for how to debugging this? For this problem, which part source code I should take a look?

    Thanks!

  • Hi,

           I am trying to build Gstreamer on EZSDK 5.03, but i am facing some problems while build is happening inside "gstreamer_ti_dm81xx/ti_build/gst-openmax/ext". It is throwing the following error.

    Making install in ext
    make[4]: Entering directory `/home/pushpa/gstreamer_ti_dm81xx/ti_build/gst-openmax/ext'
      CCLD   lib/libOMX_Core.so
    /bin/sh: line 6: /home/pushpa/ti-ezsdk_dm814x-evm_5_03_01_15/component-sources/omx_05_02_00_30/lib/omxobjs/obj/ti814x-evm/a8host/debug/omxcore_cfg.ov5T: cannot execute binary file
    /bin/sh: line 8: /home/pushpa/ti-ezsdk_dm814x-evm_5_03_01_15/component-sources/omx_05_02_00_30/lib/omxobjs/obj/ti814x-evm/a8host/debug/domx_cfg.ov5T: cannot execute binary file
    /bin/sh: line 11: /home/pushpa/ti-ezsdk_dm814x-evm_5_03_01_15/component-sources/omx_05_02_00_30/lib/omxobjs/obj/ti814x-evm/a8host/debug/memtbl_cfg.ov5T: cannot execute binary file
    /bin/sh: line 19: /home/pushpa/ti-ezsdk_dm814x-evm_5_03_01_15/component-sources/omx_05_02_00_30/lib/omxobjs/obj/ti814x-evm/a8host/debug/domxProxyWrappers.ov5T: cannot execute binary file
    /bin/sh: line 24: /home/pushpa/ti-ezsdk_dm814x-evm_5_03_01_15/component-sources/omx_05_02_00_30/lib/omxobjs/obj/ti814x-evm/a8host/debug/domx_delegates_shmem_cfg.ov5T: cannot execute binary file
    make[4]: *** [all] Error 126
    make[4]: Leaving directory `/home/pushpa/gstreamer_ti_dm81xx/ti_build/gst-openmax/ext'
    make[3]: *** [install-recursive] Error 1

    Thanks,

    Pushpa

  • Hello Cheng,

     

    I am facing same problem with gstreamer and EZSDK 5.03. I am not able to change the state of playback(Pause to play or NULL to play) or adjust the output position or resolution.

    Please help me in solving the above problem.

    Thanks and Regards,
    Sandeep Gholap

  • Hi, Gholap:

    Actually, I have no progress on this problem. Fortunately, our project move to TI RDK. It is a Ubuntu based system for EVM 814x platform. The GStreamer works fine on it. But to get RDK, you need contact TI support and sign NDA. 

    Please read this post: http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/716/t/197022.aspx. I think it hard to get TI support on 814x platform in the future.

    Regards