[MPlayer-cvslog] r30824 - in trunk/libmpcodecs: vd_dmo.c vd_dshow.c
reimar
subversion at mplayerhq.hu
Wed Mar 3 22:32:31 CET 2010
Author: reimar
Date: Wed Mar 3 22:32:31 2010
New Revision: 30824
Log:
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]
Modified:
trunk/libmpcodecs/vd_dmo.c
trunk/libmpcodecs/vd_dshow.c
Modified: trunk/libmpcodecs/vd_dmo.c
==============================================================================
--- trunk/libmpcodecs/vd_dmo.c Wed Mar 3 22:01:57 2010 (r30823)
+++ trunk/libmpcodecs/vd_dmo.c Wed Mar 3 22:32:31 2010 (r30824)
@@ -55,7 +55,7 @@ static int control(sh_video_t *sh,int cm
// 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){
Modified: trunk/libmpcodecs/vd_dshow.c
==============================================================================
--- trunk/libmpcodecs/vd_dshow.c Wed Mar 3 22:01:57 2010 (r30823)
+++ trunk/libmpcodecs/vd_dshow.c Wed Mar 3 22:32:31 2010 (r30824)
@@ -66,7 +66,7 @@ static int control(sh_video_t *sh,int cm
// 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:
More information about the MPlayer-cvslog
mailing list