summaryrefslogtreecommitdiffstats
path: root/libvo/vo_x11.c
diff options
context:
space:
mode:
Diffstat (limited to 'libvo/vo_x11.c')
-rw-r--r--libvo/vo_x11.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/libvo/vo_x11.c b/libvo/vo_x11.c
index 1e6294a99f..49c5c61f44 100644
--- a/libvo/vo_x11.c
+++ b/libvo/vo_x11.c
@@ -514,11 +514,16 @@ static uint32_t draw_frame( uint8_t *src[] )
static uint32_t query_format( uint32_t format )
{
if( !vo_init() ) return 0; // Can't open X11
- if( ( format&IMGFMT_BGR_MASK )==IMGFMT_BGR && ( format&0xFF )==vo_depthonscreen ) return 1;
+ if( ( format&IMGFMT_BGR_MASK )==IMGFMT_BGR ){
+ int bpp=format&0xFF;
+ if( bpp==vo_depthonscreen ) return 1;
+ if( bpp==15 && vo_depthonscreen==16) return 1; // built-in conversion
+ if( bpp==24 && vo_depthonscreen==32) return 1; // built-in conversion
+ }
switch( format )
- {
+ {
case IMGFMT_YV12: return 1;
- }
+ }
return 0;
}