diff options
author | 2010-03-03 21:32:31 +0000 | |
---|---|---|
committer | 2010-03-03 21:32:31 +0000 | |
commit | 57f4448e7a267d26496e52384f3e1c9c4fcb317d (patch) | |
tree | 62398aa35310c15ceb3971195a32140d256308a2 | |
parent | baae4d1add5b184dcf0dc3271330ead267e048d7 (diff) |
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]
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@30824 b3059339-0415-0410-9bf9-f77b7e298cf2
-rw-r--r-- | libmpcodecs/vd_dmo.c | 4 | ||||
-rw-r--r-- | libmpcodecs/vd_dshow.c | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/libmpcodecs/vd_dmo.c b/libmpcodecs/vd_dmo.c index 0b2e20e90e..6866aa202b 100644 --- a/libmpcodecs/vd_dmo.c +++ b/libmpcodecs/vd_dmo.c @@ -55,7 +55,7 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){ // 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 @@ static int init(sh_video_t *sh){ 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){ diff --git a/libmpcodecs/vd_dshow.c b/libmpcodecs/vd_dshow.c index 8a1d29c321..82a0193b35 100644 --- a/libmpcodecs/vd_dshow.c +++ b/libmpcodecs/vd_dshow.c @@ -66,7 +66,7 @@ static int control(sh_video_t *sh,int cmd,void* arg,...){ // 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 @@ static int init(sh_video_t *sh){ 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: |