- struct bt_message_stream_beginning *message;
- struct bt_stream_class *stream_class;
-
- BT_ASSERT_PRE_NON_NULL(self_msg_iter, "Message iterator");
- BT_ASSERT_PRE_NON_NULL(stream, "Stream");
- stream_class = bt_stream_borrow_class(stream);
- BT_ASSERT(stream_class);
- BT_LIB_LOGD("Creating stream beginning message object: "
- "%![stream-]+s, %![sc-]+S", stream, stream_class);
- message = g_new0(struct bt_message_stream_beginning, 1);
- if (!message) {
- BT_LOGE_STR("Failed to allocate one stream beginning message.");
- goto error;
- }
-
- bt_message_init(&message->parent,
- BT_MESSAGE_TYPE_STREAM_BEGINNING,
- bt_message_stream_beginning_destroy, NULL);
- message->stream = stream;
- bt_object_get_no_null_check(message->stream);
- BT_LIB_LOGD("Created stream beginning message object: "
- "%![msg-]+n, %![stream-]+s, %![sc-]+S", message,
- stream, stream_class);
- return (void *) &message->parent;
-error:
- return NULL;
+ BT_ASSERT_PRE_NON_NULL(message, "Message");
+ BT_ASSERT_PRE_MSG_IS_TYPE(message, BT_MESSAGE_TYPE_STREAM_BEGINNING);
+ return borrow_stream_message_stream(message);