*pi64 = (int64_t)var_GetInteger( p_demux, "v4l-caching" ) * 1000;
return VLC_SUCCESS;
+ case DEMUX_GET_TIME:
+ pi64 = (int64_t*)va_arg( args, int64_t * );
+ *pi64 = mdate();
+ return VLC_SUCCESS;
+
/* TODO implement others */
default:
return VLC_EGENERIC;
p_sys->i_video_frame_size = 0;
for( i = 0; i < p_sys->pic.i_planes; i++ )
{
- p_sys->i_video_frame_size += p_sys->pic.p[i].i_lines *
+ p_sys->i_video_frame_size += p_sys->pic.p[i].i_visible_lines *
p_sys->pic.p[i].i_visible_pitch;
}
* cinepak.c: cinepak video decoder
*****************************************************************************
* Copyright (C) 1999-2001 VideoLAN
- * $Id: cinepak.c,v 1.6 2003/11/23 13:25:32 gbazin Exp $
+ * $Id$
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
p_src = p_sys->context.p_pix[i_plane];
i_lines = __MIN( p_sys->context.i_lines[i_plane],
- p_pic->p[i_plane].i_lines );
+ p_pic->p[i_plane].i_visible_lines );
for( i_line = 0; i_line < i_lines; i_line++ )
{
memcpy( p_dst, p_src,
i_width = p_pic->p[i_plane].i_visible_pitch;
i_dst_stride = p_pic->p[i_plane].i_pitch;
- for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )
+ for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines; i_line++ )
{
p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_width );
p_src += i_width;
i_width = p_pic->p[i_plane].i_visible_pitch;
i_src_stride = p_pic->p[i_plane].i_pitch;
- for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )
+ for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines;
+ i_line++ )
{
p_enc->p_vlc->pf_memcpy( p_dst, p_src, i_width );
p_dst += i_width;
i_dst_stride = p_pic->p[i_plane].i_pitch;
i_size = __MIN( i_src_stride, i_dst_stride );
- for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )
+ for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines;
+ i_line++ )
{
p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_size );
p_src += i_src_stride;
* rawvideo.c: Pseudo video decoder/packetizer for raw video data
*****************************************************************************
* Copyright (C) 2001, 2002 VideoLAN
- * $Id: rawvideo.c,v 1.13 2004/02/27 14:02:05 fenrir Exp $
+ * $Id$
*
* Authors: Laurent Aimar <fenrir@via.ecp.fr>
*
p_dst = p_pic->p[i_plane].p_pixels;
i_width = p_pic->p[i_plane].i_visible_pitch;
- for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )
+ for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines; i_line++ )
{
p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_width );
p_src += i_width;
* tarkin.c: tarkin decoder module making use of libtarkin.
*****************************************************************************
* Copyright (C) 2001-2003 VideoLAN
- * $Id: tarkin.c,v 1.11 2004/01/25 18:20:12 bigben Exp $
+ * $Id$
*
* Authors: Gildas Bazin <gbazin@netcourrier.com>
*
i_dst_stride = p_pic->p[i_plane].i_pitch;
i_src_stride = i_pitch;
- for( i_line = 0; i_line < p_pic->p[i_plane].i_lines; i_line++ )
+ for( i_line = 0; i_line < p_pic->p[i_plane].i_visible_lines; i_line++ )
{
p_dec->p_vlc->pf_memcpy( p_dst, p_src, i_src_stride );
}
p_pic->p->p_pixels = (uint8_t*)p_vout->p_sys->p_window->bitmap[buffer_index]->Bits();
p_pic->p->i_lines = p_vout->p_sys->i_height;
+ p_pic->p->i_visible_lines = p_vout->p_sys->i_height;
p_pic->p->i_pixel_pitch = colspace[p_vout->p_sys->p_window->colspace_index].pixel_bytes;
p_pic->i_planes = colspace[p_vout->p_sys->p_window->colspace_index].planes;
p_pic->p[0].p_pixels = p_pic->p_data;
p_pic->p[0].i_lines = p_vout->output.i_height;
+ p_pic->p[0].i_visible_lines = p_vout->output.i_height;
p_pic->p[0].i_pitch = p_vout->output.i_width * 2;
p_pic->p[0].i_pixel_pitch = 1;
p_pic->p[0].i_visible_pitch = p_vout->output.i_width * 2;
p_pic->p->p_pixels = p_pic->p_sys->p_image->image;
p_pic->p->i_lines = p_pic->p_sys->p_image->size.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_image->size.h;
p_pic->p->i_pitch = p_pic->p_sys->p_image->bpl;
p_pic->p->i_pixel_pitch = p_vout->p_sys->i_bytes_per_pixel;
p_pic->p->i_visible_pitch = p_vout->p_sys->i_bytes_per_pixel
p_pic->p->p_pixels = p_pic->p_sys->p_buf[0];
p_pic->p->i_lines = p_pic->p_sys->p_ctx[0]->dim.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_ctx[0]->dim.h;
p_pic->p->i_pitch = p_pic->p_sys->p_ctx[0]->pitch;
p_pic->p->i_pixel_pitch = p_vout->p_sys->i_bytes_per_pixel;
p_pic->p->i_visible_pitch = p_vout->p_sys->i_bytes_per_pixel
p_pic->Y_PIXELS = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p[Y_PLANE].i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p[Y_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p[Y_PLANE].i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p[Y_PLANE].i_pixel_pitch = 1;
p_pic->p[Y_PLANE].i_visible_pitch = p_pic->p[Y_PLANE].i_pitch;
p_pic->U_PIXELS = p_pic->p_sys->p_buf[U_PLANE];
p_pic->p[U_PLANE].i_lines = p_pic->p_sys->p_ctx[U_PLANE]->dim.h;
+ p_pic->p[U_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[U_PLANE]->dim.h;
p_pic->p[U_PLANE].i_pitch = p_pic->p_sys->p_ctx[U_PLANE]->pitch;
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_pic->p[U_PLANE].i_pitch;
p_pic->V_PIXELS = p_pic->p_sys->p_buf[V_PLANE];
p_pic->p[V_PLANE].i_lines = p_pic->p_sys->p_ctx[V_PLANE]->dim.h;
+ p_pic->p[V_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[V_PLANE]->dim.h;
p_pic->p[V_PLANE].i_pitch = p_pic->p_sys->p_ctx[V_PLANE]->pitch;
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_pic->p[V_PLANE].i_pitch;
p_pic->Y_PIXELS = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p[Y_PLANE].i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p[Y_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p[Y_PLANE].i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p[Y_PLANE].i_pixel_pitch = 1;
p_pic->p[Y_PLANE].i_visible_pitch = p_pic->p[Y_PLANE].i_pitch;
p_pic->U_PIXELS = p_pic->p_sys->p_buf[U_PLANE];
p_pic->p[U_PLANE].i_lines = p_pic->p_sys->p_ctx[U_PLANE]->dim.h;
+ p_pic->p[U_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[U_PLANE]->dim.h;
p_pic->p[U_PLANE].i_pitch = p_pic->p_sys->p_ctx[U_PLANE]->pitch;
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_pic->p[U_PLANE].i_pitch;
p_pic->V_PIXELS = p_pic->p_sys->p_buf[V_PLANE];
p_pic->p[V_PLANE].i_lines = p_pic->p_sys->p_ctx[V_PLANE]->dim.h;
+ p_pic->p[V_PLANE].i_visible_lines = p_pic->p_sys->p_ctx[V_PLANE]->dim.h;
p_pic->p[V_PLANE].i_pitch = p_pic->p_sys->p_ctx[V_PLANE]->pitch;
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_pic->p[V_PLANE].i_pitch;
p_pic->p->p_pixels = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p->i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p->i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p->i_pixel_pitch = 4;
p_pic->p->i_visible_pitch = p_pic->p->i_pitch;
p_pic->p->p_pixels = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p->i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p->i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p->i_pixel_pitch = 2;
p_pic->p->i_visible_pitch = 2 * p_pic->p_sys->p_ctx[Y_PLANE]->dim.w;
p_pic->p->p_pixels = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p->i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p->i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p->i_pixel_pitch = 4;
p_pic->p->i_visible_pitch = 4 * p_pic->p_sys->p_ctx[Y_PLANE]->dim.w;
p_pic->p->p_pixels = p_pic->p_sys->p_buf[Y_PLANE];
p_pic->p->i_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_ctx[Y_PLANE]->dim.h;
p_pic->p->i_pitch = p_pic->p_sys->p_ctx[Y_PLANE]->pitch;
p_pic->p->i_pixel_pitch = 4;
p_pic->p->i_visible_pitch = 4 * p_pic->p_sys->p_ctx[Y_PLANE]->dim.w;
p_pic->p->p_pixels = p_pic->p_sys->p_image->data
+ p_pic->p_sys->p_image->offsets[0];
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
/* XXX: this just looks so plain wrong... check it out ! */
p_pic->p->i_pitch = p_pic->p_sys->p_image->pitches[0] / 4;
p_pic->p->i_pixel_pitch = 4;
* i420_ymga.c : YUV to YUV conversion module for vlc
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: i420_ymga.c,v 1.3 2004/01/25 17:20:18 kuehne Exp $
+ * $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
/* Copy the Y part */
p_vout->p_vlc->pf_memcpy( p_dest->Y_PIXELS, p_source->Y_PIXELS,
- p_dest->p[Y_PLANE].i_pitch * p_dest->p[Y_PLANE].i_lines );
+ p_dest->p[Y_PLANE].i_pitch * p_dest->p[Y_PLANE].i_visible_lines );
/* Copy the U:V part */
- for( i_x = p_dest->p[U_PLANE].i_pitch * p_dest->p[U_PLANE].i_lines / 64;
+ for( i_x = p_dest->p[U_PLANE].i_pitch * p_dest->p[U_PLANE].i_visible_lines / 64;
i_x--; )
{
#if defined (MODULE_NAME_IS_i420_ymga)
picture_t *p_dest )
{
uint8_t *p_line1 = p_dest->p->p_pixels +
- p_dest->p->i_lines * p_dest->p->i_pitch
+ p_dest->p->i_visible_lines * p_dest->p->i_pitch
+ p_dest->p->i_pitch;
uint8_t *p_line2 = p_dest->p->p_pixels +
- p_dest->p->i_lines * p_dest->p->i_pitch;
+ p_dest->p->i_visible_lines * p_dest->p->i_pitch;
uint8_t *p_y1, *p_y2 = p_source->Y_PIXELS;
uint8_t *p_u = p_source->U_PIXELS;
uint8_t *p_v = p_source->V_PIXELS;
static void I422_cyuv( vout_thread_t *p_vout, picture_t *p_source,
picture_t *p_dest )
{
- uint8_t *p_line = p_dest->p->p_pixels + p_dest->p->i_lines * p_dest->p->i_pitch;
+ uint8_t *p_line = p_dest->p->p_pixels + p_dest->p->i_visible_lines * p_dest->p->i_pitch;
uint8_t *p_y = p_source->Y_PIXELS;
uint8_t *p_u = p_source->U_PIXELS;
uint8_t *p_v = p_source->V_PIXELS;
static void I422_Y211( vout_thread_t *p_vout, picture_t *p_source,
picture_t *p_dest )
{
- uint8_t *p_line = p_dest->p->p_pixels + p_dest->p->i_lines * p_dest->p->i_pitch;
+ uint8_t *p_line = p_dest->p->p_pixels + p_dest->p->i_visible_lines * p_dest->p->i_pitch;
uint8_t *p_y = p_source->Y_PIXELS;
uint8_t *p_u = p_source->U_PIXELS;
uint8_t *p_v = p_source->V_PIXELS;
*/
p_in = p_pic->p[0].p_pixels;
- p_in_end = p_in + p_pic->p[0].i_lines * p_pic->p[0].i_pitch - 8;
+ p_in_end = p_in + p_pic->p[0].i_visible_lines * p_pic->p[0].i_pitch - 8;
p_out = p_outpic->p[0].p_pixels;
p_in = p_pic->p[1].p_pixels;
p_in_v = p_pic->p[2].p_pixels;
- p_in_end = p_in + p_pic->p[1].i_lines * p_pic->p[1].i_pitch - 8;
+ p_in_end = p_in + p_pic->p[1].i_visible_lines * p_pic->p[1].i_pitch - 8;
p_out = p_outpic->p[1].p_pixels;
p_out_v = p_outpic->p[2].p_pixels;
&& 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_lines );
+ * p_outpic->p[i_plane].i_visible_lines );
}
else
{
- p_in_end = p_in + i_in_pitch * p_outpic->p[i_plane].i_lines;
+ p_in_end = p_in + i_in_pitch *
+ p_outpic->p[i_plane].i_visible_lines;
while( p_in < p_in_end )
{
p_in = p_pic->p[i_plane].p_pixels
/* Skip the right amount of lines */
- + i_in_pitch * ( p_pic->p[i_plane].i_lines * p_vout->p_sys->i_y
- / p_vout->output.i_height )
+ + i_in_pitch * ( p_pic->p[i_plane].i_visible_lines *
+ p_vout->p_sys->i_y / p_vout->output.i_height )
/* Skip the right amount of columns */
+ i_in_pitch * p_vout->p_sys->i_x / p_vout->output.i_width;
p_out = p_outpic->p[i_plane].p_pixels;
- p_out_end = p_out + i_out_pitch * p_outpic->p[i_plane].i_lines;
+ p_out_end = p_out + i_out_pitch * p_outpic->p[i_plane].i_visible_lines;
while( p_out < p_out_end )
{
uint8_t *p_in = p_pic->p[0].p_pixels;
int i_pitch = p_pic->p[0].i_pitch;
int i_visible_pitch = p_pic->p[0].i_visible_pitch;
- int i_lines = p_pic->p[0].i_lines;
+ int i_lines = p_pic->p[0].i_visible_lines;
int i_firstwhite = -1, i_lastwhite = -1, i;
/* Determine where black borders are */
p_out = p_outpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch
- * p_outpic->p[i_plane].i_lines;
+ * p_outpic->p[i_plane].i_visible_lines;
switch( p_vout->render.i_chroma )
{
p_in = p_pic->p[i_plane].p_pixels;
p_out = p_outpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch
- * p_outpic->p[i_plane].i_lines;
+ * p_outpic->p[i_plane].i_visible_lines;
switch( p_vout->render.i_chroma )
{
p_in = p_pic->p[i_plane].p_pixels;
p_out = p_outpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch
- * p_outpic->p[i_plane].i_lines;
+ * p_outpic->p[i_plane].i_visible_lines;
/* For BOTTOM field we need to add the first line */
if( i_field == 1 )
p_out = p_outpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch
- * p_outpic->p[i_plane].i_lines;
+ * p_outpic->p[i_plane].i_visible_lines;
/* All lines: mean value */
for( ; p_out < p_out_end ; )
p_out = p_outpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch
- * p_outpic->p[i_plane].i_lines;
+ * p_outpic->p[i_plane].i_visible_lines;
switch( p_vout->render.i_chroma )
{
p_in = p_inpic->p[i_index].p_pixels;
p_out = p_outpic->p[i_index].p_pixels;
- i_num_lines = p_inpic->p[i_index].i_lines;
+ i_num_lines = p_inpic->p[i_index].i_visible_lines;
black_pixel = ( i_index == Y_PLANE ) ? 0x00 : 0x80;
black_pixel = ( i_index == Y_PLANE ) ? 0x00 : 0x80;
- i_num_lines = p_inpic->p[i_index].i_lines;
+ i_num_lines = p_inpic->p[i_index].i_visible_lines;
i_first_line = i_num_lines * 4 / 5;
uint8_t *p_in, *p_in_end, *p_line_end, *p_out;
p_in = p_pic->p[i_index].p_pixels;
- p_in_end = p_in + p_pic->p[i_index].i_lines
+ p_in_end = p_in + p_pic->p[i_index].i_visible_lines
* p_pic->p[i_index].i_pitch;
p_out = p_outpic->p[i_index].p_pixels;
{
memcpy( p_outpic->p[i_index].p_pixels,
p_pic->p[i_index].p_pixels,
- p_pic->p[i_index].i_lines * p_pic->p[i_index].i_pitch);
+ p_pic->p[i_index].i_visible_lines * p_pic->p[i_index].i_pitch);
if (p_vout->p_sys->error == 0)
/* There are margins, but with the same width : perfect ! */
p_vout->p_vlc->pf_memcpy(
p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
- p_src->p[i].i_pitch * p_src->p[i].i_lines );
+ p_src->p[i].i_pitch * p_src->p[i].i_visible_lines );
}
else
{
uint8_t *p_out = p_dest->p[i].p_pixels;
int i_line;
- for( i_line = p_src->p[i].i_lines; i_line--; )
+ for( i_line = p_src->p[i].i_visible_lines; i_line--; )
{
p_vout->p_vlc->pf_memcpy( p_out, p_in,
p_src->p[i].i_visible_pitch );
p_new = p_newpic->p[i_plane].p_pixels;
p_old = p_oldpic->p[i_plane].p_pixels;
p_out_end = p_out + p_outpic->p[i_plane].i_pitch *
- p_outpic->p[i_plane].i_lines;
+ p_outpic->p[i_plane].i_visible_lines;
while ( p_out < p_out_end )
{
p_out_line_end = p_out + p_outpic->p[i_plane].i_visible_pitch;
uint8_t *p_in = p_pic->p[i_index].p_pixels;
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;
+ uint8_t *p_out_end = p_out +
+ p_outpic->p[i_index].i_visible_lines *
+ p_outpic->p[i_index].i_pitch;
for( ; p_out < p_out_end ; )
{
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;
+ p_line_end = p_in + p_pic->p[i_index].i_visible_lines *
+ i_pitch;
for( ; p_in < p_line_end ; )
{
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
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
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_visible_lines
* p_pic->p[i_index].i_pitch;
uint8_t *p_out = p_outpic->p[i_index].p_pixels;
uint8_t *p_in = p_pic->p[i_index].p_pixels;
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;
+ uint8_t *p_out_end = p_out +
+ p_outpic->p[i_index].i_visible_lines *
+ p_outpic->p[i_index].i_pitch;
for( ; p_out < p_out_end ; )
{
uint8_t *p_in_end;
- p_in_end = p_in + p_pic->p[i_index].i_lines * i_pitch;
+ p_in_end = p_in + p_pic->p[i_index].i_visible_lines *
+ i_pitch;
for( ; p_in < p_in_end ; )
{
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
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
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_visible_lines
* p_pic->p[i_index].i_pitch;
uint8_t *p_out = p_outpic->p[i_index].p_pixels;
for( i_index = 0 ; i_index < p_pic->i_planes ; i_index++ )
{
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
+ uint8_t *p_in_end = p_in + p_pic->p[i_index].i_visible_lines
* p_pic->p[i_index].i_pitch;
uint8_t *p_out = p_outpic->p[i_index].p_pixels;
p_in = p_pic->p[i_plane].p_pixels
+ pi_top_skip[i_plane] + pi_left_skip[i_plane];
- p_in_end = p_in + p_outpic->p[i_plane].i_lines
+ p_in_end = p_in + p_outpic->p[i_plane].i_visible_lines
* p_pic->p[i_plane].i_pitch;
p_out = p_outpic->p[i_plane].p_pixels;
for( i_plane = 0 ; i_plane < p_pic->i_planes ; i_plane++ )
{
pi_top_skip[i_plane] += p_vout->p_sys->pp_vout[ i_vout ].i_height
- * p_pic->p[i_plane].i_lines
+ * p_pic->p[i_plane].i_visible_lines
/ p_vout->output.i_height
* p_pic->p[i_plane].i_pitch;
}
* vout_aa.c: Aa video output display method for testing purposes
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: aa.c,v 1.3 2003/10/25 00:49:14 sam Exp $
+ * $Id$
*
* Authors: Sigmund Augdal <sigmunau@idi.ntnu.no>
*
/* Allocate the picture */
p_pic->p->p_pixels = aa_image( p_vout->p_sys->aa_context );
p_pic->p->i_lines = p_vout->p_sys->i_height;
+ p_pic->p->i_visible_lines = p_vout->p_sys->i_height;
p_pic->p->i_pitch = p_vout->p_sys->i_width;
p_pic->p->i_pixel_pitch = 1;
p_pic->p->i_visible_pitch = p_vout->p_sys->i_width;
/* Allocate the picture */
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
p_pic->p->i_pitch = 4 * ((p_vout->output.i_width + 15) & ~15);
p_pic->p->i_pixel_pitch = 4;
p_pic->p->i_visible_pitch = 4 * p_vout->output.i_width;
{
int i,j;
for( i = 0; i < front_pic.i_planes; i++ )
- for( j = 0; j < front_pic.p[i].i_lines; j++)
+ for( j = 0; j < front_pic.p[i].i_visible_lines; j++)
memset( front_pic.p[i].p_pixels + j *
front_pic.p[i].i_pitch, 127,
front_pic.p[i].i_visible_pitch );
case VLC_FOURCC('R','V','3','2'):
p_pic->p->p_pixels = p_pic->p_sys->ddsd.lpSurface;
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
p_pic->p->i_pitch = p_pic->p_sys->ddsd.lPitch;
switch( p_vout->output.i_chroma )
{
p_pic->Y_PIXELS = p_pic->p_sys->ddsd.lpSurface;
p_pic->p[Y_PLANE].i_lines = p_vout->output.i_height;
+ p_pic->p[Y_PLANE].i_visible_lines = p_vout->output.i_height;
p_pic->p[Y_PLANE].i_pitch = p_pic->p_sys->ddsd.lPitch;
p_pic->p[Y_PLANE].i_pixel_pitch = 1;
p_pic->p[Y_PLANE].i_visible_pitch = p_vout->output.i_width *
p_pic->V_PIXELS = p_pic->Y_PIXELS
+ p_pic->p[Y_PLANE].i_lines * p_pic->p[Y_PLANE].i_pitch;
p_pic->p[V_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[V_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[V_PLANE].i_pitch = p_pic->p[Y_PLANE].i_pitch / 2;
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_vout->output.i_width / 2 *
p_pic->U_PIXELS = p_pic->V_PIXELS
+ p_pic->p[V_PLANE].i_lines * p_pic->p[V_PLANE].i_pitch;
p_pic->p[U_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[U_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[U_PLANE].i_pitch = p_pic->p[Y_PLANE].i_pitch / 2;
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_vout->output.i_width / 2 *
p_pic->Y_PIXELS = p_pic->p_sys->ddsd.lpSurface;
p_pic->p[Y_PLANE].i_lines = p_vout->output.i_height;
+ p_pic->p[Y_PLANE].i_visible_lines = p_vout->output.i_height;
p_pic->p[Y_PLANE].i_pitch = p_pic->p_sys->ddsd.lPitch;
p_pic->p[Y_PLANE].i_pixel_pitch = 1;
p_pic->p[Y_PLANE].i_visible_pitch = p_vout->output.i_width *
p_pic->U_PIXELS = p_pic->Y_PIXELS
+ p_pic->p[Y_PLANE].i_lines * p_pic->p[Y_PLANE].i_pitch;
p_pic->p[U_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[U_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[U_PLANE].i_pitch = p_pic->p[Y_PLANE].i_pitch / 2;
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_vout->output.i_width / 2 *
p_pic->V_PIXELS = p_pic->U_PIXELS
+ p_pic->p[U_PLANE].i_lines * p_pic->p[U_PLANE].i_pitch;
p_pic->p[V_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[V_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[V_PLANE].i_pitch = p_pic->p[Y_PLANE].i_pitch / 2;
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_vout->output.i_width / 2 *
p_pic->p->p_pixels = p_pic->p_sys->ddsd.lpSurface;
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
p_pic->p->i_pitch = p_pic->p_sys->ddsd.lPitch;
p_pic->p->i_pixel_pitch = 2;
p_pic->p->i_visible_pitch = p_vout->output.i_width *
p_pic->p->p_pixels = p_vout->p_sys->p_video;
p_pic->p->i_pixel_pitch = p_vout->p_sys->i_bytes_per_pixel;
p_pic->p->i_lines = p_vout->p_sys->var_info.yres;
+ p_pic->p->i_visible_lines = p_vout->p_sys->var_info.yres;
if( p_vout->p_sys->var_info.xres_virtual )
{
p_pic->p->p_pixels = p_b[ 0 ]->write;
p_pic->p->i_pixel_pitch = p_b[ 0 ]->buffer.plb.pixelformat->size / 8;
p_pic->p->i_lines = p_vout->p_sys->mode.visible.y;
+ p_pic->p->i_visible_lines = p_vout->p_sys->mode.visible.y;
p_pic->p->i_pitch = p_b[ 0 ]->buffer.plb.stride;
* glide.c : 3dfx Glide plugin for vlc
*****************************************************************************
* Copyright (C) 2000, 2001 VideoLAN
- * $Id: glide.c,v 1.3 2003/10/25 00:49:14 sam Exp $
+ * $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
p_pic->p->p_pixels = p_vout->p_sys->pp_buffer[p_vout->p_sys->i_index];
p_pic->p->i_lines = GLIDE_HEIGHT;
+ p_pic->p->i_visible_lines = GLIDE_HEIGHT;
p_pic->p->i_pitch = p_vout->p_sys->p_buffer_info.strideInBytes;
/*1024 * GLIDE_BYTES_PER_PIXEL*/
p_pic->p->i_pixel_pitch = GLIDE_BYTES_PER_PIXEL;
/* Allocate the picture */
p_pic->p->i_lines = p_vout->p_sys->i_height;
+ p_pic->p->i_visible_lines = p_vout->p_sys->i_height;
p_pic->p->i_pitch = p_vout->p_sys->i_width;
p_pic->p->i_pixel_pitch = 1;
p_pic->p->i_visible_pitch = p_vout->p_sys->i_width;
}
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
p_pic->p->p_pixels = (uint8_t*) p_pic->p_sys->p_image->MapLock();
p_pic->p->i_pitch = p_vout->p_sys->i_screen_depth;
p_pic->p->i_visible_pitch = p_pic->p->i_pixel_pitch
p_pic->Y_PIXELS = p_pic->p_data;
p_pic->p[Y_PLANE].i_lines = p_vout->output.i_height;
+ p_pic->p[Y_PLANE].i_visible_lines = p_vout->output.i_height;
p_pic->p[Y_PLANE].i_pitch = CEIL32( p_vout->output.i_width );
p_pic->p[Y_PLANE].i_pixel_pitch = 1;
p_pic->p[Y_PLANE].i_visible_pitch = p_vout->output.i_width;
p_pic->U_PIXELS = p_pic->p_data + p_vout->p_sys->mga.frame_size * 2/4;
p_pic->p[U_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[U_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[U_PLANE].i_pitch = CEIL32( p_vout->output.i_width ) / 2;
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_pic->p[U_PLANE].i_pitch;
p_pic->V_PIXELS = p_pic->p_data + p_vout->p_sys->mga.frame_size * 3/4;
p_pic->p[V_PLANE].i_lines = p_vout->output.i_height / 2;
+ p_pic->p[V_PLANE].i_visible_lines = p_vout->output.i_height / 2;
p_pic->p[V_PLANE].i_pitch = CEIL32( p_vout->output.i_width ) / 2;
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_pic->p[V_PLANE].i_pitch;
p_vout->p_picture[0].i_planes = 1;
p_vout->p_picture[0].p->p_pixels = p_sys->pp_buffer[0];
p_vout->p_picture[0].p->i_lines = p_vout->output.i_height;
+ p_vout->p_picture[0].p->i_visible_lines = p_vout->output.i_height;
p_vout->p_picture[0].p->i_pixel_pitch = i_pixel_pitch;
p_vout->p_picture[0].p->i_pitch = p_vout->output.i_width *
p_vout->p_picture[0].p->i_pixel_pitch;
* qte.cpp : QT Embedded plugin for vlc
*****************************************************************************
* Copyright (C) 1998-2003 VideoLAN
- * $Id: qte.cpp,v 1.22 2004/03/03 20:39:52 gbazin Exp $
+ * $Id$
*
* Authors: Gerald Hansink <gerald.hansink@ordain.nl>
* Jean-Paul Saman <jpsaman@wxs.nl>
p_pic->p->p_pixels = (p_pic->p_sys->pQImage->jumpTable())[0];
p_pic->p->i_pitch = p_pic->p_sys->pQImage->bytesPerLine();
p_pic->p->i_lines = p_vout->output.i_height;
+ p_pic->p->i_visible_lines = p_vout->output.i_height;
p_pic->p->i_visible_pitch =
p_pic->p->i_pixel_pitch * p_vout->output.i_width;
p_pic->p->p_pixels = p_vout->p_sys->p_display->pixels;
p_pic->p->i_lines = p_vout->p_sys->p_display->h;
+ p_pic->p->i_visible_lines = p_vout->p_sys->p_display->h;
p_pic->p->i_pitch = p_vout->p_sys->p_display->pitch;
p_pic->p->i_visible_pitch =
p_pic->p->i_pixel_pitch * p_vout->p_sys->p_display->w;
p_pic->Y_PIXELS = p_pic->p_sys->p_overlay->pixels[0];
p_pic->p[Y_PLANE].i_lines = p_pic->p_sys->p_overlay->h;
+ p_pic->p[Y_PLANE].i_visible_lines = p_pic->p_sys->p_overlay->h;
p_pic->p[Y_PLANE].i_pitch = p_pic->p_sys->p_overlay->pitches[0];
switch( p_vout->output.i_chroma )
p_pic->U_PIXELS = p_pic->p_sys->p_overlay->pixels[2];
p_pic->p[U_PLANE].i_lines = p_pic->p_sys->p_overlay->h / 2;
+ p_pic->p[U_PLANE].i_visible_lines = p_pic->p_sys->p_overlay->h / 2;
p_pic->p[U_PLANE].i_pitch = p_pic->p_sys->p_overlay->pitches[2];
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_pic->p_sys->p_overlay->w / 2;
p_pic->V_PIXELS = p_pic->p_sys->p_overlay->pixels[1];
p_pic->p[V_PLANE].i_lines = p_pic->p_sys->p_overlay->h / 2;
+ p_pic->p[V_PLANE].i_visible_lines = p_pic->p_sys->p_overlay->h / 2;
p_pic->p[V_PLANE].i_pitch = p_pic->p_sys->p_overlay->pitches[1];
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_pic->p_sys->p_overlay->w / 2;
p_pic->U_PIXELS = p_pic->p_sys->p_overlay->pixels[1];
p_pic->p[U_PLANE].i_lines = p_pic->p_sys->p_overlay->h / 2;
+ p_pic->p[U_PLANE].i_visible_lines = p_pic->p_sys->p_overlay->h / 2;
p_pic->p[U_PLANE].i_pitch = p_pic->p_sys->p_overlay->pitches[1];
p_pic->p[U_PLANE].i_pixel_pitch = 1;
p_pic->p[U_PLANE].i_visible_pitch = p_pic->p_sys->p_overlay->w / 2;
p_pic->V_PIXELS = p_pic->p_sys->p_overlay->pixels[2];
p_pic->p[V_PLANE].i_lines = p_pic->p_sys->p_overlay->h / 2;
+ p_pic->p[V_PLANE].i_visible_lines = p_pic->p_sys->p_overlay->h / 2;
p_pic->p[V_PLANE].i_pitch = p_pic->p_sys->p_overlay->pitches[2];
p_pic->p[V_PLANE].i_pixel_pitch = 1;
p_pic->p[V_PLANE].i_visible_pitch = p_pic->p_sys->p_overlay->w / 2;
* wingdi.c : Win32 / WinCE GDI video output plugin for vlc
*****************************************************************************
* Copyright (C) 2002 VideoLAN
- * $Id: wingdi.c,v 1.8 2003/12/04 14:48:24 gbazin Exp $
+ * $Id$
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
SelectObject( p_vout->p_sys->off_dc, p_vout->p_sys->off_bitmap );
/* Stupid GDI is upside-down */
- i_src_bytes = p_pic->p->i_lines * p_pic->p->i_pitch;
+ i_src_bytes = p_pic->p->i_visible_lines * p_pic->p->i_pitch;
i_dest_bytes = 0;
while( i_src_bytes )
case VLC_FOURCC('R','V','3','2'):
p_pic->p->i_lines = p_pic->p_sys->p_image->height;
+ p_pic->p->i_visible_lines = p_pic->p_sys->p_image->height;
p_pic->p->p_pixels = p_pic->p_sys->p_image->data
+ p_pic->p_sys->p_image->xoffset;
p_pic->p->i_pitch = p_pic->p_sys->p_image->bytes_per_line;
for( i = 0 ; i < p_outpic->i_planes ; i++ )
{
memset( p_outpic->p[i].p_pixels, i > 0 ? 0x80 : 0x00,
- p_outpic->p[i].i_lines * p_outpic->p[i].i_pitch );
+ p_outpic->p[i].i_visible_lines * p_outpic->p[i].i_pitch );
}
/* We can now call our visualization effects */
for( i_index = 1; i_index < p_pic->i_planes; i_index++ )
{
- p_pic->p[i_index].p_pixels = p_pic->p[i_index-1].p_pixels
- + p_pic->p[i_index-1].i_lines
- * p_pic->p[i_index-1].i_pitch;
+ p_pic->p[i_index].p_pixels = p_pic->p[i_index-1].p_pixels +
+ p_pic->p[i_index-1].i_lines * p_pic->p[i_index-1].i_pitch;
}
}
{
case FOURCC_I411:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 4;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 4;
p_pic->p[ V_PLANE ].i_lines = i_height;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 4;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 4;
p_pic->i_planes = 3;
case FOURCC_I410:
case FOURCC_YVU9:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height / 4;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned / 4;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 4;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 4;
p_pic->p[ V_PLANE ].i_lines = i_height / 4;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned / 4;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 4;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 4;
p_pic->i_planes = 3;
case FOURCC_I420:
case FOURCC_IYUV:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height / 2;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned / 2;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 2;
p_pic->p[ V_PLANE ].i_lines = i_height / 2;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned / 2;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 2;
p_pic->i_planes = 3;
case FOURCC_I422:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width / 2;
p_pic->p[ V_PLANE ].i_lines = i_height;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned / 2;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width / 2;
p_pic->i_planes = 3;
case FOURCC_I444:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width;
p_pic->p[ V_PLANE ].i_lines = i_height;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width;
p_pic->i_planes = 3;
case FOURCC_YUVA:
p_pic->p[ Y_PLANE ].i_lines = i_height;
+ p_pic->p[ Y_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ Y_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ Y_PLANE ].i_visible_pitch = i_width;
p_pic->p[ U_PLANE ].i_lines = i_height;
+ p_pic->p[ U_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ U_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ U_PLANE ].i_visible_pitch = i_width;
p_pic->p[ V_PLANE ].i_lines = i_height;
+ p_pic->p[ V_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ V_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ V_PLANE ].i_visible_pitch = i_width;
p_pic->p[ A_PLANE ].i_lines = i_height;
+ p_pic->p[ A_PLANE ].i_visible_lines = i_height_aligned;
p_pic->p[ A_PLANE ].i_pitch = i_width_aligned;
p_pic->p[ A_PLANE ].i_visible_pitch = i_width;
p_pic->i_planes = 4;
case FOURCC_YUVP:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned;
p_pic->p->i_visible_pitch = i_width;
p_pic->p->i_pixel_pitch = 8;
case FOURCC_Y211:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned;
p_pic->p->i_visible_pitch = i_width;
p_pic->p->i_pixel_pitch = 4;
case FOURCC_UYVY:
case FOURCC_YUY2:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned * 2;
p_pic->p->i_visible_pitch = i_width * 2;
p_pic->p->i_pixel_pitch = 4;
case FOURCC_RGB2:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned;
p_pic->p->i_visible_pitch = i_width;
p_pic->p->i_pixel_pitch = 1;
case FOURCC_RV15:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned * 2;
p_pic->p->i_visible_pitch = i_width * 2;
p_pic->p->i_pixel_pitch = 2;
case FOURCC_RV16:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned * 2;
p_pic->p->i_visible_pitch = i_width * 2;
p_pic->p->i_pixel_pitch = 2;
case FOURCC_RV24:
p_pic->p->i_lines = i_height;
-
- /* FIXME: Should be 3 here but x11 and our chroma conversion
- * routines assume 4. */
-#ifdef WIN32
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned * 3;
p_pic->p->i_visible_pitch = i_width * 3;
p_pic->p->i_pixel_pitch = 3;
-#else
- p_pic->p->i_pitch = i_width_aligned * 4;
- p_pic->p->i_visible_pitch = i_width * 4;
- p_pic->p->i_pixel_pitch = 4;
-#endif
p_pic->i_planes = 1;
break;
case FOURCC_RV32:
p_pic->p->i_lines = i_height;
+ p_pic->p->i_visible_lines = i_height_aligned;
p_pic->p->i_pitch = i_width_aligned * 4;
p_pic->p->i_visible_pitch = i_width * 4;
p_pic->p->i_pixel_pitch = 4;
/* There are margins, but with the same width : perfect ! */
p_vout->p_vlc->pf_memcpy(
p_dest->p[i].p_pixels, p_src->p[i].p_pixels,
- p_src->p[i].i_pitch * p_src->p[i].i_lines );
+ p_src->p[i].i_pitch * p_src->p[i].i_visible_lines );
}
else
{
uint8_t *p_out = p_dest->p[i].p_pixels;
int i_line;
- for( i_line = p_src->p[i].i_lines; i_line--; )
+ for( i_line = p_src->p[i].i_visible_lines; i_line--; )
{
p_vout->p_vlc->pf_memcpy( p_out, p_in,
p_src->p[i].i_visible_pitch );