Mailing List archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[linuxtv-softmpeg] softmpeg and OSD



I tried a lot of things with DEBUG_OSD = 1 in VDR, and didn't realise it completely replaced the real OSD.
So I just recompiled VDR without the flag, and get the following error when running "vdr --plugin='softmpeg'" :


[softmpeg] initializing Plugin
[softmpeg] cSoftMPEG
(*) DirectFB/Config: Parsing config file '/etc/directfbrc'.

---------------------- DirectFB v0.9.21 ---------------------
(c) 2000-2002 convergence integrated media GmbH
(c) 2002-2004 convergence GmbH
-----------------------------------------------------------
(*) DirectFB/Core: Single Application Core. (with MMX support) (2004-06-15 20:40)
(*) Direct/Memcpy: Using MMXEXT optimized memcpy()
(*) DirectFB/Core: doing sync()...
(*) Direct/Modules: suppress module 'keyboard'
(*) Direct/Modules: suppress module 'lirc'
(*) DirectFB/Genefx: MMX detected and enabled
(*) DirectFB/Graphics: VIA/S3G UniChrome 0.3 (-)
(*) DirectFB/WM: Default 0.1 (Convergence GmbH)
(!!!) *** WARNING [no video mode set yet] *** [../../../src/core/layers.c:536 in dfb_screen_rectangle()]
using videolayer
{-} [25088: 0.000] SoftMPEG/init/setting up DirectFB: layer_id:1 window_id:-1
{-} [25088: 0.002] SoftMPEG/init/using layer configuration for video output via DirectFB
(*) Direct/Interface: Loaded 'default' implementation of 'IFusionSound'.
(*) Direct/Thread: Running 'Sound Mixer' (CRITICAL, 25095)...
[softmpeg] CanReplay()
[softmpeg] CanReplay()
[softmpeg] SetPlayMode()
setting Playmode to 1
[softmpeg] NewOsd()
[softmpeg] OSD @ 66 x 369
[softmpeg] OpenWindow(), handle:0, x:0, y:0, w:600, h:135
softmpeg.c <197>:
(#) DirectFBError [surface->Unlock(surface)]: Not supported!
(!!!) *** WARNING [Application exited without deinitialization of DirectFB!] *** [../../../src/core/core.c:638 in dfb_core_deinit_check()]


This line 197 in "softmpeg/softmpeg.c" is :

174 void cSoftOsd::CommitWindow(cWindow * Window)
175 {
176 IDirectFBWindow *osd = osd_windows[Window->Handle()];
177 IDirectFBSurface *surface;
178
179 int pitch;
180 uint8_t *buf;
181
182 // fprintf(stderr, "[softmpeg] CommitWindow(), %d\n",Window->Handle());
183
184 DFBCHECK(osd->GetSurface(osd, &surface));
185 DFBCHECK(surface->Lock(surface, DSLF_WRITE, (void **)&buf, &pitch));
186
187 for (int yp = 0; yp < Window->Height(); yp++) {
188 for (int ix = 0; ix < Window->Width(); ix++) {
189 eDvbColor c = Window->GetColor(*Window->Data(ix,yp));
190 buf[4*ix+0]=(c >> 16) & 255; //Blue
191 buf[4*ix+1]=(c >> 8) & 255; //Green
192 buf[4*ix+2]=c & 255; //Red
193 buf[4*ix+3]=(c >> 24) & 255; //Alpha
194 // fprintf(stderr,"%2x %2x %2x %2x\n",(c >> 24)& 255,(c >> 16)& 255,(c > > 8)& 255,(c >> 0)& 255);
195 }
196 buf += pitch;
197 }
198 DFBCHECK(surface->Unlock(surface));
199 DFBCHECK(surface->Flip(surface, 0, (DFBSurfaceFlipFlags)DSFLIP_ONSYNC));
200 }


This is with the fresh DirectFB-cvs with Colin's patches (but without Colin's libsoftmpeg, which doesn't link).

TIA

--
NH





Home | Main Index | Thread Index