Archive

Posts Tagged ‘LeopardBoard’

RidgeRun SDK for Leopard DM365 (BETA) is out.

March 18th, 2010
Comments Off

We have made available our SDK for the LeopardBoard DM365.

This is a beta release since the quality of the drivers and functionality is still subject to much improvement. However we wanted community users to have something to get started as soon as possible.

In our developer site, you will find the documentation with the current know issues, and the work plan for fixing them.

Enjoy.

Gstreamer, LeopardBoard ,

Leopard DM365 is out

February 25th, 2010
Comments Off

In case you miss the news, the Leopard DM365 board is now available.

We will be rolling an SDK for it pretty soon (less than two weeks).

Davinci, Gstreamer, LeopardBoard , , ,

Updated Leopard Evaluation SDK with Camera support!

November 12th, 2009

We have (finally!) released and updated Evaluation SDK for Leopard Board. The highlights are:

  • Kernel 2.6.29 based:
    • We have added the camera patches (VGA) so the camera works with v4l2 APIS (in particular it works with gstreamer, thanks Maria!).
    • Audio patches so input and output are working with alsa (thanks Cristina!).
  • DVSDK integration with the git kernel (thanks Maria!)
  • GStreamer integration: support for encoding/decoding mpeg4 and if you download the DM355s codec combo you can enable AAC/MP3 encoding decoding (thanks Cristina!).
  • We have tested the gstreamer elements are capable of RTSP streaming.

Known issues (we will be fixing them soon):

  • No support for NAND flashing from uboot. Recommended boot modes are NFS and SD card.
  • Network interface doesn’t set a default MAC address, so an uboot network operation is required before booting.
  • Network interface issues may cause the board to lost connection over NFS.
  • Garbage on the screen during CPU overload (flickering).
  • No support for FB interface from the TIDmaiVideoSink

Even the known issues list is long we think we should have them fix soon, and want to share the new features ASAP.

Special thanks for this efforts to María Rodriguez and Cristina Murillo, our two interns from ITCR and now full time engineers, and to Miguel Aguilar, our engineer supervising their work.

Download from here.

Enjoy.

Gstreamer, LeopardBoard , ,

AAC/MP3 Codecs support for DM355 with GStreamer

November 3rd, 2009
Comments Off

Cristina has finished her graduation project with the Leopard board, and now we have (almost) completely AAC-LC and MP3 encode/decode support with the gstreamer plugin.

We have tested the encoders to properly generated standalone AAC or MP3 files, as well as muxplex them into a mp4/quicktime container format. The only remaining issue is related to the the encoders being unable to be used at the same time as the alsa capture driver (Cristina already ask Ittiam about the problem, but we haven’t got any feedback yet). In any case the issue is reproducible with Ittiam’s command line demo apps, so we don’t think is a gst issue.

As usual the beauty of a gstreamer solution is on the simplicity of the examples:

Encoding AAC audio into a quicktime container (two steps due the encoder bug):

gst-launch alsasrc ! audio/x-raw-int, width=16, depth=16,  endianness=1234,
channels=2, rate=44100, signed=true ! filesink location=/audio.pcm
 gst-launch -e filesrc location=/audio.pcm ! audio/x-raw-int, width=16,
depth=16,  endianness=1234, channels=2, rate=44100, signed=true !
dmaienc_aac ! qtmux ! filesink location=/audio.m4a

Decoding the AAC audio from quicktime container:

gst-launch filesrc location=/audio.mp4 ! qtdemux ! dmaidec_aac ! alsasink

Encoding AAC audio elementary stream:

gst-launch filesrc location=/audio.pcm ! audio/x-raw-int, width=16,
depth=16,  endianness=1234, channels=2, rate=44100, signed=true !
dmaienc_aac outputformat=2  ! filesink location=/audio.aac

Decoding AAC elementary stream:

gst-launch filesrc location=/audio.aac ! aacparse ! dmaidec_aac ! alsasink

Encoding MP3 elementary stream:

gst-launch -e filesrc location=/audio.pcm ! audio/x-raw-int, width=16,
depth=16,  endianness=1234, channels=2, rate=44100, signed=true !
dmaienc_mp3 ! filesink location=/audio.mp3

Decoding MP3 audio:

gst-launch filesrc location=/audio.mp3 ! mp3parse ! dmaidec_mp3 ! alsasink

The support for these features is available on DDOMPE’s branch, and will likely be available on the 2.0 release of the gst-ti-dmai plugin.

Enjoy.

Davinci, Gstreamer, LeopardBoard , ,

Using GStreamer with Darwin Streaming Server as RTSP server

October 27th, 2009

A frequent customer request is “how do I stream the video over the network?”.

There are some solutions out there that aren’t FOSS and if you try to extend the demo to do what you really need to do… you start running on issues. That’s the reason we push GStreamer based solutions, where the design allow simple and fast design and prototype of streaming media solutions.

We have been looking for some time to provide a FOSS solution for an RTSP server, and when we found the gst-rstsp-server, we were really happy. Kapil expended some time extending it to work for a customer scenario, but unfortunately we run into some out-of-memory situations quickly due to some design decisions on the code that assume more memory that what is typically available in embedded devices.

Then Diego stumble upon an article from some MIT folks where they used the Darwin Streaming Server (DSS) as RTSP server. This GStreamer+DSS approach have some advantages:

  • The DSS core is only C++ code with no external dependencies.
  • The DSS code base is used on production systems for media streaming.
  • We take advantage of GStreamer on where it really shines and let DSS handling the RTSP part only. Glue-less integration is possible between DSS and GStreamer.

But we also have disadvantages:

  • It’s limited to the sdp file approach. For more complex streaming scenarios it may fall short.
  • It may be that DSS is over killer.

As the article points out, they used DSS running on a PC machine, not on the Nokia device. We need to run DSS from the board, so we just rolled up our sleeves and got to work. After a couple of hours and some help from community patches to build DSS on Linux machine we finally got DSS cross compiling using RidgeRun’s SDK and running the streaming core reliable on any of our boards.

We were successful streamed video from a Leopard VGA camera using the following pipeline (using DDOMPE branch):

gst-launch v4l2src always-copy=false ! dmaiaccel ! queue ! dmaienc_mpeg4 !
rtpmp4vpay ! udpsink port=5434 -v

We require the -v option so we can get the codec_data information generated by the encoder and passed on the caps of the sink pad of the dmaienc_mpeg4 element. This information needs to be put in the sdp file as detailed below.

And the following sdp file on /streaming/movies/leopardlivecamera.sdp:

v=0
o=- 132 362358265 IN IP4 127.0.0.0
s=QuickTime
t=0 0
a=range:npt=now-
a=control:rtsp://127.0.0.1/stream.sdp
m=video 5434 RTP/AVP 96
c=IN IP4 127.0.0.1
b=AS:6000
a=rtpmap:96 MP4V-ES/90000
a=fmtp:96 profile-level-id=5;config=000001010000012000845d4c28a021e0a21f
a=mpeg4-esid:201
a=cliprect:0,0,640,480
a=framesize:96 480-640

I’m not a dsp syntax expert, so I generated the sdp file with the help of the QuickTime Broadcaster and then just adjusted the parameters to the resolution of the camera, the config string with the information from the codec_data (obtained from the pipeline), and the IP addresses to pickup the stream from the localhost.

With this setup, we are able to stream from the camera into a local port and then having the DSS running on the same board serving the RTSP clients. To connect all you need is:

vlc rtsp://10.251.101.140/leopardlivecamera.sdp

Where the 10.251.101.140 IP is obviously the address of the board we are running from.

The only issues we notice so far seem related to latency of the video, but probably some tweaking of the parameters will solve the issue.

The CPU consumption of DSS is good, and the memory consumed is low, so we got a good start.

Enjoy!

Davinci, Gstreamer, LeopardBoard , , ,

LeopardBoard

May 10th, 2009
Comments Off

LeopardBoard start selling two weeks ago. In case you have missed the news the leopard is another open source project akin the beagleboard based on TI’s DM355 processors plus some imaging devices from Leopard Imaging.

This is a nice platform to use as reference design for DM355 and since RidgeRun has been a early supporting of DM355, we are getting involved on the project on several ways:

  • Our engineers will be contributing to the project, which will be supported in OpenEmbedded.
  • Besides OpenEmbedded we will be shortly be offering our Developer’s SDK for DM355 for the LeopardBoard. This is target for companies that want to use a supported SDK for their DM355 product development cycle. This SDK leverages integration of Gstreamer plugins for DM355 and other technologies that has been proven for bring to market DM355 products like DFU support, u-boot deployment tools, fast booting, prelinking support, manufacturing deployment tools, etc.
  • RidgeRun will have two student interns who will develop custom reference designs based on Leopard based on gstreamer.
  • RidgeRun will be improving support in gstreamer plugins for DM355S audio codec bundles.

Davinci, LeopardBoard , , ,