/* * Copyright (c) 2019 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef MODULES_RTP_RTCP_SOURCE_RTP_DEPENDENCY_DESCRIPTOR_WRITER_H_ #define MODULES_RTP_RTCP_SOURCE_RTP_DEPENDENCY_DESCRIPTOR_WRITER_H_ #include #include "api/array_view.h" #include "common_video/generic_frame_descriptor/generic_frame_info.h" namespace webrtc { // Serialize DependencyDescriptor with respect to set FrameDependencyStructure. class RtpDependencyDescriptorWriter { public: // Returns minimum number of bits needed to serialize descriptor with respect // to current FrameDependencyStructure. Returns 0 if |descriptor| can't be // serialized. size_t ValueSizeBits(const DependencyDescriptor& descriptor) const { // TODO(bugs.webrtc.org/10342): Implement. return 0; } size_t ValueSizeBytes(const DependencyDescriptor& descriptor) const { return (ValueSizeBits(descriptor) + 7) / 8; } bool Write(const DependencyDescriptor& frame_info, rtc::ArrayView raw_data) const { // TODO(bugs.webrtc.org/10342): Implement. return false; } // Sets FrameDependencyStructure to derive individual descriptors from. // Returns false on failure, e.g. structure is invalid or oversized. bool SetStructure(const FrameDependencyStructure& structure) { // TODO(bugs.webrtc.org/10342): Implement. return false; } }; } // namespace webrtc #endif // MODULES_RTP_RTCP_SOURCE_RTP_DEPENDENCY_DESCRIPTOR_WRITER_H_