Skip to content

Commit

Permalink
fix delayedReader reference
Browse files Browse the repository at this point in the history
  • Loading branch information
gagankonana committed Sep 30, 2024
1 parent f91e749 commit cb80931
Show file tree
Hide file tree
Showing 6 changed files with 245 additions and 253 deletions.
16 changes: 5 additions & 11 deletions src/internal_modules/roc_audio/latency_monitor.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ LatencyMonitor::LatencyMonitor(IFrameReader& frame_reader,
const LatencyConfig& config,
const SampleSpec& packet_sample_spec,
const SampleSpec& frame_sample_spec,
packet::IReader& pkt_reader)
packet::DelayedReader& delayed_reader)
: tuner_(config, frame_sample_spec)
, frame_reader_(frame_reader)
, incoming_queue_(incoming_queue)
Expand All @@ -39,7 +39,8 @@ LatencyMonitor::LatencyMonitor(IFrameReader& frame_reader,
, packet_sample_spec_(packet_sample_spec)
, frame_sample_spec_(frame_sample_spec)
, alive_(true)
, valid_(false) {
, valid_(false),
delayed_reader_(delayed_reader) {
if (!tuner_.is_valid()) {
return;
}
Expand All @@ -49,13 +50,6 @@ LatencyMonitor::LatencyMonitor(IFrameReader& frame_reader,
return;
}
}
// frame_reader_ = frame_reader;
delayed_reader_.reset(new (delayed_reader_) packet::DelayedReader(
pkt_reader));

if (!delayed_reader_ || !delayed_reader_->is_valid()) {
return;
}

valid_ = true;
}
Expand Down Expand Up @@ -126,9 +120,9 @@ bool LatencyMonitor::pre_process_(const Frame& frame) {
}
}

if (!delayed_reader_->is_started()) {
if (!delayed_reader_.is_started()) {
if (tuner_.can_start()) {
delayed_reader_->start();
delayed_reader_.start();
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/internal_modules/roc_audio/latency_monitor.h
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ class LatencyMonitor : public IFrameReader, public core::NonCopyable<> {
const LatencyConfig& config,
const SampleSpec& packet_sample_spec,
const SampleSpec& frame_sample_spec,
packet::IReader& pkt_reader);
packet::DelayedReader& delayed_reader);

//! Check if the object was initialized successfully.
bool is_valid() const;
Expand Down Expand Up @@ -127,7 +127,7 @@ class LatencyMonitor : public IFrameReader, public core::NonCopyable<> {
bool alive_;
bool valid_;

core::Optional<packet::DelayedReader> delayed_reader_;
packet::DelayedReader& delayed_reader_;
};

} // namespace audio
Expand Down
36 changes: 17 additions & 19 deletions src/internal_modules/roc_packet/delayed_reader.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,16 @@
namespace roc {
namespace packet {

DelayedReader::DelayedReader(IReader& reader)
DelayedReader::DelayedReader(IReader& reader,
const audio::SampleSpec& sample_spec)
: reader_(reader)
, queue_(0)
, started_(false)
, sample_spec_(sample_spec)
, valid_(false) {
// if (target_delay > 0) {
// delay_ = sample_spec.ns_2_stream_timestamp(target_delay);
// }

// roc_log(LogDebug, "delayed reader: initializing: delay=%lu(%.3fms)",
// (unsigned long)delay_, sample_spec_.stream_timestamp_2_ms(delay_));
roc_log(LogDebug, "delayed reader: initializing: started=%d",
(bool)started_);

valid_ = true;
}
Expand All @@ -37,7 +36,6 @@ bool DelayedReader::is_valid() const {

status::StatusCode DelayedReader::read(PacketPtr& ptr) {
roc_panic_if(!valid_);

if (!started_) {
const status::StatusCode code = fetch_packets_();
if (code != status::StatusOK) {
Expand Down Expand Up @@ -75,12 +73,12 @@ status::StatusCode DelayedReader::fetch_packets_() {
return status::StatusNoData;
}

// roc_log(LogDebug,
// "delayed reader: initial queue:"
// " delay=%lu(%.3fms) queue=%lu(%.3fms) packets=%lu",
// (unsigned long)delay_, sample_spec_.stream_timestamp_2_ms(delay_),
// (unsigned long)qs, sample_spec_.stream_timestamp_2_ms(qs),
// (unsigned long)queue_.size());
roc_log(LogDebug,
"delayed reader: initial queue:"
" started=%d queue=%lu(%.3fms) packets=%lu",
(bool)started_,
(unsigned long)qs, sample_spec_.stream_timestamp_2_ms(qs),
(unsigned long)queue_.size());

return status::StatusOK;
}
Expand All @@ -103,12 +101,12 @@ status::StatusCode DelayedReader::read_queued_packet_(PacketPtr& pp) {
}

if (qs != 0) {
// roc_log(LogDebug,
// "delayed reader: trimmed queue:"
// " delay=%lu(%.3fms) queue=%lu(%.3fms) packets=%lu",
// (unsigned long)delay_, sample_spec_.stream_timestamp_2_ms(delay_),
// (unsigned long)qs, sample_spec_.stream_timestamp_2_ms(qs),
// (unsigned long)(queue_.size() + 1));
roc_log(LogDebug,
"delayed reader: trimmed queue:"
" started=%dqueue=%lu(%.3fms) packets=%lu",
(bool)started_,
(unsigned long)qs, sample_spec_.stream_timestamp_2_ms(qs),
(unsigned long)(queue_.size() + 1));
}

return status::StatusOK;
Expand Down
1 change: 0 additions & 1 deletion src/internal_modules/roc_packet/delayed_reader.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ class DelayedReader : public IReader, public core::NonCopyable<> {
//!
//! @b Parameters
//! - @p reader is used to read packets
//! - @p target_delay is the delay to insert before first packet
//! - @p sample_spec is the specifications of incoming packets
DelayedReader(IReader& reader,
const audio::SampleSpec& sample_spec);
Expand Down
3 changes: 2 additions & 1 deletion src/internal_modules/roc_pipeline/receiver_session.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,8 @@ ReceiverSession::ReceiverSession(const ReceiverSessionConfig& session_config,
pkt_reader = filter_.get();

delayed_reader_.reset(new (delayed_reader_) packet::DelayedReader(
*pkt_reader));
*pkt_reader, pkt_encoding->sample_spec));

if (!delayed_reader_ || !delayed_reader_->is_valid()) {
return;
}
Expand Down
Loading

0 comments on commit cb80931

Please sign in to comment.