Privatize input stats internals

Those were never used from plugins. This commit is a no-brainer.
This commit is contained in:
Rémi Denis-Courmont 2009-02-28 19:38:25 +02:00
parent 2f1189df0a
commit 1793ca880e
4 changed files with 106 additions and 109 deletions

View File

@ -210,4 +210,41 @@ VLC_EXPORT( input_item_t *, __input_item_NewExt, (vlc_object_t *, const char *ps
*/
#define input_item_New( a,b,c ) input_item_NewExt( a, b, c, 0, NULL, 0, -1 )
/******************
* Input stats
******************/
struct input_stats_t
{
vlc_mutex_t lock;
/* Input */
int i_read_packets;
int i_read_bytes;
float f_input_bitrate;
float f_average_input_bitrate;
/* Demux */
int i_demux_read_packets;
int i_demux_read_bytes;
float f_demux_bitrate;
float f_average_demux_bitrate;
/* Decoders */
int i_decoded_audio;
int i_decoded_video;
/* Vout */
int i_displayed_pictures;
int i_lost_pictures;
/* Sout */
int i_sent_packets;
int i_sent_bytes;
float f_send_bitrate;
/* Aout */
int i_played_abuffers;
int i_lost_abuffers;
};
#endif

View File

@ -197,108 +197,6 @@ enum
STATS_TIMER_SKINS_PLAYTREE_IMAGE,
};
#define stats_Update(a,b,c) __stats_Update( VLC_OBJECT(a), b, c )
VLC_EXPORT( int, __stats_Update, (vlc_object_t*, counter_t *, vlc_value_t, vlc_value_t *) );
#define stats_CounterCreate(a,b,c) __stats_CounterCreate( VLC_OBJECT(a), b, c )
VLC_EXPORT( counter_t *, __stats_CounterCreate, (vlc_object_t*, int, int) );
#define stats_Get(a,b,c) __stats_Get( VLC_OBJECT(a), b, c)
VLC_EXPORT( int, __stats_Get, (vlc_object_t*, counter_t *, vlc_value_t*) );
VLC_EXPORT (void, stats_CounterClean, (counter_t * ) );
#define stats_GetInteger(a,b,c) __stats_GetInteger( VLC_OBJECT(a), b, c )
static inline int __stats_GetInteger( vlc_object_t *p_obj, counter_t *p_counter,
int *value )
{
int i_ret;
vlc_value_t val; val.i_int = 0;
if( !p_counter ) return VLC_EGENERIC;
i_ret = __stats_Get( p_obj, p_counter, &val );
*value = val.i_int;
return i_ret;
}
#define stats_GetFloat(a,b,c) __stats_GetFloat( VLC_OBJECT(a), b, c )
static inline int __stats_GetFloat( vlc_object_t *p_obj, counter_t *p_counter,
float *value )
{
int i_ret;
vlc_value_t val; val.f_float = 0.0;
if( !p_counter ) return VLC_EGENERIC;
i_ret = __stats_Get( p_obj, p_counter, &val );
*value = val.f_float;
return i_ret;
}
#define stats_UpdateInteger(a,b,c,d) __stats_UpdateInteger( VLC_OBJECT(a),b,c,d )
static inline int __stats_UpdateInteger( vlc_object_t *p_obj,counter_t *p_co,
int i, int *pi_new )
{
int i_ret;
vlc_value_t val;
vlc_value_t new_val; new_val.i_int = 0;
if( !p_co ) return VLC_EGENERIC;
val.i_int = i;
i_ret = __stats_Update( p_obj, p_co, val, &new_val );
if( pi_new )
*pi_new = new_val.i_int;
return i_ret;
}
#define stats_UpdateFloat(a,b,c,d) __stats_UpdateFloat( VLC_OBJECT(a),b,c,d )
static inline int __stats_UpdateFloat( vlc_object_t *p_obj, counter_t *p_co,
float f, float *pf_new )
{
vlc_value_t val;
int i_ret;
vlc_value_t new_val;new_val.f_float = 0.0;
if( !p_co ) return VLC_EGENERIC;
val.f_float = f;
i_ret = __stats_Update( p_obj, p_co, val, &new_val );
if( pf_new )
*pf_new = new_val.f_float;
return i_ret;
}
/******************
* Input stats
******************/
struct input_stats_t
{
vlc_mutex_t lock;
/* Input */
int i_read_packets;
int i_read_bytes;
float f_input_bitrate;
float f_average_input_bitrate;
/* Demux */
int i_demux_read_packets;
int i_demux_read_bytes;
float f_demux_bitrate;
float f_average_demux_bitrate;
/* Decoders */
int i_decoded_audio;
int i_decoded_video;
/* Vout */
int i_displayed_pictures;
int i_lost_pictures;
/* Sout */
int i_sent_packets;
int i_sent_bytes;
float f_send_bitrate;
/* Aout */
int i_played_abuffers;
int i_lost_abuffers;
};
VLC_EXPORT( void, stats_ComputeInputStats, (input_thread_t*, input_stats_t*) );
VLC_EXPORT( void, stats_ReinitInputStats, (input_stats_t *) );
VLC_EXPORT( void, stats_DumpInputStats, (input_stats_t *) );
/*********
* Timing
********/

View File

@ -250,6 +250,75 @@ extern const size_t libvlc_config_count;
*/
void var_OptionParse (vlc_object_t *, const char *, bool trusted);
/*
* Stats stuff
*/
#define stats_Update(a,b,c) __stats_Update( VLC_OBJECT(a), b, c )
int __stats_Update (vlc_object_t*, counter_t *, vlc_value_t, vlc_value_t *);
#define stats_CounterCreate(a,b,c) __stats_CounterCreate( VLC_OBJECT(a), b, c )
counter_t * __stats_CounterCreate (vlc_object_t*, int, int);
#define stats_Get(a,b,c) __stats_Get( VLC_OBJECT(a), b, c)
int __stats_Get (vlc_object_t*, counter_t *, vlc_value_t*);
void stats_CounterClean (counter_t * );
#define stats_GetInteger(a,b,c) __stats_GetInteger( VLC_OBJECT(a), b, c )
static inline int __stats_GetInteger( vlc_object_t *p_obj, counter_t *p_counter,
int *value )
{
int i_ret;
vlc_value_t val; val.i_int = 0;
if( !p_counter ) return VLC_EGENERIC;
i_ret = __stats_Get( p_obj, p_counter, &val );
*value = val.i_int;
return i_ret;
}
#define stats_GetFloat(a,b,c) __stats_GetFloat( VLC_OBJECT(a), b, c )
static inline int __stats_GetFloat( vlc_object_t *p_obj, counter_t *p_counter,
float *value )
{
int i_ret;
vlc_value_t val; val.f_float = 0.0;
if( !p_counter ) return VLC_EGENERIC;
i_ret = __stats_Get( p_obj, p_counter, &val );
*value = val.f_float;
return i_ret;
}
#define stats_UpdateInteger(a,b,c,d) __stats_UpdateInteger( VLC_OBJECT(a),b,c,d )
static inline int __stats_UpdateInteger( vlc_object_t *p_obj,counter_t *p_co,
int i, int *pi_new )
{
int i_ret;
vlc_value_t val;
vlc_value_t new_val; new_val.i_int = 0;
if( !p_co ) return VLC_EGENERIC;
val.i_int = i;
i_ret = __stats_Update( p_obj, p_co, val, &new_val );
if( pi_new )
*pi_new = new_val.i_int;
return i_ret;
}
#define stats_UpdateFloat(a,b,c,d) __stats_UpdateFloat( VLC_OBJECT(a),b,c,d )
static inline int __stats_UpdateFloat( vlc_object_t *p_obj, counter_t *p_co,
float f, float *pf_new )
{
vlc_value_t val;
int i_ret;
vlc_value_t new_val;new_val.f_float = 0.0;
if( !p_co ) return VLC_EGENERIC;
val.f_float = f;
i_ret = __stats_Update( p_obj, p_co, val, &new_val );
if( pf_new )
*pf_new = new_val.f_float;
return i_ret;
}
VLC_EXPORT( void, stats_ComputeInputStats, (input_thread_t*, input_stats_t*) );
VLC_EXPORT( void, stats_ReinitInputStats, (input_stats_t *) );
VLC_EXPORT( void, stats_DumpInputStats, (input_stats_t *) );
/*
* Replacement functions
*/

View File

@ -343,19 +343,12 @@ spu_DisplaySubpicture
spu_Init
spu_RenderSubpictures
spu_SortSubpictures
stats_ComputeInputStats
stats_CounterClean
__stats_CounterCreate
stats_DumpInputStats
__stats_Get
stats_ReinitInputStats
__stats_TimerClean
__stats_TimerDump
__stats_TimersCleanAll
__stats_TimersDumpAll
__stats_TimerStart
__stats_TimerStop
__stats_Update
stream_Block
stream_Control
stream_Delete