[Mplayer-cvslog] CVS: main mplayer.c,1.71,1.72

GEREOFFY arpi_esp at users.sourceforge.net
Mon Apr 16 05:31:36 CEST 2001


Update of /cvsroot/mplayer/main
In directory usw-pr-cvs1:/tmp/cvs-serv23047

Modified Files:
	mplayer.c 
Log Message:
I420/IYUV support

Index: mplayer.c
===================================================================
RCS file: /cvsroot/mplayer/main/mplayer.c,v
retrieving revision 1.71
retrieving revision 1.72
diff -C2 -r1.71 -r1.72
*** mplayer.c	2001/04/16 00:09:53	1.71
--- mplayer.c	2001/04/16 03:31:34	1.72
***************
*** 910,918 ****
     }
     
!    if(out_fmt==IMGFMT_YUY2)
!      DS_VideoDecoder_SetDestFmt(16,mmioFOURCC('Y', 'U', 'Y', '2'));
! //     DS_VideoDecoder_SetDestFmt(16,mmioFOURCC('Y', 'V', '1', '2'));
!    else
!      DS_VideoDecoder_SetDestFmt(out_fmt&255,0);
  
     DS_VideoDecoder_Start();
--- 910,924 ----
     }
     
!    switch(out_fmt){
!    case IMGFMT_YUY2:
!    case IMGFMT_UYVY:
!      DS_VideoDecoder_SetDestFmt(16,out_fmt);break;        // packed YUV
!    case IMGFMT_YV12:
!    case IMGFMT_I420:
!    case IMGFMT_IYUV:
!      DS_VideoDecoder_SetDestFmt(12,out_fmt);break;        // planar YUV
!    default:
!      DS_VideoDecoder_SetDestFmt(out_fmt&255,0);           // RGB/BGR
!    }
  
     DS_VideoDecoder_Start();
***************
*** 1024,1027 ****
--- 1030,1036 ----
         printf("RGB%d\n",out_fmt&255); else
       if(out_fmt==IMGFMT_YUY2) printf("YUY2\n"); else
+      if(out_fmt==IMGFMT_UYVY) printf("UYVY\n"); else
+      if(out_fmt==IMGFMT_I420) printf("I420\n"); else
+      if(out_fmt==IMGFMT_IYUV) printf("IYUV\n"); else
       if(out_fmt==IMGFMT_YV12) printf("YV12\n");
     }
***************
*** 1337,1341 ****
--- 1346,1362 ----
  
      DS_VideoDecoder_DecodeFrame(start, in_size, 0, 1);
+     current_module="draw_frame";
+ 
        t2=GetTimer();t=t2-t;video_time_usage+=t*0.000001f;
+       if(out_fmt==IMGFMT_YV12||out_fmt==IMGFMT_IYUV||out_fmt==IMGFMT_I420){
+         uint8_t* dst[3];
+         int stride[3];
+         stride[0]=sh_video->disp_w;
+         stride[1]=stride[2]=sh_video->disp_w/2;
+         dst[0]=sh_video->our_out_buffer;
+         dst[2]=dst[0]+sh_video->disp_w*sh_video->disp_h;
+         dst[1]=dst[2]+sh_video->disp_w*sh_video->disp_h/4;
+         video_out->draw_slice(dst,stride,sh_video->disp_w,sh_video->disp_h,0,0);
+       } else
          video_out->draw_frame((uint8_t **)&sh_video->our_out_buffer);
        t2=GetTimer()-t2;vout_time_usage+=t2*0.000001f;
***************
*** 1360,1364 ****
--- 1381,1397 ----
        if(ret){ printf("Error decompressing frame, err=%d\n",ret);break; }
      }
+     current_module="draw_frame";
        t2=GetTimer();t=t2-t;video_time_usage+=t*0.000001f;
+ //      if(out_fmt==IMGFMT_YV12){
+       if(out_fmt==IMGFMT_YV12||out_fmt==IMGFMT_IYUV||out_fmt==IMGFMT_I420){
+         uint8_t* dst[3];
+         int stride[3];
+         stride[0]=sh_video->disp_w;
+         stride[1]=stride[2]=sh_video->disp_w/2;
+         dst[0]=sh_video->our_out_buffer;
+         dst[2]=dst[0]+sh_video->disp_w*sh_video->disp_h;
+         dst[1]=dst[2]+sh_video->disp_w*sh_video->disp_h/4;
+         video_out->draw_slice(dst,stride,sh_video->disp_w,sh_video->disp_h,0,0);
+       } else
          video_out->draw_frame((uint8_t **)&sh_video->our_out_buffer);
        t2=GetTimer()-t2;vout_time_usage+=t2*0.000001f;


_______________________________________________
Mplayer-cvslog mailing list
Mplayer-cvslog at lists.sourceforge.net
http://lists.sourceforge.net/lists/listinfo/mplayer-cvslog



More information about the MPlayer-cvslog mailing list