Index: libvo/vo_direct3d.c =================================================================== --- libvo/vo_direct3d.c (revision 27999) +++ libvo/vo_direct3d.c (working copy) @@ -303,12 +303,6 @@ return VO_TRUE; } - /* If the previous if failed, we should draw a packed frame */ - if (FAILED(IDirect3DDevice9_BeginScene(priv->d3d_device))) { - mp_msg(MSGT_VO,MSGL_ERR,"BeginScene failed\n"); - return VO_ERROR; - } - if (FAILED(IDirect3DSurface9_LockRect(priv->d3d_surface, &locked_rect, NULL, 0))) { mp_msg(MSGT_VO,MSGL_ERR,"Surface lock failure\n"); @@ -323,6 +317,11 @@ return VO_ERROR; } + if (FAILED(IDirect3DDevice9_BeginScene(priv->d3d_device))) { + mp_msg(MSGT_VO,MSGL_ERR,"BeginScene failed\n"); + return VO_ERROR; + } + if (FAILED(IDirect3DDevice9_StretchRect(priv->d3d_device, priv->d3d_surface, &priv->fs_panscan_rect, @@ -613,11 +612,6 @@ char *Dst; /**< Pointer to the destination image */ int UVstride; /**< Stride of the U/V planes */ - if (FAILED(IDirect3DDevice9_BeginScene(priv->d3d_device))) { - mp_msg(MSGT_VO,MSGL_ERR,"BeginScene failed\n"); - return VO_ERROR; - } - if (FAILED(IDirect3DSurface9_LockRect(priv->d3d_surface, &locked_rect, NULL, 0))) { mp_msg(MSGT_VO,MSGL_V,"Surface lock failure\n"); @@ -672,10 +666,6 @@ return VO_ERROR; } - if (FAILED(IDirect3DDevice9_EndScene(priv->d3d_device))) { - mp_msg(MSGT_VO,MSGL_ERR,"EndScene failed\n"); - return VO_ERROR; - } return 0; /* Success */ }