|
@@ -388,8 +388,8 @@ void OBSBasicStats::Update()
|
|
|
/* ------------------------------------------- */
|
|
|
/* recording/streaming stats */
|
|
|
|
|
|
- outputLabels[0].Update(strOutput);
|
|
|
- outputLabels[1].Update(recOutput);
|
|
|
+ outputLabels[0].Update(strOutput, false);
|
|
|
+ outputLabels[1].Update(recOutput, true);
|
|
|
}
|
|
|
|
|
|
void OBSBasicStats::Reset()
|
|
@@ -411,15 +411,9 @@ void OBSBasicStats::Reset()
|
|
|
Update();
|
|
|
}
|
|
|
|
|
|
-void OBSBasicStats::OutputLabels::Update(obs_output_t *output)
|
|
|
+void OBSBasicStats::OutputLabels::Update(obs_output_t *output, bool rec)
|
|
|
{
|
|
|
- if (!output)
|
|
|
- return;
|
|
|
-
|
|
|
- const char *id = obs_obj_get_id(output);
|
|
|
- bool rec = strcmp(id, "rtmp_output") != 0;
|
|
|
-
|
|
|
- uint64_t totalBytes = obs_output_get_total_bytes(output);
|
|
|
+ uint64_t totalBytes = output ? obs_output_get_total_bytes(output) : 0;
|
|
|
uint64_t curTime = os_gettime_ns();
|
|
|
uint64_t bytesSent = totalBytes;
|
|
|
|
|
@@ -439,12 +433,17 @@ void OBSBasicStats::OutputLabels::Update(obs_output_t *output)
|
|
|
|
|
|
QString str = QTStr("Basic.Stats.Status.Inactive");
|
|
|
QString themeID;
|
|
|
+ bool active = output ? obs_output_active(output) : false;
|
|
|
if (rec) {
|
|
|
- if (obs_output_active(output))
|
|
|
+ if (active)
|
|
|
str = QTStr("Basic.Stats.Status.Recording");
|
|
|
} else {
|
|
|
- if (obs_output_active(output)) {
|
|
|
- if (obs_output_reconnecting(output)) {
|
|
|
+ if (active) {
|
|
|
+ bool reconnecting = output
|
|
|
+ ? obs_output_reconnecting(output)
|
|
|
+ : false;
|
|
|
+
|
|
|
+ if (reconnecting) {
|
|
|
str = QTStr("Basic.Stats.Status.Reconnecting");
|
|
|
themeID = "error";
|
|
|
} else {
|
|
@@ -465,8 +464,8 @@ void OBSBasicStats::OutputLabels::Update(obs_output_t *output)
|
|
|
QString("%1 kb/s").arg(QString::number(kbps, 'f', 0)));
|
|
|
|
|
|
if (!rec) {
|
|
|
- int total = obs_output_get_total_frames(output);
|
|
|
- int dropped = obs_output_get_frames_dropped(output);
|
|
|
+ int total = output ? obs_output_get_total_frames(output) : 0;
|
|
|
+ int dropped = output ? obs_output_get_frames_dropped(output) : 0;
|
|
|
|
|
|
if (total < first_total || dropped < first_dropped) {
|
|
|
first_total = 0;
|