- /* FIXME we could avoid that
- * we just need to create a new p_sys with new mem FIXME */
- p_mod = __BlockDupContent( p_block );
- vlc_mutex_unlock( &p_block->p_sys->lock );
-
- BlockRelease( p_block );
-
- return p_mod;
-}
-static block_t *BlockDuplicate( block_t *p_block )
-{
- block_t *p_dup;
-
- vlc_mutex_lock( &p_block->p_sys->lock );
- if( !p_block->p_sys->b_modify )
- {
- p_block->p_sys->i_duplicated++;
- vlc_mutex_unlock( &p_block->p_sys->lock );
- p_dup = block_NewEmpty();
- memcpy( p_dup, p_block, sizeof( block_t ) );
- p_dup->p_next = NULL;
- return p_dup;
- }
- p_dup = __BlockDupContent( p_block );
- vlc_mutex_unlock( &p_block->p_sys->lock );
-
- return p_dup;
-}
-
-static block_t *BlockRealloc( block_t *p_block, int i_prebody, int i_body )
-{
-
- vlc_mutex_lock( &p_block->p_sys->lock );
- if( i_prebody < 0 ||
- ( p_block->p_buffer - i_prebody > p_block->p_sys->p_allocated_buffer ) )
+ /* Adjust reserved header if there is enough room */
+ if( p_block->p_buffer - i_prebody > p_sys->p_allocated_buffer &&
+ p_block->p_buffer - i_prebody < p_sys->p_allocated_buffer +
+ p_sys->i_allocated_buffer )