#include "modules/rtp_rtcp/source/rtp_dependency_descriptor_writer.h"
#include <bitset>
#include <cstddef>
#include <cstdint>
#include <iterator>
#include <vector>
#include "absl/algorithm/container.h"
#include "api/array_view.h"
#include "api/transport/rtp/dependency_descriptor.h"
#include "rtc_base/bit_buffer.h"
#include "rtc_base/checks.h"
namespace webrtc {
namespace {
enum class NextLayerIdc : uint64_t { … };
NextLayerIdc GetNextLayerIdc(const FrameDependencyTemplate& previous,
const FrameDependencyTemplate& next) { … }
}
RtpDependencyDescriptorWriter::RtpDependencyDescriptorWriter(
rtc::ArrayView<uint8_t> data,
const FrameDependencyStructure& structure,
std::bitset<32> active_chains,
const DependencyDescriptor& descriptor)
: … { … }
bool RtpDependencyDescriptorWriter::Write() { … }
int RtpDependencyDescriptorWriter::ValueSizeBits() const { … }
int RtpDependencyDescriptorWriter::StructureSizeBits() const { … }
RtpDependencyDescriptorWriter::TemplateMatch
RtpDependencyDescriptorWriter::CalculateMatch(
TemplateIterator frame_template) const { … }
void RtpDependencyDescriptorWriter::FindBestTemplate() { … }
bool RtpDependencyDescriptorWriter::ShouldWriteActiveDecodeTargetsBitmask()
const { … }
bool RtpDependencyDescriptorWriter::HasExtendedFields() const { … }
uint64_t RtpDependencyDescriptorWriter::TemplateId() const { … }
void RtpDependencyDescriptorWriter::WriteBits(uint64_t val, size_t bit_count) { … }
void RtpDependencyDescriptorWriter::WriteNonSymmetric(uint32_t value,
uint32_t num_values) { … }
void RtpDependencyDescriptorWriter::WriteTemplateDependencyStructure() { … }
void RtpDependencyDescriptorWriter::WriteTemplateLayers() { … }
void RtpDependencyDescriptorWriter::WriteTemplateDtis() { … }
void RtpDependencyDescriptorWriter::WriteTemplateFdiffs() { … }
void RtpDependencyDescriptorWriter::WriteTemplateChains() { … }
void RtpDependencyDescriptorWriter::WriteResolutions() { … }
void RtpDependencyDescriptorWriter::WriteMandatoryFields() { … }
void RtpDependencyDescriptorWriter::WriteExtendedFields() { … }
void RtpDependencyDescriptorWriter::WriteFrameDependencyDefinition() { … }
void RtpDependencyDescriptorWriter::WriteFrameDtis() { … }
void RtpDependencyDescriptorWriter::WriteFrameFdiffs() { … }
void RtpDependencyDescriptorWriter::WriteFrameChains() { … }
}