winlin

add utest for avc uev

@@ -283,6 +283,8 @@ SrsBitBuffer::~SrsBitBuffer() @@ -283,6 +283,8 @@ SrsBitBuffer::~SrsBitBuffer()
283 283
284 int SrsBitBuffer::initialize(SrsBuffer* s) { 284 int SrsBitBuffer::initialize(SrsBuffer* s) {
285 stream = s; 285 stream = s;
  286 + cb = 0;
  287 + cb_left = 0;
286 return ERROR_SUCCESS; 288 return ERROR_SUCCESS;
287 } 289 }
288 290
@@ -1511,5 +1511,97 @@ VOID TEST(KernelUtilityTest, UtilityString) @@ -1511,5 +1511,97 @@ VOID TEST(KernelUtilityTest, UtilityString)
1511 EXPECT_TRUE(srs_string_ends_with("Hello", "lo")); 1511 EXPECT_TRUE(srs_string_ends_with("Hello", "lo"));
1512 } 1512 }
1513 1513
  1514 +VOID TEST(KernelUtility, AvcUev)
  1515 +{
  1516 + int32_t v;
  1517 + SrsBuffer buf;
  1518 + SrsBitBuffer bb;
  1519 + char data[32];
  1520 +
  1521 + if (true) {
  1522 + data[0] = 0xff;
  1523 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 1;
  1524 + srs_avc_nalu_read_uev(&bb, v);
  1525 + EXPECT_EQ(0, v);
  1526 + }
  1527 +
  1528 + if (true) {
  1529 + data[0] = 0x40;
  1530 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1531 + srs_avc_nalu_read_uev(&bb, v);
  1532 + EXPECT_EQ(1, v);
  1533 + }
  1534 +
  1535 + if (true) {
  1536 + data[0] = 0x60;
  1537 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1538 + srs_avc_nalu_read_uev(&bb, v);
  1539 + EXPECT_EQ(2, v);
  1540 + }
  1541 +
  1542 + if (true) {
  1543 + data[0] = 0x20;
  1544 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1545 + srs_avc_nalu_read_uev(&bb, v);
  1546 + EXPECT_EQ(3, v);
  1547 + }
  1548 +
  1549 + if (true) {
  1550 + data[0] = 0x28;
  1551 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1552 + srs_avc_nalu_read_uev(&bb, v);
  1553 + EXPECT_EQ(4, v);
  1554 + }
  1555 +
  1556 + if (true) {
  1557 + data[0] = 0x30;
  1558 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1559 + srs_avc_nalu_read_uev(&bb, v);
  1560 + EXPECT_EQ(5, v);
  1561 + }
  1562 +
  1563 + if (true) {
  1564 + data[0] = 0x38;
  1565 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1566 + srs_avc_nalu_read_uev(&bb, v);
  1567 + EXPECT_EQ(6, v);
  1568 + }
  1569 +
  1570 + if (true) {
  1571 + data[0] = 0x10;
  1572 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1573 + srs_avc_nalu_read_uev(&bb, v);
  1574 + EXPECT_EQ(7, v);
  1575 + }
  1576 +
  1577 + if (true) {
  1578 + data[0] = 0x12;
  1579 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1580 + srs_avc_nalu_read_uev(&bb, v);
  1581 + EXPECT_EQ(8, v);
  1582 + }
  1583 +
  1584 + if (true) {
  1585 + data[0] = 0x14;
  1586 + buf.initialize((char*)data, 1); bb.initialize(&buf); v = 0;
  1587 + srs_avc_nalu_read_uev(&bb, v);
  1588 + EXPECT_EQ(9, v);
  1589 + }
  1590 +
  1591 + if (true) {
  1592 + data[0] = 0x01; data[1] = 0x12;
  1593 + buf.initialize((char*)data, 2); bb.initialize(&buf); v = 0;
  1594 + srs_avc_nalu_read_uev(&bb, v);
  1595 + EXPECT_EQ(128-1+9, v);
  1596 + }
  1597 +
  1598 + if (true) {
  1599 + data[0] = 0x00; data[1] = 0x91; data[2] = 0x00;
  1600 + buf.initialize((char*)data, 3); bb.initialize(&buf); v = 0;
  1601 + srs_avc_nalu_read_uev(&bb, v);
  1602 + EXPECT_EQ(256-1+0x22, v);
  1603 + }
  1604 +}
  1605 +
1514 #endif 1606 #endif
1515 1607