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.

ERROR: omx_videomixer

Hiiiii Everyone.....

Need Very Urgent Help.!!!

I am ran a simple pipeline in which it is just a mixing one videotestsrc using omx_videomixer but not getting the expected output instead getting something. Please some one help me here. I Need to have omx_videomixer should work on evm dm8168 platform.....so that later i can write my application on that.

Here is my pipeline..........

root@dm816x-evm:~# gst-launch -v omx_videomixer port-index=0 name=mix ! ffmpegco
lorspace ! omx_h264enc ! queue ! h264parse ! gstperf ! rtph264pay ! udpsink port
=5000 host=192.168.48.20 sync=true videotestsrc pattern=18 ! mix.

And i got something like this on my console

Here it is...

In base init!!                    
In class init!!
In instance init!!
queue_0 : 0x12bec0
queue_1 : 0x12bf08
queue_2 : 0x12bf20
queue_3 : 0x12bf38
Setting pipeline to PAUSED ...

notify_shm_drv_sendevent failed! status = 0xfffffff0
notify_send_event failed! status = 0xfffffff0Assertion at Line no: 695 in /home/ajay/ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/syslink_2
_20_02_20/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
gst-launch-0.10: OmxRpc.c:588: OmxRpc_Instance_init: Assertion `(OmxRpc_errorNone == retVal)' failed.
Aborted
root@dm816x-evm:~#


Please Help Me to resolve this issue.

Many Thanks in Advance.....

BR

ajay

  • Hello Ajay,

    What is the EZSDK and gstreamer version that you are using?

    What is the use case?

    Best Regards,
    Margarita

  • i am using evm_5_05_02_00 and gstreamer0.10.32
  • Hello,

    I am sorry I have edited the post, could you provide me information about the use case?



    Best Regards,
    Margarita
  • Actually I am doing mixing of videos using omx_videomixer which is so essential for me to write video conference application.
    Here i am intended to use omx plugings/elements in my code but got struggling at this point. Please help me here

    Thanks and BR
    Ajay
  • Hello,

    So your use case is video mixing encode and stream?

    Best Regards,
    Margarita
  • Yes ma'am, video mixing then encoding it and then streaming it to other end.

    Thanks and BR
    Ajay
  • Hello,

    I would recommend you then first to try to build the pipeline without the streaming part, replace it with fakesink.

    You shall keep in mind :

    1.regarding omx_videomixer element:
    -on the src output has YUY2 format so the next element (sink input) shall have the same( video/x-raw-yuv);
    -on the sink input of the omx_videomixer element has NV12 format but notice, it shall be video/x-raw-yuv-strided;

    2. regarding omx_h264enc element:
    - on the omx_h264enc's src output has video/x-h264, NV12;
    -on the sink has video/x-raw-yuv, NV12.

    Best Regards,
    Margarita
  • Hello, Thanks for the suggestions. and i tried this pipeline with fakesink and again getting same error that occured before.

    $ gst-launch -v omx_videomixer port-index=0 name=mix ! ffmpegcolorspace ! omx_h264enc ! queue ! h264parse ! gstperf ! rtph264pay ! fakesink videotestsrc pattern=18 ! mix.
    In base init!!
    In class init!!
    In instance init!!
    queue_0 : 0x12bec0
    queue_1 : 0x12bf08
    queue_2 : 0x12bf20
    queue_3 : 0x12bf38
    Setting pipeline to PAUSED ...
    notify_shm_drv_sendevent failed! status = 0xfffffff0
    notify_send_event failed! status = 0xfffffff0Assertion at Line no: 695 in /home/ajay/ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/syslink_2
    _20_02_20/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed
    gst-launch-0.10: OmxRpc.c:588: OmxRpc_Instance_init: Assertion `(OmxRpc_errorNone == retVal)' failed.
    Aborted

    Due to these errors, -v option is not working.

    One more is , i tried the same pipeline with gstreamer videomixer. it is working fine and got output status information and property notifications from -v option as below and i thought those are all will be same for even omx_videomixer. so is am i wrong?. Need your support to resolve this.

    Here is that.

    gst-launch -v videomixer port-index=0 name=mix ! ffmpegcolorspace ! omx_h264enc ! queue ! h264parse ! gstperf ! rtph264pay ! fakesink videotestsrc pattern=18 ! 'video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, pixel-aspect-ratio=(fraction)1/1' ! mix.

    and got properties of some elements as below.

    GstPipeline:pipeline0/GstVideoTestSrc:videotestsrc0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma
    -site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    Pipeline is PREROLLING ...
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-sit
    e=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-si
    te=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstVideoMixer:mix.GstVideoMixerPad:sink_0: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chrom
    a-site=(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstVideoMixer:mix.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site=(strin
    g)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)NV12, width=(int)320, height=(int)240, framer
    ate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstFFMpegCsp:ffmpegcsp0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)YUY2, color-matrix=(string)sdtv, chroma-site
    =(string)mpeg2, width=(int)320, height=(int)240, framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstOmxH264Enc:omxh264enc0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)NV12, width=(int)320, height=(int)240, fra
    merate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, pixel-aspect-ratio=(fraction)1/1
    /GstPipeline:pipeline0/GstOmxH264Enc:omxh264enc0.GstPad:src: caps = video/x-h264, width=(int)320, height=(int)240, framerate=(fraction)30/1, st
    ream-format=(string)byte-stream, alignment=(string)au

    Need your Kind Support.

    Thanks and BR
    Ajay
  • Hello,

    Could you verify this pipeline is working and let me know.

    gst-launch --gst-debug=3 --verbose omx_videomixer framerate=30 port-index=0 name=mix ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf ! omx_videosink  filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix.

    Ajay Kumar KR said:
    gst-launch -v videomixer port-index=0 name=mix ! ffmpegcolorspace ! omx_h264enc ! queue ! h264parse ! gstperf ! rtph264pay ! fakesink videotestsrc pattern=18 ! 'video/x-raw-yuv, format=(fourcc)YUY2, width=(int)320, height=(int)240, framerate=(fraction)30/1, color-matrix=(string)sdtv, chroma-site=(string)mpeg2, pixel-aspect-ratio=(fraction)1/1' !

    The videomixer element can accept on its sink video/x-raw-yuv!

    Check the gstomx_videomixer.c file for the sink and the src which the element requires.

    Best Regards,

    Margarita

  • Hello,

    The right way to use fakesink in this case was to remove all of this:

    queue ! h264parse ! gstperf ! rtph264pay !

    after the encoder.


    Best Regards,

    Margarita

  • Hello,

    This pipeline is working for me it mix two videos, encode the mixed stream and save it file:


    gst-launch --gst-debug=3 --verbose omx_videomixer framerate=3
    0 port-index=0 name=mix ! omx_noisefilter ! omx_h264enc ! filesink location= che
    ck.264 filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'vide
    o/x-h264' ! h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/v
    ideos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix.


    The pipeline to play it:

    gst-launch --gst-debug=3 --verbose filesrc location=check.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


    Best Regards,
    Margarita
  • Hello ma'am.

    I ran the above pipeline as you mentioned but getting the same message as before

    root@dm816x-evm:~# gst-launch --gst-debug=3 --verbose omx_videomixer framerate=3

    0 port-index=0 name=mix ! omx_noisefilter ! omx_h264enc ! filesink location=chec

    k.264 filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/

    x-h264' ! h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/vid

    eos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix. 2> debuginfo.txt

    In base init!!

    In class init!!

    In instance init!!

    queue_0 : 0x12c2c8

    queue_1 : 0x12c300

    queue_2 : 0x12c318

    queue_3 : 0x12c330

    Setting pipeline to PAUSED ..

    notify_shm_drv_sendevent failed! status = 0xfffffff0

    notify_send_event failed! status = 0xfffffff0Assertion at Line no: 695 in /home/ajay/ti-ezsdk_dm816x-evm_5_05_02_00/component-sources/syslink_2

    _20_02_20/packages/ti/syslink/ipc/hlos/usr/MessageQ.c: (queueId != MessageQ_INVALIDMESSAGEQ) : failed

    here is the file debuginfo.txt which i got after running the above pipeline.

    0:00:00.013022718  1817    0x16050 INFO                GST_INIT gstquery.c:108:_gst_query_initialize: init queries
    0:00:00.017870382  1817    0x16050 INFO                GST_INIT gstmessage.c:73:_gst_message_initialize: init messages
    0:00:00.019053643  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:350:_gst_plugin_initialize: registering 0 static plugins
    0:00:00.019906394  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:255:gst_plugin_register_static: registered static plugin "staticelements"
    0:00:00.020004466  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:257:gst_plugin_register_static: added static plugin "staticelements", result: 1
    0:00:00.021839595  1817    0x16050 INFO            GST_REGISTRY gstregistry.c:1599:ensure_current_registry: reading registry cache: /home/root/.gstreamer-0.10/registry.arm.bin
    0:00:00.108261401  1817    0x16050 INFO            GST_REGISTRY gstregistrybinary.c:614:gst_registry_binary_read_cache: loaded /home/root/.gstreamer-0.10/registry.arm.bin in 0.086249 seconds
    0:00:00.108621326  1817    0x16050 INFO            GST_REGISTRY gstregistry.c:1469:scan_and_update_registry: Validating plugins from registry cache: /home/root/.gstreamer-0.10/registry.arm.bin
    0:00:00.115021282  1817    0x16050 INFO            GST_REGISTRY gstregistry.c:1561:scan_and_update_registry: Registry cache has not changed
    0:00:00.115161356  1817    0x16050 INFO            GST_REGISTRY gstregistry.c:1628:ensure_current_registry: registry reading and updating done, result = 1
    0:00:00.115222171  1817    0x16050 INFO                GST_INIT gst.c:792:init_post: GLib runtime version: 2.24.1
    0:00:00.115278949  1817    0x16050 INFO                GST_INIT gst.c:794:init_post: GLib headers version: 2.24.1
    0:00:00.115496727  1817    0x16050 INFO            GST_PIPELINE gstparse.c:299:gst_parse_launch_full: parsing pipeline description 'omx_videomixer framerate=30 port-index=0 name=mix ! omx_noisefilter ! omx_h264enc ! filesink location=check.264 filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! video/x-h264 ! h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! video/x-h264 ! h264parse ! omx_h264dec ! mix. '
    0:00:00.147126475  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/lib/gstreamer-0.10/libgstomx.so" loaded
    0:00:00.147300068  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "omx_videomixer"
    0:00:00.149203771  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxVideoMixer@0x12d010> adding pad 'sink_00'
    0:00:00.149477586  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxVideoMixer@0x12d010> adding pad 'sink_01'
    0:00:00.149661438  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxVideoMixer@0x12d010> adding pad 'sink_02'
    0:00:00.149834512  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxVideoMixer@0x12d010> adding pad 'sink_03'
    0:00:00.149994290  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxVideoMixer@0x12d010> adding pad 'src'
    0:00:00.150346142  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "omx_noisefilter"
    0:00:00.151524920  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x131050> adding pad 'sink'
    0:00:00.151676068  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x131050> adding pad 'src'
    0:00:00.151986475  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "omx_h264enc"
    0:00:00.153291512  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x134018> adding pad 'sink'
    0:00:00.153402586  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x134018> adding pad 'src'
    0:00:00.156436364  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/lib/gstreamer-0.10/libgstcoreelements.so" loaded
    0:00:00.156603735  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "filesink"
    0:00:00.157569068  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseSink@0x13a118> adding pad 'sink'
    0:00:00.157910735  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "filesrc"
    0:00:00.158507772  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseSrc@0x13c070> adding pad 'src'
    0:00:00.160055586  1817    0x16050 INFO      GST_PLUGIN_LOADING gstplugin.c:859:gst_plugin_load_file: plugin "/usr/lib/gstreamer-0.10/libgsth264parse.so" loaded
    0:00:00.160183809  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "h264parse"
    0:00:00.160949068  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstH264Parse@0x13e600> adding pad 'sink'
    0:00:00.161216734  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstH264Parse@0x13e600> adding pad 'src'
    0:00:00.161488327  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "omx_h264dec"
    0:00:00.162517697  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x1440d0> adding pad 'sink'
    0:00:00.162623734  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x1440d0> adding pad 'src'
    0:00:00.162768068  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "filesrc"
    0:00:00.162960549  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseSrc@0x13c288> adding pad 'src'
    0:00:00.163209031  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "h264parse"
    0:00:00.163528179  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstH264Parse@0x1439f8> adding pad 'sink'
    0:00:00.163898883  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstH264Parse@0x1439f8> adding pad 'src'
    0:00:00.164093475  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "omx_h264dec"
    0:00:00.164419586  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x1441d0> adding pad 'sink'
    0:00:00.164501549  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstOmxBaseFilter@0x1441d0> adding pad 'src'
    0:00:00.164704920  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "pipeline"
    0:00:00.165340327  1817    0x16050 INFO           GST_PARENTAGE gstbin.c:3702:gst_bin_get_by_name: [pipeline0]: looking up child element mix
    0:00:00.165464735  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking omxh264dec1:(any) to mix:mix (0/0) with caps "(nil)"
    0:00:00.165564068  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element omxh264dec1:(any) to element mix:(any)
    0:00:00.165647179  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link omxh264dec1:src and mix:sink_03
    0:00:00.165757253  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: omxh264dec1 and mix in same bin, no need for ghost pads
    0:00:00.165917809  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link omxh264dec1:src and mix:sink_03
    0:00:00.166009438  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked omxh264dec1:src and mix:sink_03, successful
    0:00:00.166136549  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking mix:(any) to omxnoisefilter0:(any) (0/0) with caps "(nil)"
    0:00:00.166202327  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element mix:(any) to element omxnoisefilter0:(any)
    0:00:00.166267364  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link mix:src and omxnoisefilter0:sink
    0:00:00.166348734  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: mix and omxnoisefilter0 in same bin, no need for ghost pads
    0:00:00.166437957  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link mix:src and omxnoisefilter0:sink
    0:00:00.166510512  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked mix:src and omxnoisefilter0:sink, successful
    0:00:00.166613253  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking omxnoisefilter0:(any) to omxh264enc0:(any) (0/0) with caps "(nil)"
    0:00:00.166675401  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element omxnoisefilter0:(any) to element omxh264enc0:(any)
    0:00:00.166738994  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link omxnoisefilter0:src and omxh264enc0:sink
    0:00:00.166860364  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: omxnoisefilter0 and omxh264enc0 in same bin, no need for ghost pads
    0:00:00.166954883  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link omxnoisefilter0:src and omxh264enc0:sink
    0:00:00.167031512  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked omxnoisefilter0:src and omxh264enc0:sink, successful
    0:00:00.167138697  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking omxh264enc0:(any) to filesink0:(any) (0/0) with caps "(nil)"
    0:00:00.167200253  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element omxh264enc0:(any) to element filesink0:(any)
    0:00:00.167261660  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link omxh264enc0:src and filesink0:sink
    0:00:00.167343846  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: omxh264enc0 and filesink0 in same bin, no need for ghost pads
    0:00:00.167438586  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link omxh264enc0:src and filesink0:sink
    0:00:00.167509586  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked omxh264enc0:src and filesink0:sink, successful
    0:00:00.167616845  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking filesrc0:(any) to h264parse0:(any) (0/0) with caps "0x883c0"
    0:00:00.167689142  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "capsfilter"
    0:00:00.168264253  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x149158> adding pad 'sink'
    0:00:00.168459105  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x149158> adding pad 'src'
    0:00:00.168586845  1817    0x16050 INFO              GST_STATES gstbin.c:1759:gst_bin_get_state_func:<pipeline0> getting state
    0:00:00.168737623  1817    0x16050 INFO              GST_STATES gstelement.c:2341:gst_element_continue_state:<capsfilter0> completed state change to NULL
    0:00:00.168869438  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element filesrc0:(any) to element capsfilter0:sink
    0:00:00.168945697  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad capsfilter0:sink
    0:00:00.169005845  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: filesrc0 and capsfilter0 in same bin, no need for ghost pads
    0:00:00.169102031  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link filesrc0:src and capsfilter0:sink
    0:00:00.169203660  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked filesrc0:src and capsfilter0:sink, successful
    0:00:00.169396623  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element capsfilter0:src to element h264parse0:(any)
    0:00:00.169466327  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad capsfilter0:src
    0:00:00.169533068  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link capsfilter0:src and h264parse0:sink
    0:00:00.169667808  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: capsfilter0 and h264parse0 in same bin, no need for ghost pads
    0:00:00.169770512  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link capsfilter0:src and h264parse0:sink
    0:00:00.169870734  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked capsfilter0:src and h264parse0:sink, successful
    0:00:00.169984364  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking h264parse0:(any) to omxh264dec0:(any) (0/0) with caps "(nil)"
    0:00:00.170050882  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element h264parse0:(any) to element omxh264dec0:(any)
    0:00:00.170116142  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link h264parse0:src and omxh264dec0:sink
    0:00:00.170178290  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: h264parse0 and omxh264dec0 in same bin, no need for ghost pads
    0:00:00.170262401  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link h264parse0:src and omxh264dec0:sink
    0:00:00.170326290  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked h264parse0:src and omxh264dec0:sink, successful
    0:00:00.170429216  1817    0x16050 INFO           GST_PARENTAGE gstbin.c:3702:gst_bin_get_by_name: [pipeline0]: looking up child element mix
    0:00:00.170512512  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking omxh264dec0:(any) to mix:mix (0/0) with caps "(nil)"
    0:00:00.170572660  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element omxh264dec0:(any) to element mix:(any)
    0:00:00.170638327  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link omxh264dec0:src and mix:sink_02
    0:00:00.170720030  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: omxh264dec0 and mix in same bin, no need for ghost pads
    0:00:00.170806030  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link omxh264dec0:src and mix:sink_02
    0:00:00.170878993  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked omxh264dec0:src and mix:sink_02, successful
    0:00:00.170983105  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking filesrc1:(any) to h264parse1:(any) (0/0) with caps "0x884e0"
    0:00:00.171056808  1817    0x16050 INFO     GST_ELEMENT_FACTORY gstelementfactory.c:371:gst_element_factory_create: creating element "capsfilter"
    0:00:00.171307808  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x149328> adding pad 'sink'
    0:00:00.171485919  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:716:gst_element_add_pad:<GstBaseTransform@0x149328> adding pad 'src'
    0:00:00.171601882  1817    0x16050 INFO              GST_STATES gstbin.c:1759:gst_bin_get_state_func:<pipeline0> getting state
    0:00:00.171726141  1817    0x16050 INFO              GST_STATES gstelement.c:2341:gst_element_continue_state:<capsfilter1> completed state change to NULL
    0:00:00.171831586  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element filesrc1:(any) to element capsfilter1:sink
    0:00:00.171899364  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad capsfilter1:sink
    0:00:00.171957364  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: filesrc1 and capsfilter1 in same bin, no need for ghost pads
    0:00:00.172048512  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link filesrc1:src and capsfilter1:sink
    0:00:00.172129216  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked filesrc1:src and capsfilter1:sink, successful
    0:00:00.172235882  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element capsfilter1:src to element h264parse1:(any)
    0:00:00.172296660  1817    0x16050 INFO        GST_ELEMENT_PADS gstelement.c:963:gst_element_get_static_pad: found pad capsfilter1:src
    0:00:00.172360475  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link capsfilter1:src and h264parse1:sink
    0:00:00.172458364  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: capsfilter1 and h264parse1 in same bin, no need for ghost pads
    0:00:00.172545660  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link capsfilter1:src and h264parse1:sink
    0:00:00.172643438  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked capsfilter1:src and h264parse1:sink, successful
    0:00:00.172750734  1817    0x16050 INFO            GST_PIPELINE ./grammar.y:568:gst_parse_perform_link: linking h264parse1:(any) to omxh264dec1:(any) (0/0) with caps "(nil)"
    0:00:00.172814327  1817    0x16050 INFO        GST_ELEMENT_PADS gstutils.c:1568:gst_element_link_pads_full: trying to link element h264parse1:(any) to element omxh264dec1:(any)
    0:00:00.172876956  1817    0x16050 INFO                GST_PADS gstutils.c:1028:gst_pad_check_link: trying to link h264parse1:src and omxh264dec1:sink
    0:00:00.172939660  1817    0x16050 INFO                GST_PADS gstutils.c:1468:prepare_link_maybe_ghosting: h264parse1 and omxh264dec1 in same bin, no need for ghost pads
    0:00:00.173022956  1817    0x16050 INFO                GST_PADS gstpad.c:1941:gst_pad_link_prepare: trying to link h264parse1:src and omxh264dec1:sink
    0:00:00.173128623  1817    0x16050 INFO                GST_PADS gstpad.c:2124:gst_pad_link_full: linked h264parse1:src and omxh264dec1:sink, successful
    0:00:00.176039438  1817    0x16050 INFO              GST_STATES gstelement.c:2341:gst_element_continue_state:<filesink0> completed state change to READY
    0:00:00.176151623  1817    0x16050 INFO              GST_STATES gstelement.c:2354:gst_element_continue_state:<filesink0> posting state-changed NULL to READY
    0:00:00.176363475  1817    0x16050 INFO              GST_STATES gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'filesink0' changed state to 2(READY) successfully
    0:00:00.176471660  1817    0x16050 INFO                     omx gstomx_base_filter.c:150:change_state:<omxh264enc0> begin: changing state NULL -> READY
    0:00:01.242961252  1817    0x16050 INFO              GST_STATES gstelement.c:2341:gst_element_continue_state:<omxh264enc0> completed state change to READY
    0:00:01.243136104  1817    0x16050 INFO              GST_STATES gstelement.c:2354:gst_element_continue_state:<omxh264enc0> posting state-changed NULL to READY
    0:00:01.243271845  1817    0x16050 INFO              GST_STATES gstbin.c:2492:gst_bin_change_state_func:<pipeline0> child 'omxh264enc0' changed state to 2(READY) successfully
    0:00:01.243392289  1817    0x16050 INFO                     omx gstomx_base_filter.c:150:change_state:<omxnoisefilter0> begin: changing state NULL -> READY
    gst-launch-0.10: OmxRpc.c:588: OmxRpc_Instance_init: Assertion `(OmxRpc_errorNone == retVal)' failed.
    Aborted
    

    I really do not know the reason why it is not running fine on our board. Need Help from you ma'am.

    Thanks and BR

    Ajay

  • Hello,

    Is this the default EZSDK or you have made some changes?

    Best Regards,
    Margarita
  • Hi Ma'am Thanks for the support. Actually i am using default EZSDK only and now the pipeline for mixing two videos using omx_videomixer is working fine. But facing some unknown issues like
    1. After booting the platform if i run the pipeline you mentioned above then its working fine but when i run the same pipeline second time and so on, it is not changing its state to PLAYING state at all. and if i need to run that pipeline fine, again i have to reboot the platform. Please help me here. Here is the console output of this issue.

    root@dm816x-evm:~# gst-launch omx_videomixer port-index=0 name=mix ! omx_noisef
    ilter ! omx_h264enc ! h264parse ! fakesink filesrc location=1_dm816x_1080p_demo.
    264 ! 'video/x-h264,framerate=(fraction)50/1' ! h264parse access-unit=true ! omx
    _h264dec ! mix. filesrc location=2_dm816x_1080p_demo.264 ! 'video/x-h264,framera
    te=(fraction)50/1' ! h264parse access-unit=true ! omx_h264dec ! mix.
    request pad!!
    creating pad with name:sink_00
    pad class init!!
    Setting sink pad:0
    request pad done ret!!
    request pad!!
    creating pad with name:sink_01
    Setting sink pad:1
    request pad done ret!!
    Setting pipeline to PAUSED ...




    and one more is
    2. The omx_videomixer is working only for Two videos. It is not working for more than 2 videos. Please help to solve these issues.

    Many Thanks in Advance

    BR
    Ajay
  • Hello Ajay,

    Ajay Kumar KR said:
    1. After booting the platform if i run the pipeline you mentioned above then its working fine but when i run the same pipeline second time and so on, it is not changing its state to PLAYING state at all. and if i need to run that pipeline fine, again i have to reboot the platform. Please help me here. Here is the console output of this issue.

    I checked this issue I do not observe this problem.

    Here is the console log file.

    root@dm816x-evm:~# gst-launch   omx_videomixer framerate=30 port-index=0 name=mi
    x ! omx_noisefilter ! omx_h264enc ! gstperf  ! filesink location= check.264 file
    src location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' !
    h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x
    _1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix.         
    request pad!!
    creating pad with name:sink_00
    pad class init!!
    Setting sink pad:0
    request pad done ret!!
    request pad!!
    creating pad with name:sink_01
    Setting sink pad:1
    request pad done ret!!
    Setting pipeline to PAUSED ...
    Video mixer activate push!!
    Pipeline is PREROLLING ...
    In sink set 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
    ip width:1920, ip height: 1080, ip stride:2048
    Starting input thread...num sink pads:2
    ip zorder - starting from lowest: 0, 1
    In sink set 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
    ip width:1920, ip height: 1080, ip stride:2048
    created output caps:video/x-raw-yuv, width=(int)1920, height=(int)1080, format=(fourcc)YUY2, framerate=(fraction)30/1
    In src set caps:video/x-raw-yuv, width=(int)1920, height=(int)1080, format=(fourcc)YUY2, framerate=(fraction)30/1
    set src_setcaps  height:1080, width:1920
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    perf0: frames: 48     current: 46.84     average: 46.84    arm-load: 18
    perf0: frames: 92     current: 43.14     average: 44.99    arm-load: 55
    perf0: frames: 135     current: 42.71     average: 44.24    arm-load: 50
    perf0: frames: 178     current: 42.47     average: 43.80    arm-load: 49
    perf0: frames: 221     current: 42.36     average: 43.51    arm-load: 50
    perf0: frames: 263     current: 41.76     average: 43.22    arm-load: 52
    Caught interrupt -- handling interrupt.
    Interrupt: Stopping pipeline ...
    Execution ended after 6252921963 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Video mixer activate push!!
    paused to ready!!
    setting EOS to true
    Waiting for ip thread to exit..semup!!
    goto leave!!
    freeing un-processed buffer in queue - 0
    freeing un-processed buffer in queue - 1
    freeing un-processed buffer in queue - 1
    paused to ready...done!!
    Setting pipeline to NULL ...
    calling g_omx_core_deinit
    Freeing pipeline ...
    root@dm816x-evm:~# gst-launch   omx_videomixer framerate=30 port-index=0 name=mi
    x ! omx_noisefilter ! omx_h264enc ! gstperf  ! filesink location= check.264 file
    src location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' !
    h264parse ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x
    _1080p_demo.264 ! 'video/x-h264' ! h264parse ! omx_h264dec ! mix.
    request pad!!
    creating pad with name:sink_00
    pad class init!!
    Setting sink pad:0
    request pad done ret!!
    request pad!!
    creating pad with name:sink_01
    Setting sink pad:1
    request pad done ret!!
    Setting pipeline to PAUSED ...
    Video mixer activate push!!
    Pipeline is PREROLLING ...
    In sink set 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
    ip width:1920, ip height: 1080, ip stride:2048
    Starting input thread...num sink pads:2
    ip zorder - starting from lowest: 0, 1
    In sink set 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
    ip width:1920, ip height: 1080, ip stride:2048
    created output caps:video/x-raw-yuv, width=(int)1920, height=(int)1080, format=(fourcc)YUY2, framerate=(fraction)30/1
    In src set caps:video/x-raw-yuv, width=(int)1920, height=(int)1080, format=(fourcc)YUY2, framerate=(fraction)30/1
    set src_setcaps  height:1080, width:1920
    Pipeline is PREROLLED ...
    Setting pipeline to PLAYING ...
    New clock: GstSystemClock
    perf0: frames: 48     current: 47.13     average: 47.13    arm-load: 20
    perf0: frames: 91     current: 42.97     average: 45.07    arm-load: 47
    perf0: frames: 134     current: 42.44     average: 44.19    arm-load: 50
    perf0: frames: 177     current: 42.79     average: 43.Caught interrupt -- handling interrupt.
    Interrupt: Stopping pipeline ...
    Execution ended after 4247219518 ns.
    Setting pipeline to PAUSED ...
    Setting pipeline to READY ...
    Video mixer activate push!!
    paused to ready!!
    setting EOS to true
    Waiting for ip thread to exit..semup!!
    goto leave!!
    freeing un-processed buffer in queue - 0
    paused to ready...done!!
    Setting pipeline to NULL ...
    calling g_omx_core_deinit
    Freeing pipeline ...
    root@dm816x-evm:~#

    I stopped the pipeline with ctrl+c

    I am using EZSDK 5.05.02 without any modification.

    Could you provide the steps how I can reproduce the issue on my side?

    Ajay Kumar KR said:
    2. The omx_videomixer is working only for Two videos. It is not working for more than 2 videos. Please help to solve these issues.

    Here is example where omx_videomixer decode_display 3 videos.

    gst-launch --gst-debug=3 -v omx_videomixer framerate=30 port-index=0 name=mix  ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60  ! gstperf ! omx_videosink filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix. filesrc location=/usr/share/ti/data/videos/dm816x_1080p_demo.264 ! 'video/x-h264' ! h264parse access-unit=true ! omx_h264dec ! mix.

    Keep in mind that:

    The Dm8168 has 2xHDVICP modules. Each module is scalable in terms of resolutions and channels supported, so for example one HDVICP2 module at  could support 1x 1080p60 or 2x 1080p30 or 4x 720p30 or 10x SD h.264 encodes/decodes. The HDVPSS can support maximum pixel clock  for capture and display upto 165MHz.

    Best Regards,

    Margarita