BT_PUT(stream);
writer_packet_context = ctf_copy_packet_context(writer_component->err,
- packet, writer_stream);
+ packet, writer_stream, 1);
if (!writer_packet_context) {
fprintf(writer_component->err, "[error] %s in %s:%d\n",
__func__, __FILE__, __LINE__);
BT_HIDDEN
struct bt_ctf_field *ctf_copy_packet_context(FILE *err,
struct bt_ctf_packet *packet,
- struct bt_ctf_stream *writer_stream)
+ struct bt_ctf_stream *writer_stream,
+ int skip_content_size)
{
enum bt_component_status ret;
struct bt_ctf_field *packet_context = NULL, *writer_packet_context = NULL;
__FILE__, __LINE__);
goto error;
}
- if (!strncmp(field_name, "content_size", strlen("content_size")) ||
- !strncmp(field_name, "packet_size",
- strlen("packet_size"))) {
+ if (skip_content_size &&
+ (!strncmp(field_name, "content_size", strlen("content_size")) ||
+ !strncmp(field_name, "packet_size", strlen("packet_size")))) {
BT_PUT(field_type);
BT_PUT(field);
continue;
/*
* Copy all the field values of the packet context from the packet passed in
* parameter and set it to the current packet in the writer stream.
- * The content_size and packet_size fields are not copied since they are
- * already handled by the ctf_writer library.
+ * The content_size and packet_size fields are not copied if skip_content_size
+ * is not 0.
*
* Returns BT_COMPONENT_STATUS_OK on success, and BT_COMPONENT_STATUS_ERROR on
* error.
BT_HIDDEN
struct bt_ctf_field *ctf_copy_packet_context(FILE *err,
struct bt_ctf_packet *packet,
- struct bt_ctf_stream *writer_stream);
+ struct bt_ctf_stream *writer_stream,
+ int skip_content_size);
/*
* Create and return a copy of the event passed in parameter. The caller has to
bt_get(writer_packet);
writer_packet_context = ctf_copy_packet_context(debug_it->err, packet,
- writer_stream);
+ writer_stream, 0);
if (!writer_packet_context) {
fprintf(debug_it->err, "[error] %s in %s:%d\n",
__func__, __FILE__, __LINE__);
bt_get(writer_packet);
writer_packet_context = ctf_copy_packet_context(trim_it->err, packet,
- stream);
+ stream, 0);
if (!writer_packet_context) {
fprintf(trim_it->err, "[error] %s in %s:%d\n",
__func__, __FILE__, __LINE__);