[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