- vlc_mutex_unlock( &p_block->p_sys->lock );
-
- return p_block;
-}
-
-/*****************************************************************************
- * Standard block management
- *
- *****************************************************************************/
-/* to be used by other block management */
-block_t *block_NewEmpty( void )
-{
- block_t *p_block;
-
- p_block = malloc( sizeof( block_t ) );
- memset( p_block, 0, sizeof( block_t ) );
-
- p_block->p_next = NULL;
- p_block->i_flags = 0;
- p_block->i_pts = 0;
- p_block->i_dts = 0;
- p_block->i_length = 0;
- p_block->i_rate = 0;
-
- p_block->i_buffer = 0;
- p_block->p_buffer = NULL;
-
- p_block->pf_release = NULL;
- p_block->pf_duplicate = NULL;
- p_block->pf_modify = NULL;
- p_block->pf_realloc = NULL;
-
- p_block->p_manager = NULL;
- p_block->p_sys = NULL;
- return p_block;
-}
-
-block_t *__block_New( vlc_object_t *p_obj, int i_size )
-{
- block_t *p_block;
- block_sys_t *p_sys;
-
- p_block = block_NewEmpty();
-
- p_block->pf_release = BlockRelease;
- p_block->pf_duplicate = BlockDuplicate;
- p_block->pf_modify = BlockModify;
- p_block->pf_realloc = BlockRealloc;
-
- /* that should be ok (no comunication between multiple p_vlc) */
- p_block->p_manager = VLC_OBJECT( p_obj->p_vlc );
-
- p_block->p_sys = p_sys = malloc( sizeof( block_sys_t ) );
- vlc_mutex_init( p_obj, &p_sys->lock );
-
- /* XXX align on 16 and add 32 prebuffer/posbuffer bytes */
- p_sys->i_allocated_buffer = i_size + 32 + 32 + 16;
- p_sys->p_allocated_buffer = malloc( p_sys->i_allocated_buffer );
- p_block->i_buffer = i_size;
- p_block->p_buffer = &p_sys->p_allocated_buffer[32+15-((long)p_sys->p_allocated_buffer % 16 )];
-
- p_sys->i_duplicated = 0;
- p_sys->b_modify = VLC_TRUE;
-