Mercurial > mplayer.hg
changeset 1547:4b0046db8e64
alloc frame buffer for directshow codec - requires for avifile sync
author | arpi |
---|---|
date | Thu, 16 Aug 2001 01:04:28 +0000 |
parents | d4cd08b06665 |
children | eee7951a23af |
files | dec_video.c |
diffstat | 1 files changed, 6 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/dec_video.c Thu Aug 16 01:03:51 2001 +0000 +++ b/dec_video.c Thu Aug 16 01:04:28 2001 +0000 @@ -171,6 +171,7 @@ // GUI_MSG( mplCompileWithoutDSSupport ) // exit(1); #else + int bpp; if(DS_VideoDecoder_Open(sh_video->codec->dll,&sh_video->codec->guid, sh_video->bih, 0, &sh_video->our_out_buffer)){ // if(DS_VideoDecoder_Open(sh_video->codec->dll,&sh_video->codec->guid, sh_video->bih, 0, NULL)){ printf("ERROR: Couldn't open required DirectShow codec: %s\n",sh_video->codec->dll); @@ -192,15 +193,20 @@ switch(out_fmt){ case IMGFMT_YUY2: case IMGFMT_UYVY: + bpp=16; DS_VideoDecoder_SetDestFmt(16,out_fmt);break; // packed YUV case IMGFMT_YV12: case IMGFMT_I420: case IMGFMT_IYUV: + bpp=12; DS_VideoDecoder_SetDestFmt(12,out_fmt);break; // planar YUV default: + bpp=((out_fmt&255)+7)&(~7); DS_VideoDecoder_SetDestFmt(out_fmt&255,0); // RGB/BGR } + sh_video->our_out_buffer = shmem_alloc(sh_video->disp_w*sh_video->disp_h*bpp/8); // FIXME!!! + DS_VideoDecoder_Start(); DS_SetAttr_DivX("Quality",divx_quality);