11#include <promeki/config.h>
12#if PROMEKI_ENABLE_NETWORK
23PROMEKI_NAMESPACE_BEGIN
26class SdpMediaDescription;
40 NetworkAddress address;
44 PcapFlowKind kind = PcapFlowKind::Unknown;
46 uint8_t payloadType = 0;
48 bool hasPayloadType =
false;
52 uint32_t clockRate = 0;
59 SocketAddress destination()
const {
return SocketAddress(address, port); }
89 PcapSdpMap() =
default;
101 Error ingest(
const SdpSession &sdp);
109 void addFlow(
const PcapFlow &flow) { _flows.pushToBack(flow); }
125 void addAncFlow(
const NetworkAddress &address, uint16_t port,
int payloadType = -1);
128 void clear() { _flows.clear(); }
131 bool isEmpty()
const {
return _flows.isEmpty(); }
134 const List<PcapFlow> &flows()
const {
return _flows; }
140 const PcapFlow *find(
const NetworkAddress &address, uint16_t port)
const;
143 const PcapFlow *find(
const SocketAddress &dst)
const {
return find(dst.address(), dst.port()); }
151 static PcapFlowKind classify(
const SdpMediaDescription &md);
154 List<PcapFlow> _flows;