diff options
author | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-19 00:57:44 +0000 |
---|---|---|
committer | arpi <arpi@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-10-19 00:57:44 +0000 |
commit | e305745f603402ea1e03bcbea765791880b92386 (patch) | |
tree | 358490be057971332b7552fe803829d81d5dd8d1 /libmpcodecs/vd_vfw.c | |
parent | cee57cf702403d8c42dca2d56d48fa94128632c1 (diff) | |
download | mpv-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/vd_vfw.c')
-rw-r--r-- | libmpcodecs/vd_vfw.c | 13 |
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"); |