sample pipeline
Hey, I got it working. This sample works fine.
I have observed this.
the above pipeline, processed a 1 hour video in 10 minutes. The Buffer PTS of last frame was equal to the Video Duration. This is what I want. And this is what above app is also doing.
The problem is coming when, I add this part of logic in my production code (which is a different pipeline, but same arch and runs video files), the Buffer PTS that is getting printed is basically, for how long the pipeline has been running.
pipeline, processed a 1 hour video in 10 minutes. The Buffer PTS of last frame was equal to 10 minutes. .
I am trying to understand what can be going wrong ?
following is how the streammux is configured.
set_streammux_properties (NvDsStreammuxConfig * config, GstElement * element)
{
gboolean ret = FALSE;
const gchar *new_mux_str = g_getenv ("USE_NEW_NVSTREAMMUX");
gboolean use_new_mux = !g_strcmp0 (new_mux_str, "yes");
if (!use_new_mux) {
g_object_set (G_OBJECT (element), "gpu-id", config->gpu_id, NULL);
g_object_set (G_OBJECT (element), "nvbuf-memory-type",
config->nvbuf_memory_type, NULL);
g_object_set (G_OBJECT (element), "live-source", config->live_source, NULL);
g_object_set (G_OBJECT (element),
"batched-push-timeout", config->batched_push_timeout, NULL);
g_object_set (G_OBJECT (element), "compute-hw", config->compute_hw, NULL);
if (config->buffer_pool_size >= 4) {
g_object_set (G_OBJECT (element),
"buffer-pool-size", config->buffer_pool_size, NULL);
}
g_object_set (G_OBJECT (element), "enable-padding",
config->enable_padding, NULL);
if (config->pipeline_width && config->pipeline_height) {
g_object_set (G_OBJECT (element), "width", config->pipeline_width, NULL);
g_object_set (G_OBJECT (element), "height",
config->pipeline_height, NULL);
}
if (!config->use_nvmultiurisrcbin) {
g_object_set (G_OBJECT (element), "async-process",
config->async_process, NULL);
}
}
if (config->batch_size && !config->use_nvmultiurisrcbin) {
g_object_set (G_OBJECT (element), "batch-size", config->batch_size, NULL);
}
g_object_set (G_OBJECT (element), "attach-sys-ts",
config->attach_sys_ts_as_ntp, NULL);
if (config->config_file_path) {
g_object_set (G_OBJECT (element),
"config-file-path", GET_FILE_PATH (config->config_file_path), NULL);
}
g_object_set (G_OBJECT (element), "frame-duration",
config->frame_duration, NULL);
g_object_set (G_OBJECT (element), "frame-num-reset-on-stream-reset",
config->frame_num_reset_on_stream_reset, NULL);
g_object_set (G_OBJECT (element), "sync-inputs", config->sync_inputs, NULL);
g_object_set (G_OBJECT (element), "max-latency", config->max_latency, NULL);
g_object_set (G_OBJECT (element), "frame-num-reset-on-eos",
config->frame_num_reset_on_eos, NULL);
g_object_set (G_OBJECT (element), "drop-pipeline-eos", config->no_pipeline_eos,
NULL);
if (config->extract_sei_type5_data) {
g_object_set (G_OBJECT (element), "extract-sei-type5-data", config->extract_sei_type5_data,
NULL);
}
if (config->num_surface_per_frame > 1) {
g_object_set (G_OBJECT (element), "num-surfaces-per-frame",
config->num_surface_per_frame, NULL);
}
ret = TRUE;
return ret;
}