block_t *p_block, *p_audio_block;
int i;
*out = NULL;
+ input_thread_t *p_input = NULL;
+
+ if( p_stream->p_parent->p_parent && p_stream->p_parent->p_parent->
+ i_object_type == VLC_OBJECT_INPUT )
+ p_input = (input_thread_t *)p_stream->p_parent->p_parent;
while( (p_audio_buf = id->p_decoder->pf_decode_audio( id->p_decoder,
&in )) )
{
- stats_UpdateInteger( p_stream->p_parent->p_parent, STATS_DECODED_AUDIO,
- 1, NULL );
+ if( p_input )
+ stats_UpdateInteger( p_input, p_input->counters.p_decoded_audio,
+ 1, NULL );
if( p_sys->b_master_sync )
{
mtime_t i_dts = date_Get( &id->interpolated_pts ) + 1;
int i_duplicate = 1, i;
picture_t *p_pic, *p_pic2 = NULL;
*out = NULL;
+ input_thread_t *p_input = NULL;
+ if( p_stream->p_parent->p_parent && p_stream->p_parent->p_parent->
+ i_object_type == VLC_OBJECT_INPUT )
+ p_input = (input_thread_t *)p_stream->p_parent->p_parent;
+
while( (p_pic = id->p_decoder->pf_decode_video( id->p_decoder, &in )) )
{
subpicture_t *p_subpic = 0;
- stats_UpdateInteger( p_stream->p_parent->p_parent, STATS_DECODED_VIDEO,
- 1, NULL );
+ if( p_input )
+ stats_UpdateInteger( p_input, p_input->counters.p_decoded_video,
+ 1, NULL );
if( p_stream->p_sout->i_out_pace_nocontrol && p_sys->b_hurry_up )
{
int __stats_Update( vlc_object_t *p_this, counter_t *p_counter,
vlc_value_t val, vlc_value_t *val_new )
{
- if( !p_this->p_libvlc->b_stats ) return VLC_EGENERIC;
+ if( !p_this->p_libvlc->b_stats || !p_counter ) return VLC_EGENERIC;
return CounterUpdate( p_this, p_counter, val, val_new );
}
*/
int __stats_Get( vlc_object_t *p_this, counter_t *p_counter, vlc_value_t *val )
{
- if( !p_this->p_libvlc->b_stats || p_counter->i_samples == 0 )
+ if( !p_this->p_libvlc->b_stats || !p_counter || p_counter->i_samples == 0 )
{
val->i_int = val->f_float = 0.0;
return VLC_EGENERIC;