/*****************************************************************************
* Preamble
*****************************************************************************/
-#include <stdlib.h>
-#include <vlc/vlc.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_libvlc );
- 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 )