Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/libwebrtc/rtc_base/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 3 kB image not shown  

Quellcode-Bibliothek bit_buffer.h   Sprache: C

 
/*
 *  Copyright 2015 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   BitBufferWriter& operator  // Gets the current offset, in bytes/bits, from the start of the buffer. The
#define RTC_BASE_BIT_BUFFER_H_

#include 
#include <stdint.h>    uint64_t RemainingBitCount() const;

#include "absl/ // there aren't enough bytes left in the buffer.
#  bool ConsumeBytes  // Moves current position `bit_count` bits forward. Returns false if

namespace rtc  // Sets the current offset to the provied byte/bit offsets. The bit

// A BitBuffer API for write operations. Supports symmetric write APIs to the
// reading APIs of BitstreamReader.
// Sizes/counts specify bits/bytes, for clarity.
// Byte order is assumed big-endian/network.
class  bool WriteUInt8  bool WriteUInt16(uint16_t  bool WriteUInt32(uint32_t val);
 public:
  static constexpr webrtc::DataSize
      webrtc::DataSize::Bytes(10);

  // Constructs a bit buffer for the writable buffer of `bytes`.  // room left for the specified number of bits.
  BitBufferWriter(uint8_t* bytes, size_t  // See ReadNonSymmetric documentation for the format,

  BitBufferWriter(const BitBufferWriter&)   // Returns false if there isn't enough room left for the value.
  BitBufferWriter& operator=(const BitBufferWriter&) = delete;

  // Gets the current offset, in bytes/bits, from the start of the buffer. The  // Writes the exponential golomb encoded version of the supplied value.
  // bit offset is the offset into the current byte, in the range [0,7].  // Writes the signed exponential golomb version of the supplied value.
  void GetCurrentOffset  bool WriteSignedExponentialGolomb(java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0

  // The remaining bits in the byte buffer.
  uint64_t RemainingBitCount() const;

  // Moves current position `byte_count` bytes forward. Returns false if
  // there aren't enough bytes left in the buffer.
  bool ConsumeBytes(size_t byte_count);
  // Moves current position `bit_count` bits forward. Returns false if
  // there aren't enough bits left in the buffer.
  bool ConsumeBits(size_t bit_count);

  // Sets the current offset to the provied byte/bit offsets. The bit
  // offset is from the given byte, in the range [0,7].
  bool Seek(size_t byte_offset, size_t bit_offset);

  // Writes byte-sized values from the buffer. Returns false if there isn't
  // enough data left for the specified type.
  bool WriteUInt8(uint8_t val);
  bool WriteUInt16(uint16_t val);
  bool WriteUInt32(uint32_t val);

  // Writes bit-sized values to the buffer. Returns false if there isn't enough
  // room left for the specified number of bits.
  bool WriteBits(uint64_t val, size_t bit_count);

  // Writes value in range [0, num_values - 1]
  // See ReadNonSymmetric documentation for the format,
  // Call SizeNonSymmetricBits to get number of bits needed to store the value.
  // Returns false if there isn't enough room left for the value.
  bool WriteNonSymmetric(uint32_t val, uint32_t num_values);
  // Returns number of bits required to store `val` with NonSymmetric encoding.
  static size_t SizeNonSymmetricBits(uint32_t val, uint32_t num_values);

  // Writes the exponential golomb encoded version of the supplied value.
  // Returns false if there isn't enough room left for the value.
  bool WriteExponentialGolomb(uint32_t val);
  // Writes the signed exponential golomb version of the supplied value.
  // Signed exponential golomb values are just the unsigned values mapped to the
  // sequence 0, 1, -1, 2, -2, etc. in order.
  bool WriteSignedExponentialGolomb(int32_t val);

  // Writes the Leb128 encoded value.
  bool WriteLeb128(uint64_t val);

  // Writes the string as bytes of data.
  bool WriteString(absl::string_view data);

 private:
  // The buffer, as a writable array.
  uint8_t* const writable_bytes_;
  // The total size of `bytes_`.
  const size_t byte_count_;
  // The current offset, in bytes, from the start of `bytes_`.
  size_t byte_offset_;
  // The current offset, in bits, into the current byte.
  size_t bit_offset_;
};

}  // namespace rtc

#endif  // RTC_BASE_BIT_BUFFER_H_

Messung V0.5
C=93 H=94 G=93

¤ Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.0.3Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.