int main (int argc, char *argv[]) { GstBus *bus = NULL; guint bus_watch_id; guint i, num_sources; guint tiler_rows, tiler_columns; guint pgie_batch_size; #ifdef PLATFORM_TEGRA GstElement *nvtransform; #endif num_sources = 1; /* Standard GStreamer initialization */ gst_init (&argc, &argv); loop = g_main_loop_new (NULL, FALSE); g_mutex_init (&eos_lock); /* Create gstreamer elements */ /* Create Pipeline element that will form a connection of other elements */ pipeline = gst_pipeline_new ("dstest-pipeline"); streammux = gst_element_factory_make ("nvstreammux", "stream-muxer"); streamdemux = gst_element_factory_make("nvstreamdemux", "demuxer"); if (!pipeline || !streammux || !streamdemux) { g_printerr ("One element could not be created. Exiting.\n"); return -1; } gst_bin_add_many(GST_BIN(pipeline), streammux, streamdemux,NULL); g_object_set (G_OBJECT (streammux), "live-source", 1, NULL); g_object_set (G_OBJECT (streammux), "batched-push-timeout", 2500000, NULL); g_object_set (G_OBJECT (streammux), "batch-size", 10, NULL); g_object_set (G_OBJECT (streammux), "width", MUXER_OUTPUT_WIDTH, "height",MUXER_OUTPUT_HEIGHT, NULL); SET_GPU_ID (streammux, GPU_ID); g_source_bin_list = g_malloc0 (sizeof (GstElement *) * MAX_NUM_SOURCES); /* Inital create the input source */ g_print("\nEnter the Source_ID: "); // source_id g_print("\nEnter the Source_Uri: "); // uri g_print("\nSource_ID = %d --- Source_URI = %s \n\n",source_id,uri); GstElement *source_bin = create_uridecode_bin (source_id,uri); if (!source_bin) { g_printerr ("Failed to create source bin. Exiting.\n"); return -1; } g_source_bin_list[source_id] = source_bin; gst_bin_add (GST_BIN (pipeline), source_bin); g_num_sources = num_sources; /* Creating Element_Facctory_Make */ for (i=0; i