summaryrefslogtreecommitdiffstats
path: root/vidix
diff options
context:
space:
mode:
authornick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-05 18:51:37 +0000
committernick <nick@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-02-05 18:51:37 +0000
commit9c8f46a10787af5c1ad0dfd2c0779329dc657590 (patch)
tree8845749fa130da9a98f1034585d8cf4120d8b088 /vidix
parent7380c341690668b0245d554c583a76a4f381e2ef (diff)
downloadmpv-9c8f46a10787af5c1ad0dfd2c0779329dc657590.tar.bz2
mpv-9c8f46a10787af5c1ad0dfd2c0779329dc657590.tar.xz
mplayer has swapped RGB's fourcc :(
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@4540 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'vidix')
-rw-r--r--vidix/vidixlib.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/vidix/vidixlib.c b/vidix/vidixlib.c
index 81e4734421..828b05c944 100644
--- a/vidix/vidixlib.c
+++ b/vidix/vidixlib.c
@@ -25,6 +25,7 @@
#include <dirent.h>
#include "vidixlib.h"
+#include "../bswap.h"
static char drv_name[FILENAME_MAX];
@@ -227,13 +228,27 @@ int vdlGetCapability(VDL_HANDLE handle, vidix_capability_t *cap)
return t_vdl(handle)->get_caps(cap);
}
+#define MPLAYER_IMGFMT_RGB (('R'<<24)|('G'<<16)|('B'<<8))
+#define MPLAYER_IMGFMT_BGR (('B'<<24)|('G'<<16)|('R'<<8))
+#define MPLAYER_IMGFMT_RGB_MASK 0xFFFFFF00
+
+static uint32_t normilize_fourcc(uint32_t fourcc)
+{
+ if((fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_RGB|0) ||
+ (fourcc & MPLAYER_IMGFMT_RGB_MASK) == (MPLAYER_IMGFMT_BGR|0))
+ return bswap_32(fourcc);
+ else return fourcc;
+}
+
int vdlQueryFourcc(VDL_HANDLE handle,vidix_fourcc_t *f)
{
+ f->fourcc = normilize_fourcc(f->fourcc);
return t_vdl(handle)->query_fourcc(f);
}
int vdlConfigPlayback(VDL_HANDLE handle,vidix_playback_t *p)
{
+ p->fourcc = normilize_fourcc(p->fourcc);
return t_vdl(handle)->config_playback(p);
}