[maemo-developers] [maemo-developers] Xvideo support for Nokia 770?

From: Simon Pickering S.G.Pickering at bath.ac.uk
Date: Thu Jan 11 14:34:50 EET 2007
> As you may recall, I was considering this back in August/September.  
> I tried a few things, and reported some of my findings to this list.  
> The code for all that is still available here:  
> http://qstream.org/~krasic/770/dsp/


> > 2. Try using dsp tasks that already exist on the device and 
> are used 
> > for dspfbsink. But the sources of gst plugins contain code 
> that limits 
> > video resolution for dspfbsink. I wonder if this check was 
> introduced 
> > artificially or it is the limitation of DSP scaler and it 
> can't handle 
> > anything larger than that. Also I wonder if existing video 
> scaler DSP 
> > task can support direct rendering [2].
> I tried direct rendering in the above mentioned 
> experimentation.  I never got it to work exactly correctly, 
> i.e. I could get images fragments on the screen, but they 
> were not the whole image, and never
> in exactly the correct screen position.   I suspected this was tied to
> the baroque memory addressing constraints of the DSP (e.g. 16bit data
> item limitations).   I tried very hard to work around them but was not
> successful.

Was this the demo_fb task, or something different? I see that demo_console
has been compiled (in dspgw-3.3-dsp/apps/demo_mod), but I can't see demo_fb
having been compiled in situ (dspgw-3.3-dsp/apps/demo). If it was something
different, could you point me to the code please?

I ask as I'm trying to get the demo_fb code to work. Demo_console works fine
and outputs the message to the screen, but demo_fb complains with the
following message: 

# ./demo_fb fbadr=300000
open: Device or resource busy

Anyone have any ideas why this might be? I assume this is caused by the
open() call in the arm-side demo_fb app (see dspgw-3.3-arm/apps/demo):

fd = open("/dev/dsptask/demo_fb", O_RDWR);

I'm just not sure what would cause the busy message when the demo_console
runs fine before and after I try demo_fb.

I altered the demo_fb.c code slightly to add an if defined() statement for
the Nokia 770, which I hope should set the screen dimensions correctly. I
must add that I've not tried it without this modification, but will do so
this evening to check.

I also pulled the framebuffer address out of /lib/dsp/avs_kernelcfg.cmd on
the 770. Is this the address I should use?

> > 3. Try implementing a new DSP based scaler from scratch. The most 
> > important thing to know is how to access framebuffer 
> directly from DSP 
> > and move data to it from mapped buffer without any overhead.
> > The first test implementation can just perform nonscaled planar
> > YV12 -> packed YUV422 conversion, if it proves to be fast 
> and useful, 
> > it could be extended to also support scaling.
> >
> This is what I did in August.   I did YUV -> YUV scaling plus RGB
> conversion on the DSP.   I think I did YUV->YUV scaling later. The
> results (performance) were abysmal.   Maybe I committed some mortal
> DSP programming sins that dragged the performance down, but it was soo
> slow I gave up even hoping.   I think my DSP code was maxed out on the
> DSP at like 20 fps, where the ARM was able to do 24fps with 
> about 10-20% cpu.
> Anyway, my code is still there which may be a start if you want to
> attempt it.   However, I think your first option is probably the most
> fruitful option.    My little project made me very cynical of the
> value of the DSP.  ;-)

Again, could you give me a pointer to the directory under which to find this



More information about the maemo-developers mailing list