網頁

2024年3月6日 星期三

deepstream create_pipeline.create_common_elements 分析

參考之前 https://yingrenn.blogspot.com/2023/03/deepstream-createpipeline.html

create_common_elements {
    common_elements.segvisual_bin = create_segvisual_bin
    common_elements.secondary_gie_bin = create_secondary_gie_bin {
        bin.sink - tee - queue - bin.src
        bin->sub_bins[] = create_secondary_gie {
            secondary_gie = nvinfer | nvinferserver
            if (is_parent || has_children) {
                queue
            }
            if (no_children) {
                queue - secondary_gie - fakesink
            } else {
                queue - secondary_gie - tee
            }
        }
        if (parent_index == -1) {
            tee - sub_bins[i].queue
        } else if (sub_bins[parent_index].tee) {
            sub_bins[parent_index].tee - sub_bins[i].queue
        } else {
            sub_bins[parent_index].secondary_gie - sub_bins[i].secondary_gie
        }
    }
    common_elements.secondary_preprocess_bin = create_secondary_preprocess_bin
    common_elements.dsanalytics_bin = create_dsanalytics_bin
    common_elements.tracker_bin = create_tracking_bin
    common_elements.primary_gie_bin = create_primary_gie_bin
    common_elements.preprocess_bin = create_preprocess_bin
    common_elements.msg_conv = gst_element_factory_make
    common_elements.tee = gst_element_factory_make
    
    sink_elem - preprocess_bin - primary_gie_bin - tracker_bin - dsanalytics_bin - secondary_preprocess_bin - secondary_gie_bin - segvisual_bin - msg_conv - tee - src_elem
}