xref: /aosp_15_r20/external/libwebm/webm_parser/src/bit_utils.h (revision 103e46e4cd4b6efcf6001f23fa8665fb110abf8d)
1*103e46e4SHarish Mahendrakar // Copyright (c) 2016 The WebM project authors. All Rights Reserved.
2*103e46e4SHarish Mahendrakar //
3*103e46e4SHarish Mahendrakar // Use of this source code is governed by a BSD-style license
4*103e46e4SHarish Mahendrakar // that can be found in the LICENSE file in the root of the source
5*103e46e4SHarish Mahendrakar // tree. An additional intellectual property rights grant can be found
6*103e46e4SHarish Mahendrakar // in the file PATENTS.  All contributing project authors may
7*103e46e4SHarish Mahendrakar // be found in the AUTHORS file in the root of the source tree.
8*103e46e4SHarish Mahendrakar #ifndef SRC_BIT_UTILS_H_
9*103e46e4SHarish Mahendrakar #define SRC_BIT_UTILS_H_
10*103e46e4SHarish Mahendrakar 
11*103e46e4SHarish Mahendrakar #include <cstdint>
12*103e46e4SHarish Mahendrakar 
13*103e46e4SHarish Mahendrakar namespace webm {
14*103e46e4SHarish Mahendrakar 
15*103e46e4SHarish Mahendrakar // Counts the number of leading zero bits.
16*103e46e4SHarish Mahendrakar // For example:
17*103e46e4SHarish Mahendrakar //   assert(8 == CountLeadingZeros(0x00));
18*103e46e4SHarish Mahendrakar //   assert(4 == CountLeadingZeros(0x0f));
19*103e46e4SHarish Mahendrakar //   assert(0 == CountLeadingZeros(0xf0));
20*103e46e4SHarish Mahendrakar std::uint8_t CountLeadingZeros(std::uint8_t value);
21*103e46e4SHarish Mahendrakar 
22*103e46e4SHarish Mahendrakar }  // namespace webm
23*103e46e4SHarish Mahendrakar 
24*103e46e4SHarish Mahendrakar #endif  // SRC_BIT_UTILS_H_
25