]> git.sesse.net Git - nageru/blobdiff - mixer.cpp
Add a metric for number of received frames per input, so that one can measure _actual...
[nageru] / mixer.cpp
index 89cfd5f06f1930298696d547b1d168b8276b001f..6ed62113ff4f775edfb3e110be77db8f7a136bf5 100644 (file)
--- a/mixer.cpp
+++ b/mixer.cpp
@@ -239,9 +239,9 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards)
          mixer_surface(create_surface(format)),
          h264_encoder_surface(create_surface(format)),
          decklink_output_surface(create_surface(format)),
-         ycbcr_interpretation(global_flags.ycbcr_interpretation),
          audio_mixer(num_cards)
 {
+       memcpy(ycbcr_interpretation, global_flags.ycbcr_interpretation, sizeof(ycbcr_interpretation));
        CHECK(init_movit(MOVIT_SHADER_DIR, MOVIT_DEBUG_OFF));
        check_error();
 
@@ -408,7 +408,7 @@ Mixer::Mixer(const QSurfaceFormat &format, unsigned num_cards)
        global_metrics.add("frames_output_dropped", &metric_frames_output_dropped);
        global_metrics.add("start_time_seconds", &metric_start_time_seconds, Metrics::TYPE_GAUGE);
        global_metrics.add("memory_used_bytes", &metrics_memory_used_bytes);
-       global_metrics.add("metrics_memory_locked_limit_bytes", &metrics_memory_locked_limit_bytes);
+       global_metrics.add("memory_locked_limit_bytes", &metrics_memory_locked_limit_bytes);
 }
 
 Mixer::~Mixer()
@@ -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;
@@ -979,7 +981,7 @@ void Mixer::thread_func()
 
                        printf("\n");
 
-                       metrics_memory_used_bytes = used.ru_maxrss;
+                       metrics_memory_used_bytes = used.ru_maxrss * 1024;
                }