]> git.sesse.net Git - nageru/commitdiff
Add a metric for number of received frames per input, so that one can measure _actual...
authorSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 17 Jun 2017 16:51:01 +0000 (18:51 +0200)
committerSteinar H. Gunderson <sgunderson@bigfoot.com>
Sat, 17 Jun 2017 16:51:01 +0000 (18:51 +0200)
mixer.cpp
mixer.h

index 07726bd8f1243ccde50e301ef26c4e96dddd1035..6ed62113ff4f775edfb3e110be77db8f7a136bf5 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
@@ -495,6 +495,7 @@ void Mixer::configure_card(unsigned card_index, CaptureInterface *capture, CardT
                assert(false);
        }
        card->queue_length_policy.register_metrics(labels);
+       global_metrics.add("input_received_frames", labels, &card->metric_input_received_frames);
        global_metrics.add("input_dropped_frames_jitter", labels, &card->metric_input_dropped_frames_jitter);
        global_metrics.add("input_dropped_frames_error", labels, &card->metric_input_dropped_frames_error);
        global_metrics.add("input_dropped_frames_resets", labels, &card->metric_input_resets);
@@ -572,6 +573,7 @@ void Mixer::bm_frame(unsigned card_index, uint16_t timecode,
        DeviceSpec device{InputSourceType::CAPTURE_CARD, card_index};
        CaptureCard *card = &cards[card_index];
 
+       ++card->metric_input_received_frames;
        card->metric_input_has_signal_bool = video_format.has_signal;
        card->metric_input_is_connected_bool = video_format.is_connected;
        card->metric_input_interlaced_bool = video_format.interlaced;
diff --git a/mixer.h b/mixer.h
index 8504d5eb4bb9d6a56d8b68dd2ab04464b0bcecfd..e142a76e8789fad9604fc47d6167e8d3f9eee46e 100644 (file)
--- a/mixer.h
+++ b/mixer.h
@@ -455,6 +455,7 @@ private:
                int last_timecode = -1;  // Unwrapped.
 
                // Metrics.
+               std::atomic<int64_t> metric_input_received_frames{0};
                std::atomic<int64_t> metric_input_dropped_frames_jitter{0};
                std::atomic<int64_t> metric_input_dropped_frames_error{0};
                std::atomic<int64_t> metric_input_resets{0};