group2 0.1.0
CSE 125 Group 2
Loading...
Searching...
No Matches
VoiceJitterBuffer.hpp
Go to the documentation of this file.
1
3
4#pragma once
5
6#include <cstdint>
7#include <optional>
8#include <span>
9#include <vector>
10
12{
13public:
15 {
16 std::uint16_t sequence = 0;
17 std::uint8_t frameMs = 20;
18 std::vector<std::uint8_t> opus;
19 bool lost = false;
20 };
21
22 explicit VoiceJitterBuffer(std::size_t prebufferFrames = 2, std::size_t maxFrames = 10);
23
24 void push(std::uint16_t sequence, std::uint8_t frameMs, std::span<const std::uint8_t> opus);
25 [[nodiscard]] std::optional<EncodedFrame> pop();
26 [[nodiscard]] std::size_t size() const noexcept { return frames_.size(); }
27 void reset();
28
29private:
30 [[nodiscard]] bool tooOld(std::uint16_t sequence) const noexcept;
31 [[nodiscard]] std::uint16_t firstSequence() const noexcept;
32
33 std::size_t prebufferFrames_ = 2;
34 std::size_t maxFrames_ = 10;
36 std::uint16_t expectedSequence_ = 0;
37 bool hasExpected_ = false;
38};
bool tooOld(std::uint16_t sequence) const noexcept
Definition VoiceJitterBuffer.cpp:86
std::uint16_t expectedSequence_
Definition VoiceJitterBuffer.hpp:36
void push(std::uint16_t sequence, std::uint8_t frameMs, std::span< const std::uint8_t > opus)
Definition VoiceJitterBuffer.cpp:26
VoiceJitterBuffer(std::size_t prebufferFrames=2, std::size_t maxFrames=10)
Definition VoiceJitterBuffer.cpp:21
bool hasExpected_
Definition VoiceJitterBuffer.hpp:37
std::optional< EncodedFrame > pop()
Definition VoiceJitterBuffer.cpp:49
std::vector< EncodedFrame > frames_
Definition VoiceJitterBuffer.hpp:35
void reset()
Definition VoiceJitterBuffer.cpp:79
std::size_t prebufferFrames_
Definition VoiceJitterBuffer.hpp:33
std::size_t size() const noexcept
Definition VoiceJitterBuffer.hpp:26
std::uint16_t firstSequence() const noexcept
Definition VoiceJitterBuffer.cpp:91
std::size_t maxFrames_
Definition VoiceJitterBuffer.hpp:34
Definition AudioRuntime.hpp:365
Definition VoiceJitterBuffer.hpp:15
std::vector< std::uint8_t > opus
Definition VoiceJitterBuffer.hpp:18
bool lost
Definition VoiceJitterBuffer.hpp:19
std::uint16_t sequence
Definition VoiceJitterBuffer.hpp:16
std::uint8_t frameMs
Definition VoiceJitterBuffer.hpp:17