Add statistics functions to outputs

Total bytes, total frames, and frames dropped.  Total frames is
generated automatically, but total bytes and total dropped frames are
returned via callbacks.
master
jp9000 2014-07-06 14:55:56 -07:00
parent 64074e9fda
commit 3d1c132989
3 changed files with 29 additions and 0 deletions

View File

@ -341,6 +341,27 @@ void obs_output_set_reconnect_settings(obs_output_t output,
output->reconnect_retry_sec = retry_sec;
}
uint64_t obs_output_get_total_bytes(obs_output_t output)
{
if (!output || !output->info.total_bytes)
return 0;
return output->info.total_bytes(output->context.data);
}
int obs_output_get_frames_dropped(obs_output_t output)
{
if (!output || !output->info.dropped_frames)
return 0;
return output->info.dropped_frames(output->context.data);
}
int obs_output_get_total_frames(obs_output_t output)
{
return output ? output->total_frames : 0;
}
void obs_output_set_video_conversion(obs_output_t output,
const struct video_scale_info *conversion)
{

View File

@ -52,6 +52,10 @@ struct obs_output_info {
obs_properties_t (*properties)(void);
void (*pause)(void *data);
uint64_t (*total_bytes)(void *data);
int (*dropped_frames)(void *data);
};
EXPORT void obs_register_output_s(const struct obs_output_info *info,

View File

@ -855,6 +855,10 @@ EXPORT obs_service_t obs_output_get_service(obs_output_t output);
EXPORT void obs_output_set_reconnect_settings(obs_output_t output,
int retry_count, int retry_sec);
EXPORT uint64_t obs_output_get_total_bytes(obs_output_t output);
EXPORT int obs_output_get_frames_dropped(obs_output_t output);
EXPORT int obs_output_get_total_frames(obs_output_t output);
/* ------------------------------------------------------------------------- */
/* Functions used by outputs */