Mercurial > mplayer.hg
changeset 30782:1c38d10731ab
Partially revert r30645, the final output format is determined by
mpcodecs_config_vo so we need to query it afterwards.
Still try to set a more sensible, codec-dependant preferred format even
though it is currently ignored.
Fixes bug #1659, based on patch by Andrew Wason [rectalogic rectalogic com]
author | reimar |
---|---|
date | Wed, 03 Mar 2010 21:32:31 +0000 |
parents | 1b4d24af52a7 |
children | 1bd54aea2896 |
files | libmpcodecs/vd_dmo.c libmpcodecs/vd_dshow.c |
diffstat | 2 files changed, 6 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/libmpcodecs/vd_dmo.c Wed Mar 03 21:01:57 2010 +0000 +++ b/libmpcodecs/vd_dmo.c Wed Mar 03 21:32:31 2010 +0000 @@ -55,7 +55,7 @@ // init driver static int init(sh_video_t *sh){ - unsigned int out_fmt=sh->codec->outfmt[sh->outfmtidx]; + unsigned int out_fmt=sh->codec->outfmt[0]; struct context *ctx; void *decoder; if(!(decoder=DMO_VideoDecoder_Open(sh->codec->dll,&sh->codec->guid, sh->bih, 0, 0))){ @@ -64,6 +64,8 @@ return 0; } if(!mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,out_fmt)) return 0; + // mpcodecs_config_vo can change the format + out_fmt=sh->codec->outfmt[sh->outfmtidx]; sh->context = ctx = calloc(1, sizeof(*ctx)); ctx->decoder = decoder; switch(out_fmt){
--- a/libmpcodecs/vd_dshow.c Wed Mar 03 21:01:57 2010 +0000 +++ b/libmpcodecs/vd_dshow.c Wed Mar 03 21:32:31 2010 +0000 @@ -66,7 +66,7 @@ // init driver static int init(sh_video_t *sh){ - unsigned int out_fmt=sh->codec->outfmt[sh->outfmtidx]; + unsigned int out_fmt=sh->codec->outfmt[0]; /* Hack for VSSH codec: new dll can't decode old files * In my samples old files have no extradata, so use that info @@ -81,6 +81,8 @@ return 0; } if(!mpcodecs_config_vo(sh,sh->disp_w,sh->disp_h,out_fmt)) return 0; + // mpcodecs_config_vo can change the format + out_fmt=sh->codec->outfmt[sh->outfmtidx]; switch(out_fmt){ case IMGFMT_YUY2: case IMGFMT_UYVY: