# HG changeset patch # User arpi # Date 1034989064 0 # Node ID 17956aff04e1f47b0a3f475102cc91958014c7b0 # Parent 25bf4f45639e4444eddf9e5dc6b1a1c95f2e3925 bypass palette from bih, when codec cannot give it in o_bih diff -r 25bf4f45639e -r 17956aff04e1 libmpcodecs/vd_vfw.c --- a/libmpcodecs/vd_vfw.c Sat Oct 19 00:23:50 2002 +0000 +++ b/libmpcodecs/vd_vfw.c Sat Oct 19 00:57:44 2002 +0000 @@ -240,11 +240,14 @@ 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");