* transform.c : transform image plugin for vlc
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: transform.c,v 1.4 2002/11/28 17:35:00 sam Exp $
+ * $Id: transform.c,v 1.5 2003/01/09 14:00:00 sam Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
- *
+ *
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
free( psz_method );
}
-
+
return( 0 );
}
{
int i_index;
picture_t *p_pic;
-
+
I_OUTPUTPICTURES = 0;
/* Initialize the output structure */
p_vout->p_sys->p_vout = vout_Create( p_vout,
p_vout->render.i_height, p_vout->render.i_width,
p_vout->render.i_chroma,
- (u64)VOUT_ASPECT_FACTOR * (u64)VOUT_ASPECT_FACTOR
- / (u64)p_vout->render.i_aspect );
+ (uint64_t)VOUT_ASPECT_FACTOR
+ * (uint64_t)VOUT_ASPECT_FACTOR
+ / (uint64_t)p_vout->render.i_aspect );
}
else
{
msg_Err( p_vout, "cannot open vout, aborting" );
return( 0 );
}
-
+
ALLOCATE_DIRECTBUFFERS( VOUT_MAX_PICTURES );
return( 0 );
return;
}
msleep( VOUT_OUTMEM_SLEEP );
- }
+ }
vout_DatePicture( p_vout->p_sys->p_vout, p_outpic, p_pic->date );
vout_LinkPicture( p_vout->p_sys->p_vout, p_outpic );
{
int i_pitch = p_pic->p[i_index].i_pitch;
- u8 *p_in = p_pic->p[i_index].p_pixels;
+ uint8_t *p_in = p_pic->p[i_index].p_pixels;
- u8 *p_out = p_outpic->p[i_index].p_pixels;
- u8 *p_out_end = p_out + p_outpic->p[i_index].i_lines
- * p_outpic->p[i_index].i_pitch;
+ uint8_t *p_out = p_outpic->p[i_index].p_pixels;
+ uint8_t *p_out_end = p_out + p_outpic->p[i_index].i_lines
+ * p_outpic->p[i_index].i_pitch;
for( ; p_out < p_out_end ; )
{
- u8 *p_line_end;
+ uint8_t *p_line_end;
- p_line_end = p_in + p_pic->p[i_index].i_lines
- * p_pic->p[i_index].i_pitch;
+ p_out_end -= p_outpic->p[i_index].i_pitch
+ - p_outpic->p[i_index].i_visible_pitch;
+ p_line_end = p_in + p_pic->p[i_index].i_lines * i_pitch;
for( ; p_in < p_line_end ; )
{
break;
case TRANSFORM_MODE_180:
+ /* FIXME: we should use i_visible_pitch here */
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
- u8 *p_in = p_pic->p[i_index].p_pixels;
- u8 *p_in_end = p_in + p_pic->p[i_index].i_lines
- * p_pic->p[i_index].i_pitch;
+ uint8_t *p_in = p_pic->p[i_index].p_pixels;
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_lines
+ * p_pic->p[i_index].i_pitch;
- u8 *p_out = p_outpic->p[i_index].p_pixels;
+ uint8_t *p_out = p_outpic->p[i_index].p_pixels;
for( ; p_in < p_in_end ; )
{
{
int i_pitch = p_pic->p[i_index].i_pitch;
- u8 *p_in = p_pic->p[i_index].p_pixels;
+ uint8_t *p_in = p_pic->p[i_index].p_pixels;
- u8 *p_out = p_outpic->p[i_index].p_pixels;
- u8 *p_out_end = p_out + p_outpic->p[i_index].i_lines
- * p_outpic->p[i_index].i_pitch;
+ uint8_t *p_out = p_outpic->p[i_index].p_pixels;
+ uint8_t *p_out_end = p_out + p_outpic->p[i_index].i_lines
+ * p_outpic->p[i_index].i_pitch;
for( ; p_out < p_out_end ; )
{
- u8 *p_in_end;
+ uint8_t *p_in_end;
- p_in_end = p_in + p_pic->p[i_index].i_lines
- * p_pic->p[i_index].i_pitch;
+ p_in_end = p_in + p_pic->p[i_index].i_lines * i_pitch;
for( ; p_in < p_in_end ; )
{
*p_out++ = *p_in_end;
}
+ p_out += p_outpic->p[i_index].i_pitch
+ - p_outpic->p[i_index].i_visible_pitch;
p_in++;
}
}
case TRANSFORM_MODE_VFLIP:
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
- u8 *p_in = p_pic->p[i_index].p_pixels;
- u8 *p_in_end = p_in + p_pic->p[i_index].i_lines
- * p_pic->p[i_index].i_pitch;
+ uint8_t *p_in = p_pic->p[i_index].p_pixels;
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_lines
+ * p_pic->p[i_index].i_pitch;
- u8 *p_out = p_outpic->p[i_index].p_pixels;
+ uint8_t *p_out = p_outpic->p[i_index].p_pixels;
for( ; p_in < p_in_end ; )
{
p_in_end -= p_pic->p[i_index].i_pitch;
p_vout->p_vlc->pf_memcpy( p_out, p_in_end,
- p_pic->p[i_index].i_pitch );
+ p_pic->p[i_index].i_visible_pitch );
p_out += p_pic->p[i_index].i_pitch;
}
}
case TRANSFORM_MODE_HFLIP:
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
- u8 *p_in = p_pic->p[i_index].p_pixels;
- u8 *p_in_end = p_in + p_pic->p[i_index].i_lines
- * p_pic->p[i_index].i_pitch;
+ uint8_t *p_in = p_pic->p[i_index].p_pixels;
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_lines
+ * p_pic->p[i_index].i_pitch;
- u8 *p_out = p_outpic->p[i_index].p_pixels;
+ uint8_t *p_out = p_outpic->p[i_index].p_pixels;
for( ; p_in < p_in_end ; )
{
- u8 *p_line_end = p_in + p_pic->p[i_index].i_pitch;
+ uint8_t *p_line_end = p_in
+ + p_pic->p[i_index].i_visible_pitch;
for( ; p_in < p_line_end ; )
{