+ g_free(basename);
+ goto append_ids;
+ }
+
+ if (stream->stream_class->name &&
+ stream->stream_class->name->len > 0) {
+ /* Use stream class name's base name as prefix */
+ gchar *basename =
+ g_path_get_basename(stream->stream_class->name->str);
+
+ assert(basename);
+
+ if (strcmp(basename, G_DIR_SEPARATOR_S) == 0) {
+ g_string_assign(filename, "stream");
+ } else {
+ g_string_assign(filename, basename);
+ }
+
+ g_free(basename);
+ goto append_ids;
+ }
+
+ /* Default to using `stream-` as prefix */
+ g_string_assign(filename, "stream");
+
+append_ids:
+ stream_class_id = bt_ctf_stream_class_get_id(stream->stream_class);
+ assert(stream_class_id >= 0);
+ assert(stream->id >= 0);
+ g_string_append_printf(filename, "-%" PRId64 "-%" PRId64,
+ stream_class_id, stream->id);
+
+ file_path = g_build_filename(writer->path->str, filename->str, NULL);
+ if (file_path == NULL) {
+ fd = -1;
+ goto end;