Merge pull request #950 from Xaymar/patch_fix-log-stats
libobs: Fix an int underflow in log_frame_infomaster
commit
35474f5b72
|
@ -283,26 +283,33 @@ static void log_frame_info(struct obs_output *output)
|
|||
{
|
||||
struct obs_core_video *video = &obs->video;
|
||||
|
||||
uint32_t video_frames = video_output_get_total_frames(output->video);
|
||||
uint32_t encoded_frames = video_output_get_total_frames(output->video);
|
||||
|
||||
uint32_t total = video_frames - output->starting_frame_count;
|
||||
int64_t encoded_temp = (int64_t)encoded_frames
|
||||
- (int64_t)output->starting_frame_count;
|
||||
uint32_t encoded = encoded_temp > 0 ? (uint32_t)encoded_temp : 0;
|
||||
|
||||
uint32_t drawn = video->total_frames - output->starting_drawn_count;
|
||||
uint32_t lagged = video->lagged_frames - output->starting_lagged_count;
|
||||
int64_t drawn_temp = (int64_t)video->total_frames
|
||||
- (int64_t)output->starting_drawn_count;
|
||||
uint32_t drawn = drawn_temp > 0 ? (uint32_t)drawn_temp : 0;
|
||||
|
||||
int64_t lagged_temp = (int64_t)video->total_frames
|
||||
- (int64_t)output->starting_lagged_count;
|
||||
uint32_t lagged = lagged_temp > 0 ? (uint32_t)lagged_temp : 0;
|
||||
|
||||
int dropped = obs_output_get_frames_dropped(output);
|
||||
|
||||
double percentage_lagged = 0.0f;
|
||||
double percentage_dropped = 0.0f;
|
||||
|
||||
if (total)
|
||||
percentage_dropped = (double)dropped / (double)total * 100.0;
|
||||
if (encoded)
|
||||
percentage_dropped = (double)dropped / (double)encoded * 100.0;
|
||||
if (drawn)
|
||||
percentage_lagged = (double)lagged / (double)drawn * 100.0;
|
||||
|
||||
blog(LOG_INFO, "Output '%s': stopping", output->context.name);
|
||||
blog(LOG_INFO, "Output '%s': Total encoded frames: %"PRIu32,
|
||||
output->context.name, total);
|
||||
output->context.name, encoded);
|
||||
blog(LOG_INFO, "Output '%s': Total drawn frames: %"PRIu32,
|
||||
output->context.name, drawn);
|
||||
|
||||
|
@ -311,7 +318,7 @@ static void log_frame_info(struct obs_output *output)
|
|||
"to rendering lag/stalls: %"PRIu32" (%0.1f%%)",
|
||||
output->context.name,
|
||||
lagged, percentage_lagged);
|
||||
if (total && dropped)
|
||||
if (encoded && dropped)
|
||||
blog(LOG_INFO, "Output '%s': Number of dropped frames due "
|
||||
"to insufficient bandwidth/connection stalls: "
|
||||
"%d (%0.1f%%)",
|
||||
|
|
Loading…
Reference in New Issue