- while( ( p_outpic =
- vout_CreatePicture( p_vout->p_sys->pp_vout[ i_vout ], 0, 0, 0 )
- ) == NULL )
- {
- if( p_vout->b_die || p_vout->b_error )
- {
- vout_DestroyPicture(
- p_vout->p_sys->pp_vout[ i_vout ], p_outpic );
- return;
- }
-
- msleep( VOUT_OUTMEM_SLEEP );
- }
-
- vout_DatePicture( p_vout->p_sys->pp_vout[ i_vout ],
- p_outpic, p_pic->date );
- vout_LinkPicture( p_vout->p_sys->pp_vout[ i_vout ], p_outpic );
-
- for( i_plane = 0 ; i_plane < p_pic->i_planes ; i_plane++ )
- {
- uint8_t *p_in, *p_in_end, *p_out;
- int i_in_pitch = p_pic->p[i_plane].i_pitch;
- const int i_out_pitch = p_outpic->p[i_plane].i_pitch;
- const int i_copy_pitch = p_outpic->p[i_plane].i_visible_pitch;
-
- p_in = p_pic->p[i_plane].p_pixels;
- p_out = p_outpic->p[i_plane].p_pixels;
-
- if( i_in_pitch == i_copy_pitch
- && i_out_pitch == i_copy_pitch )
- {
- p_vout->p_vlc->pf_memcpy( p_out, p_in, i_in_pitch
- * p_outpic->p[i_plane].i_visible_lines );
- }
- else
- {
- p_in_end = p_in + i_in_pitch *
- p_outpic->p[i_plane].i_visible_lines;
-
- while( p_in < p_in_end )
- {
- p_vout->p_vlc->pf_memcpy( p_out, p_in, i_copy_pitch );
- p_in += i_in_pitch;
- p_out += i_out_pitch;
- }
- }
- }