Index: etc/codecs.conf =================================================================== --- etc/codecs.conf (revision 20469) +++ etc/codecs.conf (working copy) @@ -541,7 +541,7 @@ videocodec ffwmv3 info "FFmpeg M$ WMV3/WMV9" status buggy - fourcc WMV3,wmv3 + fourcc WMV3,wmv3,WMVP driver ffmpeg dll wmv3 out YV12,I420,IYUV @@ -1928,6 +1928,7 @@ status working driver raw format 0x0 + format 0x20524742 out BGR32 flip videocodec rawbgr32 @@ -1943,6 +1944,7 @@ status working driver raw format 0x0 + format 0x18524742 out BGR24 flip videocodec rawbgr24 @@ -1959,6 +1961,7 @@ status working driver raw format 0x0 + format 0x10524742 out BGR16 flip videocodec rawbgr16 @@ -1975,6 +1978,7 @@ status working driver raw format 0x0 + format 0x0F524742 out BGR15 flip videocodec rawbgr15 @@ -1991,6 +1995,7 @@ status working driver raw format 0x0 + format 0x08524742 out BGR8 flip videocodec rawbgr8 Index: libmpcodecs/vd_raw.c =================================================================== --- libmpcodecs/vd_raw.c (revision 20469) +++ libmpcodecs/vd_raw.c (working copy) @@ -28,6 +28,7 @@ // init driver static int init(sh_video_t *sh){ + int format = sh->format; // set format fourcc for raw RGB: if(sh->bih && sh->bih->biCompression==0){ // set based on bit depth switch(sh->bih->biBitCount){ @@ -43,7 +44,15 @@ mp_msg(MSGT_DECVIDEO,MSGL_WARN,"RAW: depth %d not supported\n",sh->bih->biBitCount); } } - return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,sh->bih ? sh->bih->biCompression : sh->format); + if (sh->bih && sh->bih->biCompression) + format = sh->bih->biCompression; +printf("%x\n", format); + if (bswap_32(format & 0xffffff) == IMGFMT_RGB || + bswap_32(format & 0xffffff) == IMGFMT_BGR) + format = bswap_32(format); + format = IMGFMT_BGR16; +printf("%x\n", format); + return mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,format); } // uninit driver