@@ -256,17 +256,17 @@ void determine_credentials(GstElement *kvssink, CustomData *data) {
256256 nullptr != (private_key_path = getenv (" PRIVATE_KEY_PATH" )) &&
257257 nullptr != (role_alias = getenv (" ROLE_ALIAS" )) &&
258258 nullptr != (ca_cert_path = getenv (" CA_CERT_PATH" ))) {
259- // set the IoT Credentials if provided in envvar
260- GstStructure *iot_credentials = gst_structure_new (
261- " iot-certificate" ,
262- " iot-thing-name" , G_TYPE_STRING, data->stream_name ,
263- " endpoint" , G_TYPE_STRING, iot_credential_endpoint,
264- " cert-path" , G_TYPE_STRING, cert_path,
265- " key-path" , G_TYPE_STRING, private_key_path,
266- " ca-path" , G_TYPE_STRING, ca_cert_path,
267- " role-aliases" , G_TYPE_STRING, role_alias, NULL );
268-
269- g_object_set (G_OBJECT (kvssink), " iot-certificate" , iot_credentials, NULL );
259+ // set the IoT Credentials if provided in envvar
260+ GstStructure *iot_credentials = gst_structure_new (
261+ " iot-certificate" ,
262+ " iot-thing-name" , G_TYPE_STRING, data->stream_name ,
263+ " endpoint" , G_TYPE_STRING, iot_credential_endpoint,
264+ " cert-path" , G_TYPE_STRING, cert_path,
265+ " key-path" , G_TYPE_STRING, private_key_path,
266+ " ca-path" , G_TYPE_STRING, ca_cert_path,
267+ " role-aliases" , G_TYPE_STRING, role_alias, NULL );
268+
269+ g_object_set (G_OBJECT (kvssink), " iot-certificate" , iot_credentials, NULL );
270270 gst_structure_free (iot_credentials);
271271 // kvssink will search for long term credentials in envvar automatically so no need to include here
272272 // if no long credentials or IoT credentials provided will look for credential file as last resort
@@ -418,7 +418,7 @@ int gstreamer_live_source_init(int argc, char *argv[], CustomData *data, GstElem
418418 LOG_DEBUG (" Streaming with live source and width: " << width << " , height: " << height << " , fps: " << framerate
419419 << " , bitrateInKBPS" << bitrateInKBPS);
420420
421- GstElement *source_filter, *filter, *h264parse, *encoder, *source, *video_convert;
421+ GstElement *source_filter, *filter, *kvssink, * h264parse, *encoder, *source, *video_convert;
422422
423423 /* create the elements */
424424 source_filter = gst_element_factory_make (" capsfilter" , " source_filter" );
@@ -431,6 +431,11 @@ int gstreamer_live_source_init(int argc, char *argv[], CustomData *data, GstElem
431431 LOG_ERROR (" Failed to create capsfilter (2)" );
432432 return 1 ;
433433 }
434+ kvssink = gst_element_factory_make (" kvssink" , " kvssink" );
435+ if (!kvssink) {
436+ LOG_ERROR (" Failed to create kvssink" );
437+ return 1 ;
438+ }
434439 h264parse = gst_element_factory_make (" h264parse" , " h264parse" ); // needed to enforce avc stream format
435440 if (!h264parse) {
436441 LOG_ERROR (" Failed to create h264parse" );
@@ -625,7 +630,7 @@ int gstreamer_live_source_init(int argc, char *argv[], CustomData *data, GstElem
625630 return 0 ;
626631}
627632
628- int gstreamer_rtsp_source_init (int argc, char *argv[], CustomData *data, GstElement *pipeline, GstElement *kvssink ) {
633+ int gstreamer_rtsp_source_init (int argc, char *argv[], CustomData *data, GstElement *pipeline) {
629634 // process runtime if provided
630635 if (argc == 5 ){
631636 if ((0 == STRCMPI (argv[3 ], " -runtime" )) ||
@@ -637,9 +642,10 @@ int gstreamer_rtsp_source_init(int argc, char *argv[], CustomData *data, GstElem
637642 }
638643 }
639644 }
640- GstElement *filter, *depay, *source, *h264parse;
645+ GstElement *filter, *kvssink, * depay, *source, *h264parse;
641646
642647 filter = gst_element_factory_make (" capsfilter" , " filter" );
648+ kvssink = gst_element_factory_make (" kvssink" , " kvssink" );
643649 depay = gst_element_factory_make (" rtph264depay" , " depay" );
644650 source = gst_element_factory_make (" rtspsrc" , " source" );
645651 h264parse = gst_element_factory_make (" h264parse" , " h264parse" );
@@ -687,13 +693,14 @@ int gstreamer_rtsp_source_init(int argc, char *argv[], CustomData *data, GstElem
687693 return 0 ;
688694}
689695
690- int gstreamer_file_source_init (CustomData *data, GstElement *pipeline, GstElement *kvssink ) {
696+ int gstreamer_file_source_init (CustomData *data, GstElement *pipeline) {
691697
692698 GstElement *demux, *filesrc, *h264parse, *filter, *queue;
693699 string file_suffix;
694700 string file_path = data->file_list .at (data->current_file_idx ).path ;
695701
696702 filter = gst_element_factory_make (" capsfilter" , " filter" );
703+ kvssink = gst_element_factory_make (" kvssink" , " kvssink" );
697704 filesrc = gst_element_factory_make (" filesrc" , " filesrc" );
698705 h264parse = gst_element_factory_make (" h264parse" , " h264parse" );
699706 queue = gst_element_factory_make (" queue" , " queue" );
@@ -763,34 +770,28 @@ int gstreamer_init(int argc, char *argv[], CustomData *data) {
763770 /* init GStreamer */
764771 gst_init (&argc, &argv);
765772
766- GstElement *pipeline, *kvssink ;
773+ GstElement *pipeline;
767774 int ret;
768775 GstStateChangeReturn gst_ret;
769776
770777 // Reset first frame pts
771778 data->first_pts = GST_CLOCK_TIME_NONE;
772779
773- kvssink = gst_element_factory_make (" kvssink" , " kvssink" );
774- if (!kvssink) {
775- LOG_ERROR (" Failed to create kvssink" );
776- return 1 ;
777- }
778-
779780 switch (data->streamSource ) {
780781 case LIVE_SOURCE:
781782 LOG_INFO (" Streaming from live source" );
782783 pipeline = gst_pipeline_new (" live-kinesis-pipeline" );
783- ret = gstreamer_live_source_init (argc, argv, data, pipeline, kvssink );
784+ ret = gstreamer_live_source_init (argc, argv, data, pipeline);
784785 break ;
785786 case RTSP_SOURCE:
786787 LOG_INFO (" Streaming from rtsp source" );
787788 pipeline = gst_pipeline_new (" rtsp-kinesis-pipeline" );
788- ret = gstreamer_rtsp_source_init (argc, argv, data, pipeline, kvssink );
789+ ret = gstreamer_rtsp_source_init (argc, argv, data, pipeline);
789790 break ;
790791 case FILE_SOURCE:
791792 LOG_INFO (" Streaming from file source" );
792793 pipeline = gst_pipeline_new (" file-kinesis-pipeline" );
793- ret = gstreamer_file_source_init (data, pipeline, kvssink );
794+ ret = gstreamer_file_source_init (data, pipeline);
794795 break ;
795796 }
796797
0 commit comments