@@ -1517,6 +1517,10 @@ init_track_data(GstKvsSink *kvssink) {
15171517 gchar *video_content_type = NULL , *audio_content_type = NULL ;
15181518 const gchar *media_type;
15191519
1520+ if (kvssink == NULL || kvssink->collect == NULL || kvssink->data == NULL ) {
1521+ LOG_AND_THROW (" Error initializing track data: kvssink, kvssink->collect, or kvssink->data is NULL." );
1522+ }
1523+
15201524 for (walk = kvssink->collect ->data ; walk != NULL ; walk = g_slist_next (walk)) {
15211525 GstKvsSinkTrackData *kvs_sink_track_data = (GstKvsSinkTrackData *) walk->data ;
15221526
@@ -1530,6 +1534,19 @@ init_track_data(GstKvsSink *kvssink) {
15301534
15311535 // extract media type from GstCaps to check whether it's h264 or h265
15321536 caps = gst_pad_get_allowed_caps (collect_data->pad );
1537+
1538+ if (caps == NULL ) {
1539+ LOG_AND_THROW (" Error, GStreamer pad returned NULL caps. Pad has no peer for stream: " << kvssink->stream_name );
1540+ }
1541+
1542+ if (gst_caps_is_empty (caps)) {
1543+ LOG_AND_THROW (" Error, GStreamer caps are empty for stream: " << kvssink->stream_name );
1544+ }
1545+
1546+ gchar *caps_str = gst_caps_to_string (caps);
1547+ LOG_INFO (" GStreamer caps: " << caps_str);
1548+ g_free (caps_str);
1549+
15331550 media_type = gst_structure_get_name (gst_caps_get_structure (caps, 0 ));
15341551 if (strncmp (media_type, GSTREAMER_MEDIA_TYPE_H264, MAX_GSTREAMER_MEDIA_TYPE_LEN) == 0 ) {
15351552 // default codec id is for h264 video.
@@ -1540,7 +1557,7 @@ init_track_data(GstKvsSink *kvssink) {
15401557 video_content_type = g_strdup (MKV_H265_CONTENT_TYPE);
15411558 } else {
15421559 // no-op, should result in a caps negotiation error before getting here.
1543- LOG_AND_THROW (" Error, media type " << media_type << " not accepted by kvssink" << " for " << kvssink->stream_name );
1560+ LOG_AND_THROW (" Error, media type " << media_type << " not accepted by kvssink" << " for " << kvssink->stream_name );
15441561 }
15451562 gst_caps_unref (caps);
15461563
@@ -1693,4 +1710,4 @@ GST_PLUGIN_DEFINE (
16931710 " Proprietary" ,
16941711 " GStreamer" ,
16951712 " http://gstreamer.net/"
1696- )
1713+ )
0 commit comments