11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
22PROMEKI_NAMESPACE_BEGIN
37 FrameNumber frameIndex;
82class RtpPacketizerThread :
public Thread {
90 static constexpr size_t DefaultPayloadQueueDepth = 2;
106 RtpPacketizerThread(
const String &name,
107 size_t depth = DefaultPayloadQueueDepth);
112 ~RtpPacketizerThread()
override;
114 RtpPacketizerThread(
const RtpPacketizerThread &) =
delete;
115 RtpPacketizerThread &operator=(
const RtpPacketizerThread &) =
delete;
130 Error pushWork(
const RtpFrameWork &work,
unsigned int timeoutMs = 0);
146 bool isStopRequested()
const {
return _stopRequested.value(); }
152 Queue<RtpFrameWork> &payloadQueue() {
return _payloadQueue; }
155 const Queue<RtpFrameWork> &payloadQueue()
const {
return _payloadQueue; }
173 virtual void packetize(
const RtpFrameWork &work) = 0;
180 virtual void onStart() {}
186 virtual void onStop() {}
191 Atomic<bool> _stopRequested;
192 Queue<RtpFrameWork> _payloadQueue;