fec_private_tables_bursty.cc (10641B)
1 /* 2 * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. 3 * 4 * Use of this source code is governed by a BSD-style license 5 * that can be found in the LICENSE file in the root of the source 6 * tree. An additional intellectual property rights grant can be found 7 * in the file PATENTS. All contributing project authors may 8 * be found in the AUTHORS file in the root of the source tree. 9 */ 10 11 #include "modules/rtp_rtcp/source/fec_private_tables_bursty.h" 12 13 #include <cstdint> 14 15 namespace { 16 // clang-format off 17 #define kMaskBursty1_1 \ 18 0x80, 0x00 19 20 #define kMaskBursty2_1 \ 21 0xc0, 0x00 22 23 #define kMaskBursty2_2 \ 24 0x80, 0x00, \ 25 0xc0, 0x00 26 27 #define kMaskBursty3_1 \ 28 0xe0, 0x00 29 30 #define kMaskBursty3_2 \ 31 0xc0, 0x00, \ 32 0xa0, 0x00 33 34 #define kMaskBursty3_3 \ 35 0x80, 0x00, \ 36 0xc0, 0x00, \ 37 0x60, 0x00 38 39 #define kMaskBursty4_1 \ 40 0xf0, 0x00 41 42 #define kMaskBursty4_2 \ 43 0xa0, 0x00, \ 44 0xd0, 0x00 45 46 #define kMaskBursty4_3 \ 47 0xc0, 0x00, \ 48 0x60, 0x00, \ 49 0x90, 0x00 50 51 #define kMaskBursty4_4 \ 52 0x80, 0x00, \ 53 0xc0, 0x00, \ 54 0x60, 0x00, \ 55 0x30, 0x00 56 57 #define kMaskBursty5_1 \ 58 0xf8, 0x00 59 60 #define kMaskBursty5_2 \ 61 0xd0, 0x00, \ 62 0xa8, 0x00 63 64 #define kMaskBursty5_3 \ 65 0x70, 0x00, \ 66 0x90, 0x00, \ 67 0xc8, 0x00 68 69 #define kMaskBursty5_4 \ 70 0xc0, 0x00, \ 71 0x60, 0x00, \ 72 0x30, 0x00, \ 73 0x88, 0x00 74 75 #define kMaskBursty5_5 \ 76 0x80, 0x00, \ 77 0xc0, 0x00, \ 78 0x60, 0x00, \ 79 0x30, 0x00, \ 80 0x18, 0x00 81 82 #define kMaskBursty6_1 \ 83 0xfc, 0x00 84 85 #define kMaskBursty6_2 \ 86 0xa8, 0x00, \ 87 0xd4, 0x00 88 89 #define kMaskBursty6_3 \ 90 0x94, 0x00, \ 91 0xc8, 0x00, \ 92 0x64, 0x00 93 94 #define kMaskBursty6_4 \ 95 0x60, 0x00, \ 96 0x38, 0x00, \ 97 0x88, 0x00, \ 98 0xc4, 0x00 99 100 #define kMaskBursty6_5 \ 101 0xc0, 0x00, \ 102 0x60, 0x00, \ 103 0x30, 0x00, \ 104 0x18, 0x00, \ 105 0x84, 0x00 106 107 #define kMaskBursty6_6 \ 108 0x80, 0x00, \ 109 0xc0, 0x00, \ 110 0x60, 0x00, \ 111 0x30, 0x00, \ 112 0x18, 0x00, \ 113 0x0c, 0x00 114 115 #define kMaskBursty7_1 \ 116 0xfe, 0x00 117 118 #define kMaskBursty7_2 \ 119 0xd4, 0x00, \ 120 0xaa, 0x00 121 122 #define kMaskBursty7_3 \ 123 0xc8, 0x00, \ 124 0x74, 0x00, \ 125 0x92, 0x00 126 127 #define kMaskBursty7_4 \ 128 0x38, 0x00, \ 129 0x8a, 0x00, \ 130 0xc4, 0x00, \ 131 0x62, 0x00 132 133 #define kMaskBursty7_5 \ 134 0x60, 0x00, \ 135 0x30, 0x00, \ 136 0x1c, 0x00, \ 137 0x84, 0x00, \ 138 0xc2, 0x00 139 140 #define kMaskBursty7_6 \ 141 0xc0, 0x00, \ 142 0x60, 0x00, \ 143 0x30, 0x00, \ 144 0x18, 0x00, \ 145 0x0c, 0x00, \ 146 0x82, 0x00 147 148 #define kMaskBursty7_7 \ 149 0x80, 0x00, \ 150 0xc0, 0x00, \ 151 0x60, 0x00, \ 152 0x30, 0x00, \ 153 0x18, 0x00, \ 154 0x0c, 0x00, \ 155 0x06, 0x00 156 157 #define kMaskBursty8_1 \ 158 0xff, 0x00 159 160 #define kMaskBursty8_2 \ 161 0xaa, 0x00, \ 162 0xd5, 0x00 163 164 #define kMaskBursty8_3 \ 165 0x74, 0x00, \ 166 0x92, 0x00, \ 167 0xc9, 0x00 168 169 #define kMaskBursty8_4 \ 170 0x8a, 0x00, \ 171 0xc5, 0x00, \ 172 0x62, 0x00, \ 173 0x31, 0x00 174 175 #define kMaskBursty8_5 \ 176 0x30, 0x00, \ 177 0x1c, 0x00, \ 178 0x85, 0x00, \ 179 0xc2, 0x00, \ 180 0x61, 0x00 181 182 #define kMaskBursty8_6 \ 183 0x60, 0x00, \ 184 0x30, 0x00, \ 185 0x18, 0x00, \ 186 0x0e, 0x00, \ 187 0x82, 0x00, \ 188 0xc1, 0x00 189 190 #define kMaskBursty8_7 \ 191 0xc0, 0x00, \ 192 0x60, 0x00, \ 193 0x30, 0x00, \ 194 0x18, 0x00, \ 195 0x0c, 0x00, \ 196 0x06, 0x00, \ 197 0x81, 0x00 198 199 #define kMaskBursty8_8 \ 200 0x80, 0x00, \ 201 0xc0, 0x00, \ 202 0x60, 0x00, \ 203 0x30, 0x00, \ 204 0x18, 0x00, \ 205 0x0c, 0x00, \ 206 0x06, 0x00, \ 207 0x03, 0x00 208 209 #define kMaskBursty9_1 \ 210 0xff, 0x80 211 212 #define kMaskBursty9_2 \ 213 0xd5, 0x00, \ 214 0xaa, 0x80 215 216 #define kMaskBursty9_3 \ 217 0x92, 0x00, \ 218 0xc9, 0x00, \ 219 0x74, 0x80 220 221 #define kMaskBursty9_4 \ 222 0xc5, 0x00, \ 223 0x62, 0x00, \ 224 0x39, 0x00, \ 225 0x8a, 0x80 226 227 #define kMaskBursty9_5 \ 228 0x1c, 0x00, \ 229 0x85, 0x00, \ 230 0xc2, 0x80, \ 231 0x61, 0x00, \ 232 0x30, 0x80 233 234 #define kMaskBursty9_6 \ 235 0x30, 0x00, \ 236 0x18, 0x00, \ 237 0x0e, 0x00, \ 238 0x82, 0x80, \ 239 0xc1, 0x00, \ 240 0x60, 0x80 241 242 #define kMaskBursty9_7 \ 243 0x60, 0x00, \ 244 0x30, 0x00, \ 245 0x18, 0x00, \ 246 0x0c, 0x00, \ 247 0x07, 0x00, \ 248 0x81, 0x00, \ 249 0xc0, 0x80 250 251 #define kMaskBursty9_8 \ 252 0xc0, 0x00, \ 253 0x60, 0x00, \ 254 0x30, 0x00, \ 255 0x18, 0x00, \ 256 0x0c, 0x00, \ 257 0x06, 0x00, \ 258 0x03, 0x00, \ 259 0x80, 0x80 260 261 #define kMaskBursty9_9 \ 262 0x80, 0x00, \ 263 0xc0, 0x00, \ 264 0x60, 0x00, \ 265 0x30, 0x00, \ 266 0x18, 0x00, \ 267 0x0c, 0x00, \ 268 0x06, 0x00, \ 269 0x03, 0x00, \ 270 0x01, 0x80 271 272 #define kMaskBursty10_1 \ 273 0xff, 0xc0 274 275 #define kMaskBursty10_2 \ 276 0xaa, 0x80, \ 277 0xd5, 0x40 278 279 #define kMaskBursty10_3 \ 280 0xc9, 0x00, \ 281 0x74, 0x80, \ 282 0x92, 0x40 283 284 #define kMaskBursty10_4 \ 285 0x62, 0x00, \ 286 0x39, 0x00, \ 287 0x8a, 0x80, \ 288 0xc5, 0x40 289 290 #define kMaskBursty10_5 \ 291 0x85, 0x00, \ 292 0xc2, 0x80, \ 293 0x61, 0x40, \ 294 0x30, 0x80, \ 295 0x18, 0x40 296 297 #define kMaskBursty10_6 \ 298 0x18, 0x00, \ 299 0x0e, 0x00, \ 300 0x82, 0x80, \ 301 0xc1, 0x40, \ 302 0x60, 0x80, \ 303 0x30, 0x40 304 305 #define kMaskBursty10_7 \ 306 0x30, 0x00, \ 307 0x18, 0x00, \ 308 0x0c, 0x00, \ 309 0x07, 0x00, \ 310 0x81, 0x40, \ 311 0xc0, 0x80, \ 312 0x60, 0x40 313 314 #define kMaskBursty10_8 \ 315 0x60, 0x00, \ 316 0x30, 0x00, \ 317 0x18, 0x00, \ 318 0x0c, 0x00, \ 319 0x06, 0x00, \ 320 0x03, 0x00, \ 321 0x80, 0x80, \ 322 0xc0, 0x40 323 324 #define kMaskBursty10_9 \ 325 0xc0, 0x00, \ 326 0x60, 0x00, \ 327 0x30, 0x00, \ 328 0x18, 0x00, \ 329 0x0c, 0x00, \ 330 0x06, 0x00, \ 331 0x03, 0x00, \ 332 0x01, 0x80, \ 333 0x80, 0x40 334 335 #define kMaskBursty10_10 \ 336 0x80, 0x00, \ 337 0xc0, 0x00, \ 338 0x60, 0x00, \ 339 0x30, 0x00, \ 340 0x18, 0x00, \ 341 0x0c, 0x00, \ 342 0x06, 0x00, \ 343 0x03, 0x00, \ 344 0x01, 0x80, \ 345 0x00, 0xc0 346 347 #define kMaskBursty11_1 \ 348 0xff, 0xe0 349 350 #define kMaskBursty11_2 \ 351 0xd5, 0x40, \ 352 0xaa, 0xa0 353 354 #define kMaskBursty11_3 \ 355 0x74, 0x80, \ 356 0x92, 0x40, \ 357 0xc9, 0x20 358 359 #define kMaskBursty11_4 \ 360 0x39, 0x00, \ 361 0x8a, 0x80, \ 362 0xc5, 0x40, \ 363 0x62, 0x20 364 365 #define kMaskBursty11_5 \ 366 0xc2, 0xc0, \ 367 0x61, 0x00, \ 368 0x30, 0xa0, \ 369 0x1c, 0x40, \ 370 0x85, 0x20 371 372 #define kMaskBursty11_6 \ 373 0x0e, 0x00, \ 374 0x82, 0x80, \ 375 0xc1, 0x40, \ 376 0x60, 0xa0, \ 377 0x30, 0x40, \ 378 0x18, 0x20 379 380 #define kMaskBursty11_7 \ 381 0x18, 0x00, \ 382 0x0c, 0x00, \ 383 0x07, 0x00, \ 384 0x81, 0x40, \ 385 0xc0, 0xa0, \ 386 0x60, 0x40, \ 387 0x30, 0x20 388 389 #define kMaskBursty11_8 \ 390 0x30, 0x00, \ 391 0x18, 0x00, \ 392 0x0c, 0x00, \ 393 0x06, 0x00, \ 394 0x03, 0x40, \ 395 0x80, 0xa0, \ 396 0xc0, 0x40, \ 397 0x60, 0x20 398 399 #define kMaskBursty11_9 \ 400 0x60, 0x00, \ 401 0x30, 0x00, \ 402 0x18, 0x00, \ 403 0x0c, 0x00, \ 404 0x06, 0x00, \ 405 0x03, 0x00, \ 406 0x01, 0x80, \ 407 0x80, 0x40, \ 408 0xc0, 0x20 409 410 #define kMaskBursty11_10 \ 411 0xc0, 0x00, \ 412 0x60, 0x00, \ 413 0x30, 0x00, \ 414 0x18, 0x00, \ 415 0x0c, 0x00, \ 416 0x06, 0x00, \ 417 0x03, 0x00, \ 418 0x01, 0x80, \ 419 0x00, 0xc0, \ 420 0x80, 0x20 421 422 #define kMaskBursty11_11 \ 423 0x80, 0x00, \ 424 0xc0, 0x00, \ 425 0x60, 0x00, \ 426 0x30, 0x00, \ 427 0x18, 0x00, \ 428 0x0c, 0x00, \ 429 0x06, 0x00, \ 430 0x03, 0x00, \ 431 0x01, 0x80, \ 432 0x00, 0xc0, \ 433 0x00, 0x60 434 435 #define kMaskBursty12_1 \ 436 0xff, 0xf0 437 438 #define kMaskBursty12_2 \ 439 0xaa, 0xa0, \ 440 0xd5, 0x50 441 442 #define kMaskBursty12_3 \ 443 0x92, 0x40, \ 444 0xc9, 0x20, \ 445 0x74, 0x90 446 447 #define kMaskBursty12_4 \ 448 0x8a, 0x80, \ 449 0xc5, 0x40, \ 450 0x62, 0x20, \ 451 0x39, 0x10 452 453 #define kMaskBursty12_5 \ 454 0x61, 0x00, \ 455 0x30, 0xa0, \ 456 0x1c, 0x50, \ 457 0x85, 0x20, \ 458 0xc2, 0x90 459 460 #define kMaskBursty12_6 \ 461 0x82, 0x90, \ 462 0xc1, 0x40, \ 463 0x60, 0xa0, \ 464 0x30, 0x50, \ 465 0x18, 0x20, \ 466 0x0c, 0x10 467 468 #define kMaskBursty12_7 \ 469 0x0c, 0x00, \ 470 0x07, 0x00, \ 471 0x81, 0x40, \ 472 0xc0, 0xa0, \ 473 0x60, 0x50, \ 474 0x30, 0x20, \ 475 0x18, 0x10 476 477 #define kMaskBursty12_8 \ 478 0x18, 0x00, \ 479 0x0c, 0x00, \ 480 0x06, 0x00, \ 481 0x03, 0x00, \ 482 0x80, 0xa0, \ 483 0xc0, 0x50, \ 484 0x60, 0x20, \ 485 0x30, 0x10 486 487 #define kMaskBursty12_9 \ 488 0x30, 0x00, \ 489 0x18, 0x00, \ 490 0x0c, 0x00, \ 491 0x06, 0x00, \ 492 0x03, 0x00, \ 493 0x01, 0x80, \ 494 0x80, 0x50, \ 495 0xc0, 0x20, \ 496 0x60, 0x10 497 498 #define kMaskBursty12_10 \ 499 0x60, 0x00, \ 500 0x30, 0x00, \ 501 0x18, 0x00, \ 502 0x0c, 0x00, \ 503 0x06, 0x00, \ 504 0x03, 0x00, \ 505 0x01, 0x80, \ 506 0x00, 0xc0, \ 507 0x80, 0x20, \ 508 0xc0, 0x10 509 510 #define kMaskBursty12_11 \ 511 0xc0, 0x00, \ 512 0x60, 0x00, \ 513 0x30, 0x00, \ 514 0x18, 0x00, \ 515 0x0c, 0x00, \ 516 0x06, 0x00, \ 517 0x03, 0x00, \ 518 0x01, 0x80, \ 519 0x00, 0xc0, \ 520 0x00, 0x60, \ 521 0x80, 0x10 522 523 #define kMaskBursty12_12 \ 524 0x80, 0x00, \ 525 0xc0, 0x00, \ 526 0x60, 0x00, \ 527 0x30, 0x00, \ 528 0x18, 0x00, \ 529 0x0c, 0x00, \ 530 0x06, 0x00, \ 531 0x03, 0x00, \ 532 0x01, 0x80, \ 533 0x00, 0xc0, \ 534 0x00, 0x60, \ 535 0x00, 0x30 536 537 #define kPacketMaskBursty1 1, \ 538 kMaskBursty1_1 539 540 #define kPacketMaskBursty2 2, \ 541 kMaskBursty2_1, \ 542 kMaskBursty2_2 543 544 #define kPacketMaskBursty3 3, \ 545 kMaskBursty3_1, \ 546 kMaskBursty3_2, \ 547 kMaskBursty3_3 548 549 #define kPacketMaskBursty4 4, \ 550 kMaskBursty4_1, \ 551 kMaskBursty4_2, \ 552 kMaskBursty4_3, \ 553 kMaskBursty4_4 554 555 #define kPacketMaskBursty5 5, \ 556 kMaskBursty5_1, \ 557 kMaskBursty5_2, \ 558 kMaskBursty5_3, \ 559 kMaskBursty5_4, \ 560 kMaskBursty5_5 561 562 #define kPacketMaskBursty6 6, \ 563 kMaskBursty6_1, \ 564 kMaskBursty6_2, \ 565 kMaskBursty6_3, \ 566 kMaskBursty6_4, \ 567 kMaskBursty6_5, \ 568 kMaskBursty6_6 569 570 #define kPacketMaskBursty7 7, \ 571 kMaskBursty7_1, \ 572 kMaskBursty7_2, \ 573 kMaskBursty7_3, \ 574 kMaskBursty7_4, \ 575 kMaskBursty7_5, \ 576 kMaskBursty7_6, \ 577 kMaskBursty7_7 578 579 #define kPacketMaskBursty8 8, \ 580 kMaskBursty8_1, \ 581 kMaskBursty8_2, \ 582 kMaskBursty8_3, \ 583 kMaskBursty8_4, \ 584 kMaskBursty8_5, \ 585 kMaskBursty8_6, \ 586 kMaskBursty8_7, \ 587 kMaskBursty8_8 588 589 #define kPacketMaskBursty9 9, \ 590 kMaskBursty9_1, \ 591 kMaskBursty9_2, \ 592 kMaskBursty9_3, \ 593 kMaskBursty9_4, \ 594 kMaskBursty9_5, \ 595 kMaskBursty9_6, \ 596 kMaskBursty9_7, \ 597 kMaskBursty9_8, \ 598 kMaskBursty9_9 599 600 #define kPacketMaskBursty10 10, \ 601 kMaskBursty10_1, \ 602 kMaskBursty10_2, \ 603 kMaskBursty10_3, \ 604 kMaskBursty10_4, \ 605 kMaskBursty10_5, \ 606 kMaskBursty10_6, \ 607 kMaskBursty10_7, \ 608 kMaskBursty10_8, \ 609 kMaskBursty10_9, \ 610 kMaskBursty10_10 611 612 #define kPacketMaskBursty11 11, \ 613 kMaskBursty11_1, \ 614 kMaskBursty11_2, \ 615 kMaskBursty11_3, \ 616 kMaskBursty11_4, \ 617 kMaskBursty11_5, \ 618 kMaskBursty11_6, \ 619 kMaskBursty11_7, \ 620 kMaskBursty11_8, \ 621 kMaskBursty11_9, \ 622 kMaskBursty11_10, \ 623 kMaskBursty11_11 624 625 #define kPacketMaskBursty12 12, \ 626 kMaskBursty12_1, \ 627 kMaskBursty12_2, \ 628 kMaskBursty12_3, \ 629 kMaskBursty12_4, \ 630 kMaskBursty12_5, \ 631 kMaskBursty12_6, \ 632 kMaskBursty12_7, \ 633 kMaskBursty12_8, \ 634 kMaskBursty12_9, \ 635 kMaskBursty12_10, \ 636 kMaskBursty12_11, \ 637 kMaskBursty12_12 638 639 // clang-format on 640 } // namespace 641 642 namespace webrtc { 643 namespace fec_private_tables { 644 645 const uint8_t kPacketMaskBurstyTbl[] = { 646 12, 647 kPacketMaskBursty1, 648 kPacketMaskBursty2, 649 kPacketMaskBursty3, 650 kPacketMaskBursty4, 651 kPacketMaskBursty5, 652 kPacketMaskBursty6, 653 kPacketMaskBursty7, 654 kPacketMaskBursty8, 655 kPacketMaskBursty9, 656 kPacketMaskBursty10, 657 kPacketMaskBursty11, 658 kPacketMaskBursty12, 659 }; 660 661 } // namespace fec_private_tables 662 } // namespace webrtc