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.

DM816X and gstreamer

I am using the DM816X EVM from Spectrum Digital and the latest EZSDK released in December 2011

I am trying to use the gstreamer calls to setup pipelines for streaming H264 Video.

I came across a problem:

1. There seems to be a problem where you cannot run two different pipelines, one for encoding and one for decoding. Is there some sort of problem with gstreamer and OMX being or the DSP firmware being single threated? When I construct both pipelines, each one works OK when they run individually, but when they are ran simultaneously there are error messages that pop up related to message queues.

For example:

Encoding pipeline:

gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=320,height=240' ! ffmpegcolorspace ! omx_h264dec ! 'video/x-h264' ! rtph264pay ! udpsink host=xx.xx.xx.xx port=xxxx -v

Decoding pipeline:

gst-launch udpsrc port=xxxx ! application/x-rtp, clock-rate=90000, payload=96 ! rtph264depay ! h264parse access-unit=true ! omx_scaler ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! omx_videosink sync=false

Like I mentioned both of these pipelines work fine individually but whichever is started second it will report a whole slew of queue error messages to long to list...

Any ideas?

  • Current OMX implementation has a limitation which limits you to run simultaneous processes using OMX components. This will be fixed in future releases. One possible workaround for now is to run two pipelines from same gst-launch command.

    Thanks,

    Satish

  • why on my board,gstremer will report the following error:

    gst-launch v4l2src device=/dev/video0 ! 'video/x-raw-yuv,width=1280,height=720' ! omx_h264enc ! filesink location=sample.264

    ERROR: Pipeline doesn't want to pause.
    ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Device '/dev/video0' does not support video capture
    Additional debug info:
    gstv4l2object.c(2179): gst_v4l2_object_set_format (): /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
    Call to G_FMT failed: (Invalid argument)
    Setting pipeline to NULL ...
    Freeing pipeline ...
  • V4L2 capture driver works only with user pointer. One needs to allocate contiguous memory buffers and issue it to V4L2 capture driver. The V4L2 src element tries to use the V4L2 capture driver with memory mapped buffers and hence fails. We are working on a patch for V4L2 src element to make it work with user pointer and to allocate contiguous memory buffers. It will be available in next EZSDK release or you can get a update from gstreamer.ti.com.

    Thanks,

    Satish