struct bt_message_packet *message = NULL;
struct bt_stream *stream;
struct bt_stream_class *stream_class;
+ bool packet_has_default_clock_snapshot;
BT_ASSERT(msg_iter);
BT_ASSERT_PRE_NON_NULL(packet, "Packet");
BT_ASSERT(stream);
stream_class = bt_stream_borrow_class(stream);
BT_ASSERT(stream_class);
- BT_ASSERT_PRE((with_cs && stream_class->default_clock_class) ||
- (!with_cs && !stream_class->default_clock_class),
- "Creating a packet message with a default clock snapshot, but without "
- "a default clock class, or without a default clock snapshot, "
- "but with a default clock class: ",
+
+ if (pool == &msg_iter->graph->packet_begin_msg_pool) {
+ packet_has_default_clock_snapshot =
+ stream_class->packets_have_beginning_default_clock_snapshot;
+ } else {
+ packet_has_default_clock_snapshot =
+ stream_class->packets_have_end_default_clock_snapshot;
+ }
+
+ /*
+ * `packet_has_default_clock_snapshot` implies that the stream
+ * class has a default clock class (precondition).
+ */
+ BT_ASSERT_PRE((with_cs && packet_has_default_clock_snapshot) ||
+ (!with_cs && !packet_has_default_clock_snapshot),
+ "Unexpected stream class configuration when creating "
+ "a packet beginning or end message: ",
"%![stream-]+s, %![sc-]+S, with-cs=%d, "
"cs-val=%" PRIu64,
stream, stream_class, with_cs, raw_value);