Please provide complete information as applicable to your setup.
• Hardware Platform (GPU)
• DeepStream Version 6.1
I put a callback for queue (urisrc → queue → nvvidconv → capfilter → …) to check if queue is overrun
g_object_set (G_OBJECT (queue), "max-size-time", 2000000000, "leaky", 2, NULL); // 200ms
g_signal_connect (queue, "overrun", G_CALLBACK (queue_overrun_callback), this_bin);
// this is the callback
static void queue_overrun_callback (GstElement * queue, gpointer user_data) {
NvDsSrcBin* this_bin = (NvDsSrcBin*) user_data;
if (this_bin || this_bin->source_type == RTSP_SOURCE) {
app_logger->warn("[pipeline][%s][dqueue] Dqueue be overloaded", this_bin->source_id.c_str());
}
}
in just 1 second, I saw about 15 times the queue is overrun, camera fps is 15 and my pipeline is running with 5fps
My explanation:
Because my pipeline is not fast enough so frame in queue have to be waited until timeout then popped.
Am I right? Correct me If I am wrong please