Video playing alternatives

Hi all,

I would like to know the video playing alternatives I have in
BeagleBoard to play videos.
I want to mix the video playing inside my little opengl engine. I'm
using sgx powervr drivers in order to get
opengl acceleration. Now I'm trying to decode videos to render every
frame using opengl.
Then, the alternatives I see are:

- Use the ffmpeg with the NEON optimizations in order to speed up
decodification, then I can read
the decoded frame, and render it.

- Use the DSP processor. I've seen in the last demo beagleboard image
that gst-launch can be used
with ti codecs to play videos unloading the cpu !

Is it doable the decodification through the DSP and the rendering
through OpenGL ES ?? or I've to
stay in the ffmpeg way.

Best regards,
Jorge

Jorge <jorge.monteagudo@gmail.com> writes:

Hi all,

I would like to know the video playing alternatives I have in
BeagleBoard to play videos.
I want to mix the video playing inside my little opengl engine. I'm
using sgx powervr drivers in order to get
opengl acceleration. Now I'm trying to decode videos to render every
frame using opengl.
Then, the alternatives I see are:

- Use the ffmpeg with the NEON optimizations in order to speed up
decodification, then I can read
the decoded frame, and render it.

- Use the DSP processor. I've seen in the last demo beagleboard image
that gst-launch can be used
with ti codecs to play videos unloading the cpu !

Is it doable the decodification through the DSP and the rendering
through OpenGL ES ?? or I've to stay in the ffmpeg way.

Unless you intend to use video frames as textures to be applied to 3D
surfaces, not merely displayed "flat" on the screen, you are better
off using one of the video planes in the DSS, which gives you hardware
yuv to rgb conversion and scaling. This both saves on memory
bandwidth and frees up the sgx to do more of what it's meant to do.

Both FFmpeg and DSP codecs will put the decoded frames wherever you
like.

Interesting! Basically I've an opengl application and in some
situations I've
to play a video. If the video is played fullscreen maybe is optimal to
change to
"DSS mode" but if I need to show the video in an area of a 2D opengl
scene,
what do you recommend?

Regards,
Jorge

Jorge <jorge.monteagudo@gmail.com> writes:

Ok, I think that's the way to go! I'm not planning texture the video
frame at this stage. Do you have any link or info about how to use the
DSS ?? I was impressed with the last beagle demo image running a
video with 20% cpu load, and I would like to check the same using
DSS playing...

And a last question, where is the "DSS hardware" in charge of the
yuv to rgb conversion ?? I mean, it's the cpu, the dsp...

Regards,
Jorge
scaling

Jorge <jorge.monteagudo@gmail.com> writes:

Jorge <jorge.monteag...@gmail.com> writes:
>> Jorge <jorge.monteag...@gmail.com> writes:
>> > Hi all,

>> > I would like to know the video playing alternatives I have in
>> > BeagleBoard to play videos.
>> > I want to mix the video playing inside my little opengl engine. I'm
>> > using sgx powervr drivers in order to get
>> > opengl acceleration. Now I'm trying to decode videos to render every
>> > frame using opengl.
>> > Then, the alternatives I see are:

>> > - Use the ffmpeg with the NEON optimizations in order to speed up
>> > decodification, then I can read
>> > the decoded frame, and render it.

>> > - Use the DSP processor. I've seen in the last demo beagleboard image
>> > that gst-launch can be used
>> > with ti codecs to play videos unloading the cpu !

>> > Is it doable the decodification through the DSP and the rendering
>> > through OpenGL ES ?? or I've to stay in the ffmpeg way.

>> Unless you intend to use video frames as textures to be applied to 3D
>> surfaces, not merely displayed "flat" on the screen, you are better
>> off using one of the video planes in the DSS, which gives you hardware
>> yuv to rgb conversion and scaling. This both saves on memory
>> bandwidth and frees up the sgx to do more of what it's meant to do.

>> Both FFmpeg and DSP codecs will put the decoded frames wherever you
>> like.

> Interesting! Basically I've an opengl application and in some
> situations I've to play a video. If the video is played fullscreen
> maybe is optimal to change to "DSS mode" but if I need to show the
> video in an area of a 2D opengl scene, what do you recommend?

The video can be placed in any rectangular area, and you can
alpha-blend graphics on top of it. The only time you should use the
sgx for video display is if you are doing some more transformations
than simple scaling, e.g. use it as a texture on a 3D object.

Ok, I think that's the way to go! I'm not planning texture the video
frame at this stage. Do you have any link or info about how to use the
DSS ?? I was impressed with the last beagle demo image running a
video with 20% cpu load, and I would like to check the same using
DSS playing...

That was probably using the DSS overlay.

And a last question, where is the "DSS hardware" in charge of the
yuv to rgb conversion ?? I mean, it's the cpu, the dsp...

It's a separate block.

I've been testing the DSS to play videos, using omapfbplay and I've
seen a cpu load around 50%. That's good, when I use only ffmpeg is
higher.

From that, another question comes to mind. The omapfbplay uses
ffmpeg to decode the video, then uses framebuffer, opened in
OMAPFB_COLOR_YUY422 mode to output the frame, and then hardware
does the conversion to rgb in order to display it.

Is it possible to use the DSP to do the video decoding to leave
cpu free to decode audio, for instance ?? Then, the first step,
from video file you get the frames using DSP, and then they are
painted with DSS to use the hardware yuv conversion. Is it
possible ??? I've seen demos using DSP and TI multimedia codecs
to play videos, but I don't know if both worlds can be mixed.

Regards,
Jorge

hi i would like to know how to access the DSP codecs. How have they integrated DSP link with gstreamer into the new angstorm demo. Is it possible to run mplayer with DSP codecs can any1 knindly help me with this mplayer with DSP.