/*****************************************************************************
* win32.c: Screen capture module.
*****************************************************************************
- * Copyright (C) 2004 VideoLAN
+ * Copyright (C) 2004 the VideoLAN team
* $Id$
*
* Authors: Gildas Bazin <gbazin@videolan.org>
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h>
-#include <vlc/vlc.h>
-#include <vlc/input.h>
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
#include "screen.h"
struct block_sys_t
{
+ block_t self;
HBITMAP hbmp;
};
static void CaptureBlockRelease( block_t *p_block )
{
- DeleteObject( p_block->p_sys->hbmp );
+ DeleteObject( ((block_sys_t *)p_block)->hbmp );
free( p_block );
}
{
demux_sys_t *p_sys = p_demux->p_sys;
screen_data_t *p_data = p_sys->p_data;
- block_t *p_block;
+ block_sys_t *p_block;
void *p_buffer;
int i_buffer;
HBITMAP hbmp;
DeleteObject( hbmp );
return NULL;
}
- memset( p_block, 0, sizeof( block_t ) );
- p_block->p_sys = (block_sys_t *)( (uint8_t *)p_block + sizeof( block_t ) );
-
/* Fill all fields */
i_buffer = (p_sys->fmt.video.i_bits_per_pixel + 7) / 8 *
p_sys->fmt.video.i_width * p_sys->fmt.video.i_height;
- p_block->p_next = NULL;
- p_block->i_buffer = i_buffer;
- p_block->p_buffer = p_buffer;
- p_block->pf_release = CaptureBlockRelease;
- p_block->p_manager = VLC_OBJECT( p_demux->p_vlc );
- p_block->p_sys->hbmp = hbmp;
-
- return p_block;
+ block_Init( &p_block->self, p_buffer, i_buffer );
+ p_block->self.pf_release = CaptureBlockRelease;
+ p_block->hbmp = hbmp;
+
+ return &p_block->self;
}
block_t *screen_Capture( demux_t *p_demux )