Archive

Archive for the ‘Davinci’ Category

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 , , ,

Using Gstreamer with Leopard Board Camera

October 22nd, 2009

Maria and Cristina has been working hard this semester on the Leopard Board. They are interns from the Costa Rica Institute of Technology (and soon full time members of our team).

Maria has modified (hacked?) the Leopard camera driver for 2.6.29 to play nicely with the v4l2src. The original driver is actually a hack in the way it works (YUV sensor attached to the Bayesian interface), so we require a bit of creativity to make it respond properly to the v4l2 APIS.

Cristina has added support for the DM355s codecs to gstreamer on Diego’s branch, providing DM355 gstreamer support for AAC and MP3 encoding (finally!). We are on the final test stages for the audio decoding as well. WMA was on the plans, but the Ittiams codecs haven’t been very cooperative. Cristina also added the support for the audio codec for the Leopard to the kernel.

So, as a proof of concept they just recorded the following video. The video was recorded with:

gst-launch -e v4l2src num-buffers=100 always-copy=false ! dmaiaccel ! queue
! dmaienc_mpeg4 ! qtmux ! filesink location=/test.mp4

One more thing. The camera currently have a bug, so as you will notice is recording only at 10fps.

Updated: I forgot to mention a couple things: it uses the VGA camera (we don’t have support for the other sensors yet), and we also have a demo for RTSP streaming, blogging on that later tonight.

Download the video here.

If you have a browser with HTML5 support, you may see the video below:

Enjoy.

Davinci, Education, Gstreamer, LeopardBoard

Free SDK for Leopard (with gstreamer support)

July 28th, 2009
Comments Off

We are very happy to release our free SDK for DM355 Leopard board.

We have been busy trying to keep up with all the interest in gstreamer for TI SoCs. Finally we found time to create our first free SDK for Leopard board. This SDK features integration with TI’s DVSDK for DM355 and Gstreamer plugins with hardware acceleration. We will be over time publishing more example pipelines and code that shows how to get gstreamer working on it.

This SDK provides:

  • 2.6.18 Kernel based on TI LSP 2.0 plus some Leopard board changes.
  • Uboot 1.2.0 with RidgeRun improvements, featuring DFU support for flashing the board and usb serial console.
  • RidgeRun’ u-boot deployment system that automates deploying of the firmware to the board.
  • DVSDK 2.0 integration
  • Gstreamer support.
  • Toolchain based on gcc 4.x, ARM EABI

We also have two students working on improving the camera support and audio codec support for the Leopard. We will be publishing the code as it become available.

We hope this release will accelerate the development capabilities of the users of Leopard Board.

If you are building a project with DM355, RidgeRun also offers Developers SDKs for accelerate your time-to-market. Please contact us for more details.

Free SDK for Leopard is available in our download page.

Davinci, LeopardBoard , , , ,

Free SDK available for DM365

July 6th, 2009
Comments Off

If you are looking for HD video streaming, the DM365 is a great chip to use. We have a free SDK available for download. The SDK has u-boot 1.3.4 bootloader, Linux 2.6.18, and gcc 4.2.4. All the common drivers are included in the free SDK. Details listed at DM365 SDK.

Soon the SDK will be updated so you have your choice of kernels – Linux 2.6.18 or the latest and greatest from linux-davinci GIT repository. Watch the blog for details.

Davinci ,

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 , , ,

New Free and Developer’s SDK available for DM355

April 16th, 2009
Comments Off

We just released an updated FreeSDK for DM355 based on kernel 2.6.18 (LSP from TI). We have provided DM355 SDKs in the past based on RidgeRun’s home-baked kernel, but we are now sampling a stable kernel based on LSP with the purpose of supporting customers wishing to use DVSDK 2.0 and are interested in using Gstreamer for TI plugins.  This SDK also updates support for DMAI,  latest CE tools from TI and includes support for u-boot, DFU, and a splash screen in u-boot.

The FreeSDK provides integration for the DVSDK 2.0, which enables embedded developers evaluating Davinci technology to get in touch with the platform capabilities and evaluate RidgeRun’s supported platform that is designed to simplify development and manufacturing of your products.

RidgeRun provides as well engineer-to-engineer technical support and expertise on TI Davinci platform.

Davinci , , , ,