core: Expose kMaxPreambleBytes from TracePacket

So that embedders can allocate a correctly sized buffer when stitching
all TracePacket slices together.

Change-Id: I6bb7ecf3b15223393af6d78a7d17580b23c88d25
diff --git a/include/perfetto/ext/tracing/core/trace_packet.h b/include/perfetto/ext/tracing/core/trace_packet.h
index d695165..452c5b3 100644
--- a/include/perfetto/ext/tracing/core/trace_packet.h
+++ b/include/perfetto/ext/tracing/core/trace_packet.h
@@ -46,6 +46,9 @@
   // The field id of protos::Trace::packet, static_assert()-ed in the unittest.
   static constexpr uint32_t kPacketFieldNumber = 1;
 
+  // Maximum size of the preamble returned by GetProtoPreamble().
+  static constexpr size_t kMaxPreambleBytes = 8;
+
   TracePacket();
   ~TracePacket();
   TracePacket(TracePacket&&) noexcept;
@@ -80,7 +83,7 @@
 
   Slices slices_;     // Not owned.
   size_t size_ = 0;   // SUM(slice.size for slice in slices_).
-  char preamble_[8];  // Deliberately not initialized.
+  char preamble_[kMaxPreambleBytes];  // Deliberately not initialized.
 
   // Remember to update the move operators and their unittest if adding new
   // fields. ConsumerIPCClientImpl::OnReadBuffersResponse() relies on