summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authorarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-19 00:57:44 +0000
committerarpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-10-19 00:57:44 +0000
commite305745f603402ea1e03bcbea765791880b92386 (patch)
tree358490be057971332b7552fe803829d81d5dd8d1 /libmpcodecs
parentcee57cf702403d8c42dca2d56d48fa94128632c1 (diff)
downloadmpv-e305745f603402ea1e03bcbea765791880b92386.tar.bz2
mpv-e305745f603402ea1e03bcbea765791880b92386.tar.xz
bypass palette from bih, when codec cannot give it in o_bih
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7790 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_vfw.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libmpcodecs/vd_vfw.c b/libmpcodecs/vd_vfw.c
index bc85ee623d..1ed5e2781a 100644
--- a/libmpcodecs/vd_vfw.c
+++ b/libmpcodecs/vd_vfw.c
@@ -240,11 +240,14 @@ static int init(sh_video_t *sh){
ICSendMessage(priv->handle, ICM_USER+80, (long)(&divx_quality), 0);
// don't do this palette mess always, it makes div3 dll crashing...
- if((sh->codec->outfmt[sh->outfmtidx]==IMGFMT_BGR8) &&
- (!ICDecompressGetPalette(priv->handle, sh->bih, priv->o_bih)))
- {
- priv->palette = ((unsigned char*)priv->o_bih) + sh->bih->biSize;
- mp_msg(MSGT_WIN32,MSGL_V,"ICDecompressGetPalette OK\n");
+ if(sh->codec->outfmt[sh->outfmtidx]==IMGFMT_BGR8){
+ if(ICDecompressGetPalette(priv->handle, sh->bih, priv->o_bih)){
+ priv->palette = (unsigned char*)(priv->o_bih+1);
+ mp_msg(MSGT_WIN32,MSGL_V,"ICDecompressGetPalette OK\n");
+ } else {
+ if(sh->bih->biSize>=40+4*4)
+ priv->palette = (unsigned char*)(sh->bih+1);
+ }
}
mp_msg(MSGT_DECVIDEO,MSGL_V,"INFO: Win32 video codec init OK!\n");