LeviLamina
Loading...
Searching...
No Matches
VideoFecGenerator.h
1#pragma once
2
3#include "mc/_HeaderOutputPredefine.h"
4
5// auto generated forward declare list
6// clang-format off
7namespace webrtc { class DataRate; }
8namespace webrtc { class RtpPacketToSend; }
9namespace webrtc { struct FecProtectionParams; }
10namespace webrtc { struct RtpState; }
11// clang-format on
12
13namespace webrtc {
14
16public:
17 // VideoFecGenerator inner types define
18 enum class FecType : int {
19 KFlexFec = 0,
20 KUlpFec = 1,
21 };
22
23public:
24 // virtual functions
25 // NOLINTBEGIN
26 virtual ~VideoFecGenerator() = default;
27
28 virtual ::webrtc::VideoFecGenerator::FecType GetFecType() const = 0;
29
30 virtual ::std::optional<uint> FecSsrc() = 0;
31
32 virtual uint64 MaxPacketOverhead() const = 0;
33
34 virtual ::webrtc::DataRate CurrentFecRate() const = 0;
35
36 virtual void SetProtectionParameters(
37 ::webrtc::FecProtectionParams const& delta_params,
38 ::webrtc::FecProtectionParams const& key_params
39 ) = 0;
40
41 virtual void AddPacketAndGenerateFec(::webrtc::RtpPacketToSend const& packet) = 0;
42
43 virtual ::std::vector<::std::unique_ptr<::webrtc::RtpPacketToSend>> GetFecPackets() = 0;
44
45 virtual ::std::optional<::webrtc::RtpState> GetRtpState() = 0;
46 // NOLINTEND
47
48public:
49 // virtual function thunks
50 // NOLINTBEGIN
51
52 // NOLINTEND
53};
54
55} // namespace webrtc
Definition DataRate.h:10
Definition RtpPacketToSend.h:16
Definition VideoFecGenerator.h:15
Definition FecProtectionParams.h:7
Definition RtpState.h:7