Hello all,
I work with DM8168 board. I have an OMX appliacation and I want to combine it with DirectFB. My OMX application uses fb0,
when the DirectFB uses fb1. I want to blend the 2 layers. I tried to enable blending on the directFb layer, but without any success.
I called the TestConfiguration function on the layer before I did any SetConfig and it came back with an error.
videolayer->TestConfiguration(videolayer, &dlc, &errorFlags);
I saw some posts where it was recommended to use DirectFb, so I concluded that people in this forum use DirectFb.
Can someone help me please? Should I need to configure first my DirectFb?
Thanks.
I compiled the directfb with --with-gfxdrivers=davinci and edited the directfbrc file 5556.directfbrc.txt
Why videolayer->TestConfiguration(videolayer, &dlc, &errorFlags); function fails? Am I missing something?
I am also interested in using directfb library with the TI8168, i have no experience working with that library on TI SOCs, are there any use case examples? Did anyone have done it on TI8168?Please help.
Thanks,Gabi
Hi Gabi, I have Buildroot and it has a package for DirectFB. I've had the demos working on my DM8168 custom board and also written my own application for DirectFB.
When you're building it I wouldn't specify any graphics drivers, especially not Davinci as I have a feeling these refer to the DM6467.
Ralph
Hi Ralph,
Thank you very much for your answer.
_Ralph_ Hi Gabi, I have Buildroot and it has a package for DirectFB. I've had the demos working on my DM8168 custom board and also written my own application for DirectFB.
Great it's good to know that someone have done it, Thanks for the tips i will try this myself.
I am a new Linux user, i am using the menuconfig in EZSDK supplied by TI, i couldn't find directFB support in this menuconfig.Sory if my question is silly. Can you please explain what should i do in order to add the directFB library from the Buildroot to this menuconfig.
Hi Gabi,
Buildroot is an entirely different build environment than Angstron/Arago which TI uses. f you're new to Linux I wouldn't recomment using it. Have you tried downloading the DirectFB package and cross compiling it using the Code Sourcery toolchain?
Thank you very much for your help, actualy what i have done was downloading the DirectFB package and cross compiling it using the Code Sourcery toolchain, i even also run successfuly a few stand alone directFB examples. My problems have begun while i was tyring to combine directFB with OMX, i want to add text on an video image coming out of OMX chain, i am trying to use the transparency in order to see text above the video image, the directFB layer run over the video image coming from OMX and no video is seen only the text.I can't tell if the problem is coming from the directFB transparency feature or from something else.Have you done something similar with directFB?
Okay, so your issue is not with DirectFB but with the framebuffer device, assuming you are managing to output a 32 bit (RGBA) image with transparency using DirectDB.
I've never mixed framebuffers however this is definitely something we'd find useful. As I understand it, you basically need to use the fbset program to set the framebuffer that you are displaying your DirectFB application on (e.g. /dev/fb0) to have 32 bit colour depth.
Then you should get both OpenMAX and DirectFB outputting video.
Then I would refer to the VPSS user guide to see how to mix the 2 video outputs as the mixing is not done in Linux; it is a hardware feature of the HDVPSS. "Alpha blending" is the feature you're looking at.
Hmm, having said that, I looked at the VPSS webpage and it seems that alpha blending is to do with blending software buffers (e.g. mix /dev/fb0 with /dev/fb1) which is no use for OpenMAX.
I believe the decode_display has some GUI overlay option using the "-g 1" command line switch. Have a look at the source code of that and it might help you in displaying graphics.
Otherwise I hope someone from TI can help you.
Thanks for your help, i have checked the decode_display with graphics enabled, this example works with transparency (not with directFB), that is way i have concluded that the /dev/fbo is configured correctly for transparency, if the transparency is done in HW i believe that there might be a problem with DirectFB access to DM8168 drivers.How can i check this?Can you please check with your platform the directFB functions below, i see that ret_desc.caps doesn't change, can you check if it changes on your platform?
DFBDisplayLayerDescription ret_desc; DFBDisplayLayerConfig dlc; dfb->GetDisplayLayer( dfb, 0, &videolayer ); dlc.flags = DLCONF_OPTIONS; dlc.options = DLOP_OPACITY; videolayer->SetConfiguration( videolayer, &dlc ); videolayer->GetDescription(videolayer, &ret_desc); if (ret_desc.caps & DLCAPS_OPACITY) printf( " - Supports blending based on global alpha factor.\n" );
Hmm, okay well you basically need to cut the transparency stuff out of IL_ClientFbDevAppTask in decode_display, stick it at the start of the DirectFB application, and hopefully all should work fine. DirectFB is fundamentally just a tool for writing data to /dev/fb0 or /dev/fb1 and nothing more.
The most important thing is to ensure that DirectFB is happy writing data to a ARGB8888 format framebuffer. I'm not sure how you can check this.
That was it. Thanks a lot you have made my day.
Gabi
Great. Which bit sorted it? The ARGB business?
Yes it was the ARGB business.