< Summary - Jellyfin

Information
Class: MediaBrowser.Common.Crc32
Assembly: MediaBrowser.Common
File(s): /srv/git/jellyfin/MediaBrowser.Common/Crc32.cs
Line coverage
100%
Covered lines: 72
Uncovered lines: 0
Coverable lines: 72
Total lines: 89
Line coverage: 100%
Branch coverage
100%
Covered branches: 2
Total branches: 2
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Coverage history

Coverage history 0 25 50 75 100

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.cctor()100%11100%
Compute(...)100%22100%

File(s)

/srv/git/jellyfin/MediaBrowser.Common/Crc32.cs

#LineLine coverage
 1#pragma warning disable CS1591
 2
 3using System;
 4
 5namespace MediaBrowser.Common
 6{
 7    public static class Crc32
 8    {
 29        private static readonly uint[] _crcTable =
 210        {
 211            0x00000000, 0x77073096, 0xee0e612c, 0x990951ba,
 212            0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3,
 213            0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,
 214            0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91,
 215            0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de,
 216            0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,
 217            0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec,
 218            0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5,
 219            0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,
 220            0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b,
 221            0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940,
 222            0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,
 223            0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116,
 224            0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f,
 225            0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,
 226            0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d,
 227            0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a,
 228            0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,
 229            0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818,
 230            0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01,
 231            0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,
 232            0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457,
 233            0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c,
 234            0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,
 235            0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2,
 236            0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb,
 237            0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,
 238            0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9,
 239            0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086,
 240            0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,
 241            0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4,
 242            0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad,
 243            0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,
 244            0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683,
 245            0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8,
 246            0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,
 247            0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe,
 248            0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7,
 249            0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,
 250            0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5,
 251            0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252,
 252            0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,
 253            0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60,
 254            0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79,
 255            0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,
 256            0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f,
 257            0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04,
 258            0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,
 259            0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a,
 260            0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713,
 261            0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,
 262            0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21,
 263            0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e,
 264            0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,
 265            0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c,
 266            0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45,
 267            0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,
 268            0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db,
 269            0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0,
 270            0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,
 271            0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6,
 272            0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf,
 273            0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,
 274            0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d
 275        };
 76
 77        public static uint Compute(ReadOnlySpan<byte> bytes)
 78        {
 2179            var crc = 0xffffffff;
 2180            var len = bytes.Length;
 112281            for (var i = 0; i < len; i++)
 82            {
 54083                crc = (crc >> 8) ^ _crcTable[(bytes[i] ^ crc) & 0xff];
 84            }
 85
 2186            return ~crc;
 87        }
 88    }
 89}