Hello,

I'm using directfb to display video from homemade frames, draw
graphics and PiP on videolayer.

My hardware is Via cle266 chipset and I've install viafb framebuffer
driver from directfb cvs.

Drawing graphics on unichrome/cle266 graphics layer works well but
I've had bad performances with videolayer ( and I try a lot of
configuration).

I can't use preallocated flag to create surface because our I420
frames have channels non contingous in memory so I need to perform at
least some memcopy to adjust the data.

I see that copy directly in video memory is slow,that blit from system
to video memory is not support ( in Unichrome gfxdriver readme) .

Can anyone tell me the best layer and surfaces configuration to reduce
cpu usage.

For now my solution code is :

  videolayer :

config.flags=(DFBDisplayLayerConfigFlags)(DLCONF_PIXELFORMAT|DLCONF_WIDTH
| DLCONF_HEIGHT|DLCONF_BUFFERMODE);//);
config.pixelformat = DSPF_I420; 
config.width=screenWidth;               
config.height=screenHeight;
config.buffermode=DLBM_TRIPLE;

 I get the surface attach on this layer with getSurface method.

I create a new surface (framesurface) with this flags:
   
dsc.flags=(DFBSurfaceDescriptionFlags)DSDESC_CAPS|DSDESC_WIDTH|DSDESC_HEIGHT|DSDESC_PIXELFORMAT;
dsc.caps=DSCAPS_SYSTEMONLY;
dsc.width=frameWidth;
dsc.height=frameHeight;
dsc.pixelformat = DSPF_I420;    

I lock this surface, write data on it, unlock, I blit my frame surface
on the videosurface and I flip the videoSurface.

Is there some configurations to increase the performance? My method
take at least 30% of cpu time, Hardware acceleration is set  (for
example a top command of df_layer /mnt/video0 (v4l) report no cpu
usage!! and df_dok show good results).

Thanks in advance for every tips .

Julien

_______________________________________________
directfb-users mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-users

Reply via email to