Skip to content

Commit 04ed4d8

Browse files
committed
Make clockoverlay element optional
1 parent 67470ca commit 04ed4d8

File tree

1 file changed

+20
-6
lines changed

1 file changed

+20
-6
lines changed

samples/kvssink_intermittent_sample.cpp

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,7 @@ int main(int argc, char *argv[]) {
207207
StreamSource source_type;
208208
char stream_name[MAX_STREAM_NAME_LEN + 1] = {0};
209209
GstStateChangeReturn gst_state_change_ret;
210+
gboolean link_success = FALSE;
210211

211212
int runtime_duration_seconds = DEFAULT_SAMPLE_DURATION_SECONDS;
212213

@@ -267,9 +268,14 @@ int main(int argc, char *argv[]) {
267268
source = gst_element_factory_make("autovideosrc", KVS_GST_DEVICE_SOURCE_NAME);
268269
}
269270

270-
/* clock overlay */
271+
/* clock overlay (optional) */
271272
clock_overlay = gst_element_factory_make("clockoverlay", "clock_overlay");
272-
g_object_set(G_OBJECT(clock_overlay), "time-format", "%a %B %d, %Y %I:%M:%S %p", NULL);
273+
if (clock_overlay) {
274+
g_object_set(G_OBJECT(clock_overlay), "time-format", "%a %B %d, %Y %I:%M:%S %p", NULL);
275+
} else {
276+
// Ubuntu WSL CI runner does not have the clockoverlay element.
277+
LOG_WARN("[KVS sample] Clock overlay element not available, will construct gstreamer pipeline without it.");
278+
}
273279

274280
/* video convert */
275281
video_convert = gst_element_factory_make("videoconvert", "video_convert");
@@ -308,7 +314,6 @@ int main(int argc, char *argv[]) {
308314
/* Check that GStreamer elements were all successfully created */
309315
if (!check_element(pipeline, "pipeline") ||
310316
!check_element(source, "source") ||
311-
!check_element(clock_overlay, "clock_overlay") ||
312317
!check_element(video_convert, "video_convert") ||
313318
!check_element(source_filter, "source_filter") ||
314319
!check_element(encoder, "encoder") ||
@@ -327,11 +332,20 @@ int main(int argc, char *argv[]) {
327332
gst_object_unref(bus);
328333

329334
// Add elements into the pipeline.
330-
gst_bin_add_many(GST_BIN(pipeline),
331-
source, clock_overlay, video_convert, source_filter, encoder, sink_filter, kvssink, NULL);
335+
gst_bin_add_many(GST_BIN(pipeline), source, video_convert, source_filter, encoder, sink_filter, kvssink, NULL);
336+
if (clock_overlay) {
337+
gst_bin_add(GST_BIN(pipeline), clock_overlay);
338+
}
332339

333340
// Link the elements together.
334-
if (!gst_element_link_many(source, clock_overlay, video_convert, source_filter, encoder, sink_filter, kvssink, NULL)) {
341+
if (clock_overlay) {
342+
link_success = gst_element_link_many(source, clock_overlay, video_convert, source_filter,
343+
encoder, sink_filter, kvssink, NULL);
344+
} else {
345+
link_success = gst_element_link_many(source, video_convert, source_filter,
346+
encoder, sink_filter, kvssink, NULL);
347+
}
348+
if (!link_success) {
335349
LOG_ERROR("[KVS sample] Elements could not be linked.");
336350
gst_object_unref(pipeline);
337351
return -1;

0 commit comments

Comments
 (0)