+ /* */
+ if( p_owner->buffer.p_block )
+ {
+ p_sout_block = p_owner->buffer.p_block;
+
+ p_owner->buffer.p_block = p_sout_block->p_next;
+ p_owner->buffer.i_count--;
+
+ b_has_more = p_owner->buffer.p_block != NULL;
+ if( !b_has_more )
+ p_owner->buffer.pp_block_next = &p_owner->buffer.p_block;
+ }
+
+ DecoderFixTs( p_dec, &p_sout_block->i_dts, &p_sout_block->i_pts,
+ &p_sout_block->i_length,
+ &p_sout_block->i_rate, NULL, b_telx );
+
+ vlc_mutex_unlock( &p_owner->lock );
+
+ if( !b_reject )
+ sout_InputSendBuffer( p_owner->p_sout_input, p_sout_block );
+ else
+ block_Release( p_sout_block );
+
+ if( !b_has_more )
+ break;
+ vlc_mutex_lock( &p_owner->lock );
+ if( !p_owner->buffer.p_block )
+ {
+ vlc_mutex_unlock( &p_owner->lock );
+ break;
+ }
+ }