Mercurial > mplayer.hg
comparison libvo/vo_directfb.c @ 3588:8e56fe18e7fb
Applied patch by Jiri Svoboda <Jiri.Svoboda@seznam.cz>:
-proper setting of bg color
-turning BES at the end
author | pl |
---|---|
date | Tue, 18 Dec 2001 21:43:15 +0000 |
parents | 59390e321c4e |
children | 8148193fee93 |
comparison
equal
deleted
inserted
replaced
3587:6e21fbb41a2b | 3588:8e56fe18e7fb |
---|---|
265 } | 265 } |
266 | 266 |
267 if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER"))) fb_dev_name = "/dev/fb0"; | 267 if (!fb_dev_name && !(fb_dev_name = getenv("FRAMEBUFFER"))) fb_dev_name = "/dev/fb0"; |
268 DFBCHECK (DirectFBSetOption ("fbdev",fb_dev_name)); | 268 DFBCHECK (DirectFBSetOption ("fbdev",fb_dev_name)); |
269 | 269 |
270 // uncomment this if you do not wish to create a new vt for DirectFB | |
271 // DFBCHECK (DirectFBSetOption ("no-vt-switch",fb_dev_name)); | |
272 | |
273 // uncomment this if you want to allow vt switching | |
274 // DFBCHECK (DirectFBSetOption ("vt-switching",fb_dev_name)); | |
275 DFBCHECK (DirectFBSetOption ("bg-color","00000000")); | |
276 | |
270 DFBCHECK (DirectFBCreate (&dfb)); | 277 DFBCHECK (DirectFBCreate (&dfb)); |
271 DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); | 278 DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); |
272 | 279 |
273 // lets try to get YUY2 layer - borrowed from DirectFb examples | 280 // lets try to get YUY2 layer - borrowed from DirectFb examples |
274 | 281 |
561 | 568 |
562 /* | 569 /* |
563 * Create an input buffer for the keyboard. | 570 * Create an input buffer for the keyboard. |
564 */ | 571 */ |
565 DFBCHECK (keyboard->CreateInputBuffer (keyboard, &buffer)); | 572 DFBCHECK (keyboard->CreateInputBuffer (keyboard, &buffer)); |
566 | |
567 // clear the screen | |
568 | |
569 if (no_yuy2) {DFBCHECK (primary->FillRectangle (primary, 0, 0, screen_width, screen_height)); | |
570 } | |
571 else { | |
572 // create temporary surface and clean | |
573 DFBSurfaceDescription dsc; | |
574 DFBResult ret; | |
575 IDirectFBSurface *primary = NULL; | |
576 int sh,sw; | |
577 | |
578 dsc.flags = DSDESC_CAPS; | |
579 dsc.caps = DSCAPS_PRIMARY | DSCAPS_VIDEOONLY;//| DSCAPS_FLIPPING; | |
580 DFBCHECK (dfb->CreateSurface( dfb, &dsc, &primary)); | |
581 DFBCHECK (primary->GetSize (primary, &sw, &sh)); | |
582 DFBCHECK (primary->FillRectangle (primary, 0, 0, sw, sh)); | |
583 primary->Release(primary); | |
584 | |
585 } | |
586 | 573 |
587 // yuv2rgb transform init | 574 // yuv2rgb transform init |
588 | 575 |
589 if (((format == IMGFMT_YV12) || (format == IMGFMT_YUY2)) && no_yuy2){ yuv2rgb_init(frame_pixel_size * 8,MODE_RGB);}; | 576 if (((format == IMGFMT_YV12) || (format == IMGFMT_YUY2)) && no_yuy2){ yuv2rgb_init(frame_pixel_size * 8,MODE_RGB);}; |
590 | 577 |
883 frame->Release (frame); | 870 frame->Release (frame); |
884 | 871 |
885 // we will not release dfb and layer because there could be a new film | 872 // we will not release dfb and layer because there could be a new film |
886 | 873 |
887 // printf("Release primary\n"); | 874 // printf("Release primary\n"); |
888 // primary->Release (primary); | 875 primary->Release (primary); |
876 // switch off BES | |
877 if (videolayer) videolayer->SetOpacity(videolayer,0); | |
889 // printf("Release videolayer\n"); | 878 // printf("Release videolayer\n"); |
890 // if (videolayer) videolayer->Release(videolayer); | 879 // if (videolayer) videolayer->Release(videolayer); |
891 // printf("Release dfb\n"); | 880 // printf("Release dfb\n"); |
892 // dfb->Release (dfb); | 881 // dfb->Release (dfb); |
893 // preinit_done=0; | 882 // preinit_done=0; |