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.

Ridgerun gstreamer 0.10 and 1.0 plugins for DM81xx platforms

Hi all,

   Ridgerun is giving support to gstreamer in DM81xx using their own repos. In order to keep all updated with the plan, I think that is better to provide a description of the different versions available and the roadmap. Please notice that our idea is to share all the improvements to gstreamer 0.10 and gstreamer 1.0, if you create an improvement please feel free to let us know so we can include it in the repository and share it with the other developers.


1.  For DM81xx boards we keep a branch with the  TI based gst-openMax plugins + all our improvements (based on gstreamer 0.10), and that code is part of the Ridgerun evaluation SDK and is downloaded from:

https://github.com/RidgeRun/gst-openmax-dm81xx

2. Now, since we were seeing problems changing the states and the approach creating/destroying instances of the plugins makes fail the system (http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/717/t/321566.aspx) we started a new set of gst-openMax plugins (based on gstreamer 0.10) which can change states without problems (NULL, PLAYING, etc), we are in the developing process so just omx_scaler and omx_mpeg2dec are currently working, we are developing at this moment omx_hdeiscaler and omx_h264dec for a customer, they are here:

https://github.com/RidgeRun/gst-rr-openmax-dm81xx

3.  Now, talking about gstreamer 1.0, In order to get the latest changes done by the gst-openMax community for PCs we created a fork from their project (https://github.com/RidgeRun/gst-omx) and created gst-omx plugins for DM81xx boards using their base classes in a branch:

https://github.com/RidgeRun/gst-omx/tree/ti-dm81xx

Currently we have all the libraries integrated in the SDK too (ugly, bad, good libraries) but there is not an eval SDK with these libraries yet. If you need it now please contact us or try integrating the 1.0 libraries.

Currently the plugins supported are: omxscaler, omxjpegenc, omxh264enc and omxcamera.

We will create wiki pages describing the idea and giving example pipelines. I will paste the links here as well. 

Our plan is to maintain 2) and 3) and stop using 1) as soon as we complete all the plugins.

Regards, 

-David

  • Hi,

    I'm trying to compile the gst-rr-openmax-dm81xx repo but it seems the gstreamer 0.10.36 is expected but the ti-ezsdk_dm814x-evm_5_05_02_00 has the 0.10.32... I've tried to patch this modifying the configure, then the makefile are generated but trying to compile it I get errors from :

    libtool: compile:  arm-none-linux-gnueabi-gcc -DHAVE_CONFIG_H -I. -I.. -pthread -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/linux-devkit/arm-none-linux-gnueabi/usr/include/gstreamer-0.10 -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/linux-devkit/arm-none-linux-gnueabi/usr/include/glib-2.0 -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/linux-devkit/arm-none-linux-gnueabi/usr/lib/glib-2.0/include -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/linux-devkit/arm-none-linux-gnueabi/usr/include/libxml2 -Wall -Dxdc_target_name__=GCArmv5T -Dxdc_target_types__=gnu/targets/arm/std.h -Dxdc__RESTRICT__ -D_LOCAL_CORE_a8host_ -DGlobal_appTerminate=0 -DGlobal_GrpxDssMsgHeapId=6 -DGlobal_TilerHeapId=7 -D_VIDEO_M3_DYNAMIC_CONFIG -DCODEC_H264ENC -DCODEC_H264DEC -DCODEC_MPEG4DEC -DCODEC_MPEG4ENC -DCODEC_MPEG2DEC -DCODEC_VC1DEC -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/omx_05_02_00_48/include -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/omx_05_02_00_48/src/ti/omx/interfaces/openMaxv11 -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/board-support/linux-2.6.37-psp04.04.00.01/include -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/board-support/linux-2.6.37-psp04.04.00.01/arch/arm/include -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/xdctools_3_23_03_53/packages -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/codec_engine_3_22_01_06/packages -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/xdais_7_22_00_03/packages -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/framework_components_3_22_01_07/packages -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/syslink_2_20_02_20/packages -I/media/develop/dm8148unidesa/ti-ezsdk_dm814x-evm_5_05_02_00/component-sources/ipc_1_24_03_32/packages -g -O2 -Wall -MT libgstrromx_la-gstomx.lo -MD -MP -MF .deps/libgstrromx_la-gstomx.Tpo -c gstomx.c  -fPIC -DPIC -o .libs/libgstrromx_la-gstomx.o
    In file included from gstomxpad.h:25,
                     from gstomxmpeg2dec.h:26,
                     from gstomx.c:32:
    gstomxbuftab.h:38: error: field 'tabmutex' has incomplete type
    gstomxbuftab.h:39: error: field 'tabcond' has incomplete type
    In file included from gstomxmpeg2dec.h:27,
                     from gstomx.c:32:
    gstomxbase.h:67: error: field 'waitmutex' has incomplete type
    gstomxbase.h:68: error: field 'waitcond' has incomplete type
    gstomx.c: In function 'omx_init':
    gstomx.c:49: warning: implicit declaration of function 'g_mutex_init'
    make[2]: *** [libgstrromx_la-gstomx.lo] Error 1
    make[2]: Leaving directory `/media/develop/dm8148unidesa/external/gstreamer/ridgerun/gst-rr-openmax-dm81xx/ext'
    make[1]: *** [all-recursive] Error 1
    make[1]: Leaving directory `/media/develop/dm8148unidesa/external/gstreamer/ridgerun/gst-rr-openmax-dm81xx'
    make: *** [all] Error 2

    it seems it need a specific glib2.0 version in order to get the mutex and cond well defined...

    Do you have been able to compile the components under the ti-ezsdk_dm814x-evm_5_05_02_00 SDK?

    Regards

  • Hi Anonymous Developer,

       Yes, Ridgerun is aware of how important is to use the latest version of the libraries like gstreamer in order to get the latest bug fixes, so the new plugins were created based on the latest 0.10 gstreamer libraries available. Also we are creating a version based on 1.0 too.

        Now, we didn't tested directly with the EZSDK if you want to integrate the plugins with the EZSDK likely you will need to update some packages as glib and solve build issues. However, another option is to use or use as reference our evaluation Ridgerun SDK which has already all those libraries and uses EZSDK 5.05.02.00:

    http://ridgerun.com/www/index.php/download-center.html

    https://developer.ridgerun.com/wiki/index.php/Getting_Started_Guide_for_DM8148_EVM
    https://developer.ridgerun.com/wiki/index.php/Getting_Started_Guide_for_DM8168_EVM

    Now, it uses option 1) in the above description of plugins, we will update the eval to include the new ones. Meanwhile you can download the evaluation SDK and add the two directories attached as tarballs in $DEVDIR/proprietary/ so it will download the new code and build it for you.

    5432.gst-openmax-dm81xx.tar.gz

    8666.gst-rr-openmax-dm81xx.tar.gz

    -David

  • Hi David!

    David Soto said:

        Now, we didn't tested directly with the EZSDK if you want to integrate the plugins with the EZSDK likely you will need to update some packages as glib and solve build issues. However, another option is to use or use as reference our evaluation Ridgerun SDK which has already all those libraries and uses EZSDK 5.05.02.00:


    What GLib version is needed in order to compile gst-rr-openmax-dm81xx ?

    Regards

  • Hi, 

    The SDK is using glib 2.35.7, you can find the list here:

    https://github.com/RidgeRun/eval-sdk-dm816x/tree/master/fs/apps

    -David

  • Hi David,

    I'm building your SDK with the https://github.com/RidgeRun/eval-sdk-dm814x.git project

    but it fails looking for

    Failure downloading package libOMX-dm81xx-5_03_01_15.tar.bz2 (curl error: 60) from https://www.ridgerun.com/packages/libOMX-dm81xx-5_03_01_15.tar.bz2

    Unable to download package libOMX-dm81xx-5_03_01_15.tar.bz2.
    Please contact RidgeRun for support.


    I've not found this library in your site.

    Regards

  • Ok, I've found a solution opening the git to clone the repo instead of using the tar.bz2

    Regards

  • Hi,

    We fixed several issues over the last couple of months and also added new elements, currently we have support for 
    Mpeg2 OMX Decoder
    H.264 OMX Decoder
    H.264 OMX Encoder

    OMX Scaler
    OMX capture component (omx_camera)
    OMX Hdeiscaler and Mdeiscaler
    v4l2sink 

    Thanks, 
    JJ


    RidgeRun - https://www.ridgerun.com/www/index.php/contact-us.html

  • Hi, 

           We already have gstreamer 1.6 running on the DM816x, currently it is possible to capture using v4l2, encode H264, decode H264 and scale. We will be working on the deiscalers and videosink elements. If someone needs this the project is on github,

    -David

  • Hello David,

    Thank you for this information.

    BR
    Margarita
  • Hi David ,

    Can you let me know if the Ridgerun SDK has :-
    1) Support for S-video input and S-video output
    2) Does the Ridgerun SDK has Gstreamer 1.0 support.

    ( I am having an Spectrum Digital EVM . )