From c49e339ad13b19dfa64068a0f2c69070740347c8 Mon Sep 17 00:00:00 2001 From: Philipp Jungkamp Date: Wed, 13 Sep 2023 10:27:14 +0200 Subject: [PATCH] Don't overwrite sample flags during path sample muxing. Signed-off-by: Philipp Jungkamp --- lib/path.cpp | 7 ------- lib/path_source.cpp | 12 ++++++++---- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/path.cpp b/lib/path.cpp index 9b6207d31..8c28a1c75 100644 --- a/lib/path.cpp +++ b/lib/path.cpp @@ -531,15 +531,8 @@ void Path::start() { last_sample->length = signals->size(); last_sample->signals = signals; - last_sample->ts.origin = time_now(); - last_sample->flags = (int)SampleFlags::HAS_TS_ORIGIN; - last_sample->sequence = 0; - last_sample->flags |= (int)SampleFlags::HAS_SEQUENCE; - - if (last_sample->length > 0) - last_sample->flags |= (int)SampleFlags::HAS_DATA; for (size_t i = 0; i < last_sample->length; i++) { auto sig = signals->getByIndex(i); diff --git a/lib/path_source.cpp b/lib/path_source.cpp index e61577e2b..9fa147850 100644 --- a/lib/path_source.cpp +++ b/lib/path_source.cpp @@ -96,10 +96,14 @@ int PathSource::read(int i) { goto read_decref_muxed_smps; } + muxed_smps[i]->flags = tomux_smps[i]->flags; + if (path->original_sequence_no) { muxed_smps[i]->sequence = tomux_smps[i]->sequence; - muxed_smps[i]->flags |= - tomux_smps[i]->flags & (int)SampleFlags::HAS_SEQUENCE; + if (tomux_smps[i]->flags & (int)SampleFlags::HAS_SEQUENCE) + muxed_smps[i]->flags |= (int)SampleFlags::HAS_SEQUENCE; + else + muxed_smps[i]->flags &= ~(int)SampleFlags::HAS_SEQUENCE; } else { muxed_smps[i]->sequence = path->last_sequence++; muxed_smps[i]->flags |= (int)SampleFlags::HAS_SEQUENCE; @@ -112,8 +116,6 @@ int PathSource::read(int i) { muxed_smps[i]->length = 0; muxed_smps[i]->ts = tomux_smps[i]->ts; - muxed_smps[i]->flags |= tomux_smps[i]->flags & (int)SampleFlags::HAS_TS; - ret = mappings.remap(muxed_smps[i], tomux_smps[i]); if (ret < 0) { enqueued = ret; @@ -123,6 +125,8 @@ int PathSource::read(int i) { if (muxed_smps[i]->length > 0) muxed_smps[i]->flags |= (int)SampleFlags::HAS_DATA; + else + muxed_smps[i]->flags &= ~(int)SampleFlags::HAS_DATA; } muxed_initialized = tomux;