I have been trying the virtual surfaces, It compiles :-).
However when I run I keep getting
.......
(>) [Main Thread 5.184] ( 515) NXP/STB22X/VIDEO: Entering
phStbDFB_TestRegion
() [Main Thread 5.185] ( 515) NXP/STB22X/VIDEO: Entering
phStbDFB_TestRegion
() [Main Thread 5.186] ( 515) NXP/STB22X/VIDEO: Entering
phStbDFB_TestRegion
( size 1280x720
(-) [Main Thread 5.551] ( 515) Core/Layers: -> format UYVY
(-) [Main Thread 5.551] ( 515) Core/Layers: -> surf caps
0x00000000
(-) [Main Thread 5.552] ( 515) Core/Layers: -> buffermode 1
(-) [Main Thread 5.552] ( 515) Core/Layers: -> options
0x00000021
(-) [Main Thread 5.552] ( 515) Core/Layers: -> source
0,0-1280x720
(-) [Main Thread 5.552] ( 515) Core/Layers: -> dest
0,0-720x576
(-) [Main Thread 5.552] ( 515) Core/Layers: -> opacity 255
(-) [Main Thread 5.552] ( 515) Core/Layers: -> src_key
000000 (index 0)
(-) [Main Thread 5.552] ( 515) Core/Layers: -> dst_key
000000 (index 0)
(-) [Main Thread 5.553] ( 515) Core/Layers: -> state
0x00000015
(-) [Main Thread 5.553] ( 515) Core/Layers: -> FROZEN!
(-) [Main Thread 5.553] ( 515) Core/WindowStack:
dfb_windowstack_resize( 0x45b0a0, 1280x720 )
(-) [Main Thread 5.553] ( 515) Core/WindowStack:
dfb_windowstack_repaint_all( 0x45b0a0 )
(-) [Main Thread 5.554] ( 515) Core/Layers: destroying region
0x45ac80 (Secondary Vid Layer [tmdlVss2], 1280x720, configured, enabled,
inactive, not realized)
(-) [Main Thread 5.554] ( 515) Core/Layers: destroying context
0x45a728 (Secondary Vid Layer [tmdlVss2], inactive)
(-) [Main Thread 5.554] ( 515) Core/Layers:
dfb_layer_remove_context (Secondary Vid Layer [tmdlVss2], 0x45a728)
(-) [Main Thread 5.554] ( 515) Core/WindowStack:
dfb_windowstack_destroy( 0x45a948 )
(!) [Main Thread 5.555] ( 515) *** Assumption [region->surface != NULL]
failed *** [layer_region.c:390 in dfb_layer_region_get_surface()]
I am struggling to see why region->surface is NULL. And If I look at what
calls this:
/* Lock the region. */
if (dfb_layer_region_lock( region ))
return DFB_FUSION;
I presume that this call makes sure that region->surface is ! NULL or fills it
in.
Any quick clues as to what i must have done or is this a virtual surface
issue.....
Cheers
Daniel Laird
Daniel Laird
[EMAIL PROTECTED]
----------------------------------------
> Date: Fri, 25 Jul 2008 18:19:44 +0200
> From: [EMAIL PROTECTED]
> To: [EMAIL PROTECTED]
> CC: [email protected]
> Subject: Re: [directfb-dev] Virtual Surfaces for Video Layers in gfxdrivers
>
> Daniel Laird wrote:
>> On STB810 (pnx8950 based) and STB225 DFB1.0 we used virtual surfaces.
>> These had no associated memory but reported sizes etc and this was done by
>> using the allocate surface function for video layers:
>>
>> dfb_surface_create_preallocated(core, config->width, config->height,
>> config->format, CSP_SYSTEMONLY,
>> Caps, NULL, NULL, NULL, 0, 0, ret_surface);
>>
>> This AFAIK meant we had a surface but no memory attached.
>>
>> This allowed us to call GetSurface on a VideoLayer and then we used the
>> surface handle
>> to look up what video layer we really meant and make sure our decoder output
>> to that layer.
>> Also solved issues where our HW always has layer 0 = video. Whereas DFB has
>> Primary FB layer as 0
>>
>> I am now trying to move to DFB1.2 and did not like V1 of my DFB1.0 driver as
>> it relied on FBDev system.
>> So I used your rather nice davinci driver as a basis.
>> This also will make it Open and more supportable in the future.
>
> Great!
>
> Are you going to use devmem for the OSD and offscreen surfaces?
>
> I guess you're at least keeping the kernel module for acceleration.
>
>> However I now want to handle virtual surfaces and this is a difference to
>> the davinci.
>
> Well, you can still do the same and simply set lock.addr to NULL or at least
> allocate on dummy line
> and set lock.pitch to 0 :)
>
>> I am happy passing a NULL surface to PlayTo but I have no way of getting the
>> Source etc as you indicated above. This means I have
>> no easy way of specifiying which of the 2 video layers I am rendering to. I
>> could hack the ctx parameter but this is a dirty hack.
>
> True, the virtual surface is a nicer solution, at least for DirectFB 1.x...
>
>> Should PlayTo be modified to take either a surface or a Layer?
>
> I'm planning to change the API anyhow, moving away from the strong
> layer-surface binding,
> allowing to call something like IDirectFBDisplayLayer::SetSurface() or even
> more advanced.
>
> This will also allow showing one surface on different layers,
> allowing different positioning and scaling on different screens.
>
>> Could we move CreateVideoProvider from top level interface to Surface/Layer
>> so that either can create a VideoProvider.
>> i.e DisplayLayer->CreateVideoProvider and Surface->CreateVideoProvider.
>> The Video Provider could then be passed the 'parent' creator in the
>> Construct call and then we would be able to handle both Layer or Surface.
>>
>> I am looking for some advice and am happy to try things out as we try to
>> make a better version of the DFB1.2 driver.
>
> Let's keep the virtual surfaces with 1.2 and do heavier changes in 1.3
> (->1.4) or better in 1.5 (->2.0).
>
> Those changes would better match the virtual surfaces anyhow :)
>
> --
> Best regards,
> Denis Oliver Kropp
>
> .------------------------------------------.
> | DirectFB - Hardware accelerated graphics |
> | http://www.directfb.org/ |
> "------------------------------------------"
>
> _______________________________________________
> directfb-dev mailing list
> [email protected]
> http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
_________________________________________________________________
100’s of Nikon cameras to be won with Live Search
http://clk.atdmt.com/UKM/go/101719808/direct/01/
_______________________________________________
directfb-dev mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev