* want to add more logic, just force file by file:// or code it ;)
*/
memset( &p_input->counters, 0, sizeof( p_input->counters ) );
+ vlc_mutex_init( p_input, &p_input->counters.counters_lock );
+
if( !p_input->b_preparsing )
{
/* Prepare statistics */
if( p_input->counters.p_input_bitrate )
p_input->counters.p_input_bitrate->update_interval = 1000000;
}
- vlc_mutex_init( p_input, &p_input->counters.counters_lock );
/* handle sout */
psz = var_GetString( p_input, "sout" );
p_input->p_libvlc->p_playlist->p_stats );
p_input->p_libvlc->p_playlist->p_stats_computer = NULL;
}
- vlc_mutex_lock( &p_input->counters.counters_lock );
CL_CO( read_bytes );
CL_CO( read_packets );
CL_CO( demux_read );
CL_CO( decoded_audio) ;
CL_CO( decoded_video );
CL_CO( decoded_sub) ;
- vlc_mutex_unlock( &p_input->counters.counters_lock );
}
/* Close optional stream output instance */
{
vlc_value_t keep;
- vlc_mutex_lock( &p_input->counters.counters_lock );
CL_CO( sout_sent_packets );
CL_CO( sout_sent_bytes );
CL_CO( sout_send_bitrate );
- vlc_mutex_unlock( &p_input->counters.counters_lock );
if( var_Get( p_input, "sout-keep", &keep ) >= 0 && keep.b_bool )
{
sout_DeleteInstance( p_input->p_sout );
}
}
-
#undef CL_CO
+
+ vlc_mutex_destroy( &p_input->counters.counters_lock );
+
/* Tell we're dead */
p_input->b_dead = VLC_TRUE;
}