New beagleboard demo image, now with 100% more DSP

Hi,

There's a new demo image + kernel available from http://angstrom-distribution.org/demo/beagleboard/

It now includes *all* the things needed to get gstreamer to use the DSP for decoding audio and video using the infrastructure from gstreamer.ti.com.

As you can see in http://www.youtube.com/watch?v=pcdaosTiWPI there is a TI watermark in the video, this is because only evaluation codecs can be distributed, but nothing is stopping you from using the production codecs from the dvsdk.

regards,

Koen

Way cool demo image... ...and I haven't even got to Gstreamer.

I showed this to a coworker and he said "It's just like a tiny Linux box!"

...yes, it is.

Beautiful package Koen.

Thanks,
- dan

Nice work Koen!

Nice work Koen!

Indeed - Nice work - I unfortunately can't make the gstreamer DSP link
working => It's hard to see the great improvement - I hope somebody can help
me forward :slight_smile:

I'm unfortunately still pretty new to gstreamer and Linux multimedia in
general...

In order for anybody to tell me what I'm doing wrong, I will therefore here
try to sketch what I did:

1) Download the binaries from:
http://angstrom-distribution.org/demo/beagleboard/
2) Copy u-boot, MLO and uImage to the MMC FAT partition
3) Extract the file system image to the EXT partition
4) Boot into uboot and set environment using the serial connection like:

a) setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2
rw rootfstype=ext3 rootwait omapfb.video_mode=640x480MR-16@60 mem=104M'
b) setenv bootcmd 'mmcinit; fatload mmc 0 0x80300000 uImage; bootm
0x80300000'
c) saveenv

5) Restart board and connect HUB with mouse and keyboard
6) Boot into the X-environment - Shows nicely over DVI
7) Start a terminal and enter the following:

a) su
b) modprobe cmemk phys_start=0x88000000 phys_end=0x89000000
pools=20x4096,8x131072,5x1048576,1x1429440,1x256000,1x5250000,3x829440
c) modprobe dsplinkk
d) modprobe lpm_omap3530
e) cd /usr/share/ti-codec-combos

8) Try to playback the BigBuckBunny.m4v file like:

a) gst-launch filesrc location=/data/movies/BigBuckBunny_640x360.m4v !
qtdemux name=demux demux.video_00 ! TIViddec2 ! xvimagesink

=>

The gstreamer complains about:
"Failed to load plugin ... libstrsubparse.so"

and stops with the comment
"Pipeline is PREROLLING ..."

I can stop(kill gstreamer by pressing CTRL+C and I get the same result even
though I run it several times. Anybody having any idea, what I'm doing
wrong? Or anybody having any ideas of what to try? Or what worked for them?
Any kind of link will be highly appreciated :slight_smile:

Best regards and thanks in advance
  Søren

PS: I'm running on a B5 board, but I don't think that's important...

Op 29 mrt 2009, om 16:56 heeft Søren Steen Christensen het volgende geschreven:

Nice work Koen!

Indeed - Nice work - I unfortunately can't make the gstreamer DSP link
working => It's hard to see the great improvement - I hope somebody can help
me forward :slight_smile:

I'm unfortunately still pretty new to gstreamer and Linux multimedia in
general...

In order for anybody to tell me what I'm doing wrong, I will therefore here
try to sketch what I did:

1) Download the binaries from:
http://angstrom-distribution.org/demo/beagleboard/
2) Copy u-boot, MLO and uImage to the MMC FAT partition
3) Extract the file system image to the EXT partition
4) Boot into uboot and set environment using the serial connection like:

a) setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2
rw rootfstype=ext3 rootwait omapfb.video_mode=640x480MR-16@60 mem=104M'
b) setenv bootcmd 'mmcinit; fatload mmc 0 0x80300000 uImage; bootm
0x80300000'
c) saveenv

5) Restart board and connect HUB with mouse and keyboard
6) Boot into the X-environment - Shows nicely over DVI
7) Start a terminal and enter the following:

a) su
b) modprobe cmemk phys_start=0x88000000 phys_end=0x89000000
pools=20x4096,8x131072,5x1048576,1x1429440,1x256000,1x5250000,3x829440
c) modprobe dsplinkk
d) modprobe lpm_omap3530
e) cd /usr/share/ti-codec-combos

8) Try to playback the BigBuckBunny.m4v file like:

a) gst-launch filesrc location=/data/movies/BigBuckBunny_640x360.m4v !
qtdemux name=demux demux.video_00 ! TIViddec2 ! xvimagesink

=>

The gstreamer complains about:
"Failed to load plugin ... libstrsubparse.so"

and stops with the comment
"Pipeline is PREROLLING ..."

I can stop(kill gstreamer by pressing CTRL+C and I get the same result even
though I run it several times. Anybody having any idea, what I'm doing
wrong? Or anybody having any ideas of what to try? Or what worked for them?
Any kind of link will be highly appreciated :slight_smile:

Could you try:

env | grep DISPLAY

to see if the DISPLAY var is set? It should be :0 (that's not a smiley, but a colon and a zero)

regards,

Koen

Nice work Koen!

Indeed - Nice work - I unfortunately can’t make the gstreamer DSP link
working => It’s hard to see the great improvement - I hope somebody
can help
me forward :slight_smile:

I’m unfortunately still pretty new to gstreamer and Linux multimedia
in
general…

In order for anybody to tell me what I’m doing wrong, I will
therefore here
try to sketch what I did:

  1. Download the binaries from:
    http://angstrom-distribution.org/demo/beagleboard/
  2. Copy u-boot, MLO and uImage to the MMC FAT partition
  3. Extract the file system image to the EXT partition
  4. Boot into uboot and set environment using the serial connection
    like:

a) setenv bootargs ‘console=ttyS2,115200n8 console=tty0 root=/dev/
mmcblk0p2
rw rootfstype=ext3 rootwait omapfb.video_mode=640x480MR-16@60
mem=104M’
b) setenv bootcmd ‘mmcinit; fatload mmc 0 0x80300000 uImage; bootm
0x80300000’
c) saveenv

  1. Restart board and connect HUB with mouse and keyboard
  2. Boot into the X-environment - Shows nicely over DVI
  3. Start a terminal and enter the following:

a) su
b) modprobe cmemk phys_start=0x88000000 phys_end=0x89000000
pools=20x4096,8x131072,5x1048576,1x1429440,1x256000,1x5250000,3x829440
c) modprobe dsplinkk
d) modprobe lpm_omap3530
e) cd /usr/share/ti-codec-combos

  1. Try to playback the BigBuckBunny.m4v file like:

a) gst-launch filesrc location=/data/movies/BigBuckBunny_640x360.m4v !
qtdemux name=demux demux.video_00 ! TIViddec2 ! xvimagesink

=>

The gstreamer complains about:
“Failed to load plugin … libstrsubparse.so”

and stops with the comment
“Pipeline is PREROLLING …”

I can stop(kill gstreamer by pressing CTRL+C and I get the same
result even
though I run it several times. Anybody having any idea, what I’m doing
wrong? Or anybody having any ideas of what to try? Or what worked
for them?
Any kind of link will be highly appreciated :slight_smile:

Could you try:

env | grep DISPLAY

to see if the DISPLAY var is set? It should be :0 (that’s not a
smiley, but a colon and a zero)

Forgot to mention in my previous post:

Step 7f) export DISPLAY=:0

  • Display variable was/is therefore set

/ Søren

Forgot to mention in my previous post:

Step 7f) export DISPLAY=:0

  • Display variable was/is therefore set

/ Søren

I just gave it another try, with nearly identical result, although new a little different:

  1. Boot the system as described in previous post

  2. gst-launch -v videotestsrc ! xvimagesink

Output: “X Error of failed request: BadAtom (invalid Atom parameter)”

  1. gst-launch -v videotestsrc ! xvimagesink

Output: This time the color bar test image is output on the DVI display as expected

  1. gst-launch filesrc location=/test/BigBuckBunny_640x360.m4v ! qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink

Output:

(gst-launch-0.10:1756): GStreamer-WARNING **: Failed to load plugin ‘/usr/lib/gstreamer-0.10/libgstsubparse.so’: /usr/lib/gstreamer-0.10/libgstsubparse.so: undefined symbol: parse_sami

Setting pipeline to PAUSED …

Pipeline is PREROLLING …

Unhandled fault: external abort on non-linefetch (0x1818) at 0x43274000

Bus error

  1. gst-launch filesrc location=/test/BigBuckBunny_640x360.m4v ! qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink

Output:

(gst-launch-0.10:1767): GStreamer-WARNING **: Failed to load plugin ‘/usr/lib/gstreamer-0.10/libgstsubparse.so’: /usr/lib/gstreamer-0.10/libgstsubparse.so: undefined symbol: parse_sami

Setting pipeline to PAUSED …

Pipeline is PREROLLING …

Pipeline is PREROLLED …

Setting pipeline to PLAYING …

New clock: GstSystemClock

Got EOS from element “pipeline0”.

Execution ended after 53253178 ns.

Setting pipeline to PAUSED …

Setting pipeline to READY …

Setting pipeline to NULL …

FREEING pipeline …

  1. gst-launch filesrc location=/test/BigBuckBunny_640x360.m4v ! qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink

Output:

(gst-launch-0.10:1767): GStreamer-WARNING **: Failed to load plugin ‘/usr/lib/gstreamer-0.10/libgstsubparse.so’: /usr/lib/gstreamer-0.10/libgstsubparse.so: undefined symbol: parse_sami

Setting pipeline to PAUSED …

Pipeline is PREROLLING …

HANGING, but can be canceled by hitting CTRL+C

Steps 6 repeats over and over again in case the commend is tried again

I have no problem playing the file using mplayer, so the file is definitely OK.

Does the above log ring any bells at anyone?

Is the GStreamer-WARNING also “supposed” to occur when the playback is working?

Best regards and thanks again

Søren

Hello,

Looks like some issue with your cmem module. I have rev B7 and my
cmdline and loadmodule looks something like this

1: Boot kernel with mem=88M

2: Use the below loadmodule.sh

# Default Memory Map

Hi Brijesh,

Thanks for your comments, with this info I was able to make it (nearly) work
:slight_smile: :slight_smile: :slight_smile:

1) I changed bootargs to 'mem=88M'
Then
2) modprobe cmemk phys_start=0x85800000 phys_end=0x86800000
   pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
3) modprobe dsplinkk
4) modprobe lpm_omap3530

5)
a) gst-launch -v filesrc location=/data/BigBuckBunny_640x360.m4v !
   qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
   => Video starts playing with TI logo in upper right corner :slight_smile:
      No Audio - Is this supposed?
      Crashes with a mmcblk0: error -84 transferring data error after some
random time
b) gst-launch playbin uri=file:///data/BigBuckBunny_640x360.m4v
   => Black video with TI logo in corner and Audio Plays :slight_smile:
      Does not seem to crash with MMC error, although not extensively
tested...

I think the original command I used will only work on a RevC board with
256MB RAM?

After taking a closer look, the phys_start address in my original command
was 0x88000000, which is the exact end of the SDRAM - This new value is
within the 128MB limit:-)... That being said, I tried to change the limit to
104M (by setting phys_start=0x86800000, phys_end=0x87800000 and changing
mem=104M in bootargs) - This however didn't seem to work - Is this as
expected?

Best regards and thanks - I'm beginning to get a hole through :slight_smile: :slight_smile:
  Søren

Søren Steen Christensen wrote:

Hi Brijesh,

After taking a closer look, the phys_start address in my original command
was 0x88000000, which is the exact end of the SDRAM - This new value is

this one works only on 256MB revC

within the 128MB limit:-)... That being said, I tried to change the limit to
104M (by setting phys_start=0x86800000, phys_end=0x87800000 and changing
mem=104M in bootargs) - This however didn't seem to work - Is this as
expected?

Yes, there is not only CMEM but also CE that needs some memory up there, so you cannot move CMEM without reducing the CE mem.

Hi Brijesh,

Thanks for your comments, with this info I was able to make it (nearly) work
:slight_smile: :slight_smile: :slight_smile:

1) I changed bootargs to 'mem=88M'
Then
2) modprobe cmemk phys_start=0x85800000 phys_end=0x86800000
pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
3) modprobe dsplinkk
4) modprobe lpm_omap3530

5)
a) gst-launch -v filesrc location=/data/BigBuckBunny_640x360.m4v !
qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
=> Video starts playing with TI logo in upper right corner :slight_smile:
No Audio - Is this supposed?

[BK] I don't see audio element in plugin in your pipeline. What type
of file is /data/BigBuckBunny_640x360.m4v ?
I see you are using qtdemux, is this mp4 file?? I use the below
pipeline for my mp4

gst-launch filesrc location=sample.mp4 ! typefind ! qtdemux name=demux
demux.audio_00 ! queue max-size-buffers=1800 max-size-time=0
max-size-bytes=0 ! typefind ! TIAuddec1 ! alsasink demux.video_00 !
typefind ! TIViddec2 ! xvimagesink

 Crashes with a mmcblk0: error \-84 transferring data error after some

random time
b) gst-launch playbin uri=file:///data/BigBuckBunny_640x360.m4v
=> Black video with TI logo in corner and Audio Plays :slight_smile:
Does not seem to crash with MMC error, although not extensively
tested...

[BK] Currently plugins does not work well with playbin/decodebin. It;s
one the known issue listed at gstreamer.ti.com tracker items.

I think the original command I used will only work on a RevC board with
256MB RAM?

[BK] I have old beagleboard from friend and it has 128M. I don't know
the mem option for 256M. Sorry.

Cool - That did the trick :slight_smile: Now I have both Audio and Video running,
although it seem a bit unstable - It's normally crashing after a short while
(10-20 sec) with something like:

"Failed to configure latency of 0:00:00.000000000
mmcblk0: error -84 transferring data
end_request: I/O error, dev mmcblk0, sector 1924355
end_request: I/O error, dev mmcblk0, sector 1924363
end_request: I/O error, dev mmcblk0, sector 1924371
end_request: I/O error, dev mmcblk0, sector 1924379
..."

Is this supposed/known/expected? Should I try another SD card? Or some
different approach? - I.e. playing the file from a network drive instead of
MMC?

Do you have any pointers to general gsteamer usage? I'm completely new to
gstreamer and while seeing it, it kind of makes sense that I need to set an
audio path as well as the video path, but I'm not sure I would easily work
out the command myself - Thanks for the hint :slight_smile:

@Vladimir: Thanks for your comments as well. Luckily they were pretty much
aligned with what I thought :slight_smile:

Best regards and thanks to all of you
  Søren

Koen,

We downloaded the demo image and kernel (2.6.28-r17) from the URL below. We are able to decode video, but it only runs for 5-10 seconds before we get kernel panics. Sometimes we are seeing reports of MMC card errors (transfer data errors, etc.).

We might have some bad cards, so we're going to get new ones.

We have tried a 2.6.27-20 we built with the dsplink from codec engine 2.21. We are also seeing video playback for 5-10 seconds before kernel panics in MMC. Same as with the above.

We also used CIFS with our 2.6.27-20 kernel to mount files over the network and play, but then we saw kernel panics in the kernel power management driver (omap3_pm_idle function).

Any thoughts?

Regards,

Peter

P.S. Youtube is blocked again over here in China, so we aren't able to see your video :frowning: But we believe it can work!

Hi all

I tried to reproduce a video using the very same instructions, but I
thing I have some setbacks.

note: all the commandas where introduced using the serial port since I
have no adapter to use a keyboard and a mouse in the B6 beagleboard.

1) bootargs to 'mem=88M video=omapfb:vram:10M
omapfb.video_mode=1024x768MR-16@60'
2) modprobe cmemk phys_start=0x85800000 phys_end=0x86800000
pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
3) modprobe dsplinkk
4) modprobe lpm_omap3530
5) export DISPLAY=:0
6) try to play a video
a) gst-launch -v filesrc location=/home/root/
BigBuckBunny_640x360.m4v !
   qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
   result: nothing.
   console output: http://pastebin.com/m3bdd4fbd
b) gst-launch playbin uri=file:///home/root/BigBuckBunny_640x360.m4v
   result: Only audio is played, no video output, not even the black
video with TI's logo mentioned by Søren
c) omapfbplay BigBuckBunny_640x360.m4v rev
   result: Nothing
   the console complain about "Error allocating frame buffers"
d) mplayer /home/root/BigBuckBunny_640x360.m4v
   result: video is played

even when I stop X and try omapfbsink or dfbvideosink I have no video
output from gstreamer

Any idea about of what could be the problem I have to reproduce
video?

Best regards
Oscar Arias

Hello,

a) gst-launch -v filesrc location=/home/root/
BigBuckBunny_640x360.m4v !
  qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
  result: nothing.
  console output: http://pastebin.com/m3bdd4fbd

Can you add "--gst-debug=TI*:2" in pipeline to see if there are any
errors. Also "--gst-debug=TIViddec2:5" to get detail debugging log.

b) gst-launch playbin uri=file:///home/root/BigBuckBunny_640x360.m4v
  result: Only audio is played, no video output, not even the black
video with TI's logo mentioned by Søren

There are some known issue with TI plugin while using playbin. Check
tracker item on gstreamer.ti.com

See http://wiki.davincidsp.com/index.php?title=GstTIPlugin_Elements
for some more details on element.

On X windowing system, you may need to use xvimagesink instead of
TIDmaiVideoSink.

-Brijesh

I tried to reproduce a video using the very same instructions, but I
thing I have some setbacks.

note: all the commandas where introduced using the serial port since I
have no adapter to use a keyboard and a mouse in the B6 beagleboard.

1) bootargs to 'mem=88M video=omapfb:vram:10M
omapfb.video_mode=1024x768MR-16@60'
2) modprobe cmemk phys_start=0x85800000 phys_end=0x86800000
pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
3) modprobe dsplinkk
4) modprobe lpm_omap3530
5) export DISPLAY=:0
6) try to play a video
a) gst-launch -v filesrc location=/home/root/
BigBuckBunny_640x360.m4v !
   qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
   result: nothing.
   console output: http://pastebin.com/m3bdd4fbd
b) gst-launch playbin uri=file:///home/root/BigBuckBunny_640x360.m4v
   result: Only audio is played, no video output, not even the black
video with TI's logo mentioned by Søren
c) omapfbplay BigBuckBunny_640x360.m4v rev
   result: Nothing
   the console complain about "Error allocating frame buffers"
d) mplayer /home/root/BigBuckBunny_640x360.m4v
   result: video is played

Hi Oscar,

I think I ran into this problems as well - You need to cd into the TI codec
catalog
"cd /usr/share/ti-codec-combos" before trying to play the video (i.e. as
step 5½)

Other than that I think you have all the details I needed to get it up
running...

Best regards - Good luck
Søren

Op 7 apr 2009, om 08:46 heeft Søren Steen Christensen het volgende geschreven:

I tried to reproduce a video using the very same instructions, but I
thing I have some setbacks.

note: all the commandas where introduced using the serial port since I
have no adapter to use a keyboard and a mouse in the B6 beagleboard.

1) bootargs to 'mem=88M video=omapfb:vram:10M
omapfb.video_mode=1024x768MR-16@60'
2) modprobe cmemk phys_start=0x85800000 phys_end=0x86800000
pools=20x4096,8x131072,4x829440,1x5250000,1x1429440,1x256000
3) modprobe dsplinkk
4) modprobe lpm_omap3530
5) export DISPLAY=:0
6) try to play a video
a) gst-launch -v filesrc location=/home/root/
BigBuckBunny_640x360.m4v !
  qtdemux name=demux.video_00 ! TIViddec2 ! xvimagesink
  result: nothing.
  console output: http://pastebin.com/m3bdd4fbd
b) gst-launch playbin uri=file:///home/root/BigBuckBunny_640x360.m4v
  result: Only audio is played, no video output, not even the black
video with TI's logo mentioned by Søren
c) omapfbplay BigBuckBunny_640x360.m4v rev
  result: Nothing
  the console complain about "Error allocating frame buffers"
d) mplayer /home/root/BigBuckBunny_640x360.m4v
  result: video is played

Hi Oscar,

I think I ran into this problems as well - You need to cd into the TI codec
catalog
"cd /usr/share/ti-codec-combos" before trying to play the video (i.e. as
step 5½)

That should be fixed with the current gstreamer plugins in the angstrom feeds (opkg update ; opkg install gstreamer-ti). The patch that was used for that: http://patchwork.openembedded.org/patch/263/

regards,

Koen

Hi everybody

I want to thank you (all) for your answers, I just test them and I got
video... only for while because it get frozen at a random time but I
think this is caused by the SD card I am using (got mmcblk0: error -84
transferring data ).

Apparently the only issue was changing of directory, I'll try to
update angstrom as son as I get a USB-NIC

BR
Oscar Arias

@Koen and and others,

I have downloaded the latest kernel modules from:

http://www.angstrom-distribution.org/demo/beagleboard/modules-2.6.28-r17-beagleboard.tgz

and there doesn't seem to be either cmemk or dsplinkk in this package!
Is this the wrong package? or am I missing a something here?!

Thanks,
--Faraz

Oscar,

We and another person on this list had exactly the same problem as you
-- video plays for a few seconds, then the kernel reports SD card
errors.

Has anyone been able to make video play for longer than a few
seconds? If so, how?

Regards,

Peter