Roc Toolkit internal modules
Roc Toolkit: real-time audio streaming
Loading...
Searching...
No Matches
isequencer.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2023 Roc Streaming authors
3 *
4 * This Source Code Form is subject to the terms of the Mozilla Public
5 * License, v. 2.0. If a copy of the MPL was not distributed with this
6 * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7 */
8
9//! @file roc_packet/isequencer.h
10//! @brief Packet sequencer.
11
12#ifndef ROC_PACKET_ISEQUENCER_H_
13#define ROC_PACKET_ISEQUENCER_H_
14
15#include "roc_core/time.h"
16#include "roc_packet/packet.h"
17
18namespace roc {
19namespace packet {
20
21//! Packet sequencer.
22//! Fills protocol-specific packet headers to form a continous sequence.
23//! For example, RTP sequencer fills packet seqnums and timestamps.
25public:
26 virtual ~ISequencer();
27
28 //! Fill next packet.
29 virtual void
30 next(Packet& packet, core::nanoseconds_t capture_ts, stream_timestamp_t duration) = 0;
31};
32
33} // namespace packet
34} // namespace roc
35
36#endif // ROC_PACKET_ISEQUENCER_H_
Packet sequencer. Fills protocol-specific packet headers to form a continous sequence....
Definition isequencer.h:24
virtual void next(Packet &packet, core::nanoseconds_t capture_ts, stream_timestamp_t duration)=0
Fill next packet.
int64_t nanoseconds_t
Nanoseconds.
Definition time.h:58
uint32_t stream_timestamp_t
Packet stream timestamp.
Definition units.h:36
Root namespace.
Packet.
Time definitions.