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