From a01f7f6509eaf8aa674f153cec0d167d74ad82a4 Mon Sep 17 00:00:00 2001 From: "pbos@webrtc.org" Date: Fri, 24 May 2013 13:01:57 +0000 Subject: [PATCH] Removed dead testH263Parser.cc BUG= R=stefan@webrtc.org Review URL: https://webrtc-codereview.appspot.com/1555004 git-svn-id: http://webrtc.googlecode.com/svn/trunk@4100 4adac7df-926f-26a2-2b94-8c16560cd09d --- .../test/testH263Parser/testH263Parser.cc | 580 ------------------ 1 file changed, 580 deletions(-) delete mode 100644 webrtc/modules/rtp_rtcp/test/testH263Parser/testH263Parser.cc diff --git a/webrtc/modules/rtp_rtcp/test/testH263Parser/testH263Parser.cc b/webrtc/modules/rtp_rtcp/test/testH263Parser/testH263Parser.cc deleted file mode 100644 index e4c36d1c2..000000000 --- a/webrtc/modules/rtp_rtcp/test/testH263Parser/testH263Parser.cc +++ /dev/null @@ -1,580 +0,0 @@ -/* - * Copyright (c) 2011 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. - */ - -#include -#include -#include -#include - -#include "h263_information.h" - -#define TEST_STR "Test H263 parser." -#define TEST_PASSED() std::cerr << TEST_STR << " : [OK]" << std::endl -#define PRINT_LINE std::cout << "------------------------------------------" << std::endl; - - -void PrintInfo(const H263Info* ptr) -{ - std::cout << "info = GOBs: {"; - for (int i = 0; i < ptr->numOfGOBs; i++) - { - std::cout << ptr->ptrGOBbuffer[i] << " "; - } - std::cout << "}" << std::endl; - std::cout << " sBit: {"; - for (int i = 0; i < ptr->numOfGOBs; i++) - { - std::cout << (int)ptr->ptrGOBbufferSBit[i] << " "; - } - std::cout << "}" << std::endl; - - std::cout << "uiH263PTypeFmt: " << (int)ptr->uiH263PTypeFmt << std::endl; - std::cout << " codecBits: " << (int)ptr->codecBits << std::endl; - std::cout << " pQuant: " << (int)ptr->pQuant << std::endl; - std::cout << " fType: " << (int)ptr->fType << std::endl; - std::cout << " cpmBit: " << (int)ptr->cpmBit << std::endl; - std::cout << " numOfGOBs: " << (int)ptr->numOfGOBs << std::endl; - std::cout << " numOfMBs: " << (int)ptr->totalNumOfMBs << std::endl; - std::cout << " " << std::endl; -}; - -void PrintMBInfo( - const H263Info* ptr, - const H263MBInfo* ptrMB) -{ - std::cout << " gQuant: {"; - for (int i = 0; i < ptr->numOfGOBs; i++) - { - std::cout << (int)ptr->ptrGQuant[i] << " "; - } - std::cout << "}" << std::endl; - std::cout << " " << std::endl; - - std::cout << "MBs:{"; - int k = 0; - for (int i = 0; i < ptr->numOfGOBs; i++) - { - std::cout << " {"; - for (int j = 0; j < ptr->ptrNumOfMBs[i]; j++) - { - std::cout << ptrMB->ptrBuffer[k++] << " "; - } - std::cout << "}" << std::endl; - } - std::cout << "}" << std::endl; - PRINT_LINE; -}; - -void ValidateResults( - const H263Info* ptr, - const H263Info* ptrRef) -{ - assert(ptr->uiH263PTypeFmt == ptrRef->uiH263PTypeFmt); - assert(ptr->codecBits == ptrRef->codecBits); - assert(ptr->pQuant == ptrRef->pQuant); - assert(ptr->fType == ptrRef->fType); - assert(ptr->numOfGOBs == ptrRef->numOfGOBs); - assert(ptr->totalNumOfMBs == ptrRef->totalNumOfMBs); - for (int i = 0; i < ptr->numOfGOBs; i++) - { - assert(ptr->ptrGOBbuffer[i] == ptrRef->ptrGOBbuffer[i]); - assert(ptr->ptrGOBbufferSBit[i] == ptrRef->ptrGOBbufferSBit[i]); - } - PrintInfo(ptr); -} - -void ValidateMBResults( - const H263Info* ptr, - const H263MBInfo* ptrMB, - const H263Info* ptrRef, - bool printRes = true) -{ - int offset = 0; - int numBytes = 0; - for (int i = 0; i < ptr->numOfGOBs; i++) - { - offset = ptr->CalculateMBOffset(i+1); - numBytes += ptrMB->ptrBuffer[offset - 1] / 8; - int numBytesRem = ptrMB->ptrBuffer[offset - 1] % 8; - if (numBytesRem) - { - numBytes++; - } - assert(ptr->ptrGQuant[i] == ptrRef->ptrGQuant[i]); - } - assert(ptr->ptrGOBbuffer[ptr->numOfGOBs] == numBytes); - assert(unsigned int( ptr->totalNumOfMBs) <= ptrMB->bufferSize); - if (printRes) - { - PrintMBInfo(ptr, ptrMB); - } -} - - -int _tmain(int argc, _TCHAR* argv[]) -{ - - std::string str; - std::cout << "--------------------------------" << std::endl; - std::cout << "------- Test H.263 Parser ------" << std::endl; - std::cout << "--------------------------------" << std::endl; - std::cout << " " << std::endl; - - // ----------------------------------------------------- - // Input data - H.263 encoded stream SQCIF (P-frame) - // ----------------------------------------------------- - const int lengthRefSQCIF = 77; - const unsigned char encodedStreamSQCIF[lengthRefSQCIF] = { - 0x00, 0x00, 0x81, 0xf6, 0x06, 0x04, 0x3f, 0xb7, 0xbc, 0x00, 0x00, 0x86, 0x23, - 0x5b, 0xdb, 0xdf, 0xb1, 0x93, 0xdb, 0xde, 0xd6, 0xf0, 0x00, 0x00, 0x8a, 0x27, - 0xdb, 0xcf, 0xad, 0xbe, 0x00, 0x00, 0x8e, 0x27, 0xed, 0xef, 0x80, 0x00, 0x00, - 0x92, 0x27, 0x6f, 0x7f, 0x80, 0x00, 0x00, 0x96, 0x20, 0xfc, 0xe2, 0xdb, 0xfe, - 0xb7, 0x7d, 0xea, 0x5f, 0xf8, 0xab, 0xd2, 0xff, 0xf6, 0xc9, 0xe5, 0x5e, 0x97, - 0xf7, 0xff, 0xad, 0x4f, 0x49, 0x3b, 0xff, 0xd6, 0xa6, 0x75, 0x82, 0x60}; - - // Expected results - H263Info infoRefSQCIF; - infoRefSQCIF.uiH263PTypeFmt = 1; - infoRefSQCIF.codecBits = 8; - infoRefSQCIF.pQuant = 4; - infoRefSQCIF.fType = 1; - infoRefSQCIF.cpmBit = 0; - infoRefSQCIF.numOfGOBs = 6; - infoRefSQCIF.totalNumOfMBs = 8*6; - - infoRefSQCIF.ptrGOBbuffer[0] = 0; infoRefSQCIF.ptrGOBbufferSBit[0] = 0; infoRefSQCIF.ptrGQuant[0] = 0; - infoRefSQCIF.ptrGOBbuffer[1] = 9; infoRefSQCIF.ptrGOBbufferSBit[1] = 0; infoRefSQCIF.ptrGQuant[1] = 4; - infoRefSQCIF.ptrGOBbuffer[2] = 22; infoRefSQCIF.ptrGOBbufferSBit[2] = 0; infoRefSQCIF.ptrGQuant[2] = 4; - infoRefSQCIF.ptrGOBbuffer[3] = 30; infoRefSQCIF.ptrGOBbufferSBit[3] = 0; infoRefSQCIF.ptrGQuant[3] = 4; - infoRefSQCIF.ptrGOBbuffer[4] = 37; infoRefSQCIF.ptrGOBbufferSBit[4] = 0; infoRefSQCIF.ptrGQuant[4] = 4; - infoRefSQCIF.ptrGOBbuffer[5] = 44; infoRefSQCIF.ptrGOBbufferSBit[5] = 0; infoRefSQCIF.ptrGQuant[5] = 4; - - // ---------------------------------------------------- - // Input data - H.263 encoded stream QCIF (P-frame) - // ---------------------------------------------------- - const int lengthRefQCIF = 123; - const unsigned char encodedStreamQCIF[lengthRefQCIF] = { - 0x00, 0x00, 0x81, 0x02, 0x0a, 0x04, 0x3f, 0xf8, 0x00, 0x00, 0x86, 0x27, 0x8b, - 0xc6, 0x9f, 0x17, 0x9c, 0x00, 0x00, 0x8a, 0x20, 0xbc, 0x22, 0xf8, 0x5f, 0x46, - 0x03, 0xc1, 0x77, 0x15, 0xe0, 0xb8, 0x38, 0x3f, 0x05, 0xa0, 0xbf, 0x8f, 0x00, - 0x00, 0x8e, 0x27, 0xfc, 0x5e, 0x5a, 0x33, 0x80, 0x00, 0x00, 0x92, 0x25, 0x8c, - 0x1e, 0xbf, 0xfc, 0x7e, 0x35, 0xfc, 0x00, 0x00, 0x96, 0x27, 0xff, 0x00, 0x00, - 0x9a, 0x20, 0xdb, 0x34, 0xef, 0xfc, 0x00, 0x00, 0x9e, 0x20, 0xaf, 0x17, 0x0d, - 0x3e, 0xde, 0x0f, 0x8f, 0xff, 0x80, 0x00, 0x00, 0xa2, 0x22, 0xbb, 0x27, 0x81, - 0xeb, 0xff, 0x5b, 0x07, 0xab, 0xff, 0xad, 0x9e, 0xd8, 0xc9, 0x6b, 0x75, 0x54, - 0xbf, 0xbe, 0x8a, 0xbd, 0xf2, 0xfb, 0xfb, 0x3d, 0x3d, 0x25, 0xb7, 0xf7, 0xfc, - 0x92, 0x4c, 0xdb, 0x6d, 0x69, 0xc0}; - - // Expected results - H263Info infoRefQCIF; - infoRefQCIF.uiH263PTypeFmt = 2; - infoRefQCIF.codecBits = 8; - infoRefQCIF.pQuant = 4; - infoRefQCIF.fType = 1; - infoRefQCIF.cpmBit = 0; - infoRefQCIF.numOfGOBs = 9; - infoRefQCIF.totalNumOfMBs = 11*9; - - infoRefQCIF.ptrGOBbuffer[0] = 0; infoRefQCIF.ptrGOBbufferSBit[0] = 0; infoRefQCIF.ptrGQuant[0] = 0; - infoRefQCIF.ptrGOBbuffer[1] = 8; infoRefQCIF.ptrGOBbufferSBit[1] = 0; infoRefQCIF.ptrGQuant[1] = 4; - infoRefQCIF.ptrGOBbuffer[2] = 17; infoRefQCIF.ptrGOBbufferSBit[2] = 0; infoRefQCIF.ptrGQuant[2] = 4; - infoRefQCIF.ptrGOBbuffer[3] = 38; infoRefQCIF.ptrGOBbufferSBit[3] = 0; infoRefQCIF.ptrGQuant[3] = 4; - infoRefQCIF.ptrGOBbuffer[4] = 47; infoRefQCIF.ptrGOBbufferSBit[4] = 0; infoRefQCIF.ptrGQuant[4] = 4; - infoRefQCIF.ptrGOBbuffer[5] = 58; infoRefQCIF.ptrGOBbufferSBit[5] = 0; infoRefQCIF.ptrGQuant[5] = 4; - infoRefQCIF.ptrGOBbuffer[6] = 63; infoRefQCIF.ptrGOBbufferSBit[6] = 0; infoRefQCIF.ptrGQuant[6] = 4; - infoRefQCIF.ptrGOBbuffer[7] = 71; infoRefQCIF.ptrGOBbufferSBit[7] = 0; infoRefQCIF.ptrGQuant[7] = 4; - infoRefQCIF.ptrGOBbuffer[8] = 84; infoRefQCIF.ptrGOBbufferSBit[8] = 0; infoRefQCIF.ptrGQuant[8] = 4; - - // --------------------------------------------------- - // Input data - H.263 encoded stream CIF (P-frame) - // --------------------------------------------------- - const int lengthRefCIF = 212; - const unsigned char encodedStreamCIF[lengthRefCIF] = { - 0x00, 0x00, 0x82, 0x9a, 0x0e, 0x04, 0x3f, 0xff, 0xff, 0x00, 0x00, 0x86, 0x27, - 0xff, 0xff, 0xe0, 0x00, 0x00, 0x8a, 0x27, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x8e, - 0x27, 0xff, 0xff, 0x6b, 0x09, 0x70, 0x00, 0x00, 0x92, 0x27, 0xff, 0xff, 0xe0, - 0x00, 0x00, 0x96, 0x27, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x9a, 0x27, 0x6f, 0x7f, - 0xff, 0xfe, 0x00, 0x00, 0x9e, 0x27, 0xff, 0xfe, 0xc6, 0x31, 0xe0, 0x00, 0x00, - 0xa2, 0x27, 0xff, 0xff, 0xe0, 0x00, 0x00, 0xa6, 0x27, 0xf6, 0xb7, 0xfe, 0xa6, - 0x14, 0x95, 0xb4, 0xc6, 0x41, 0x6b, 0x3a, 0x2e, 0x8d, 0x42, 0xef, 0xc0, 0x00, - 0x00, 0xaa, 0x27, 0xff, 0xb1, 0x95, 0x05, 0x0c, 0xe3, 0x4a, 0x17, 0xff, 0x80, - 0x00, 0x00, 0xae, 0x27, 0xff, 0xf6, 0xf7, 0xfe, 0x00, 0x00, 0xb2, 0x27, 0xff, - 0x8b, 0xdf, 0xff, 0x00, 0x00, 0xb6, 0x27, 0xff, 0xff, 0xe0, 0x00, 0x00, 0xba, - 0x26, 0x2f, 0x7f, 0xff, 0xfb, 0x58, 0x5b, 0x80, 0x00, 0x00, 0xbe, 0x20, 0xbc, - 0xe4, 0x5e, 0x6f, 0xff, 0xfe, 0xce, 0xf1, 0x94, 0x00, 0x00, 0xc2, 0x23, 0x18, - 0x4b, 0x17, 0x87, 0x0f, 0xff, 0xb3, 0xb6, 0x09, 0x63, 0x46, 0x73, 0x40, 0xb2, - 0x5f, 0x0a, 0xc6, 0xbe, 0xd7, 0x7a, 0x61, 0xbc, 0x68, 0xde, 0xf0, 0x00, 0x00, - 0xc6, 0x26, 0x2f, 0x0a, 0xff, 0xff, 0x17, 0x9a, 0x17, 0x8c, 0xb1, 0x37, 0x67, - 0xaf, 0xec, 0xf7, 0xa5, 0xbf, 0xb6, 0x49, 0x27, 0x6d, 0xb7, 0x92, 0x49, 0x1b, - 0xb4, 0x9a, 0xe0, 0x62}; - - // Expected results - H263Info infoRefCIF; - infoRefCIF.uiH263PTypeFmt = 3; - infoRefCIF.codecBits = 8; - infoRefCIF.pQuant = 4; - infoRefCIF.fType = 1; - infoRefCIF.cpmBit = 0; - infoRefCIF.numOfGOBs = 18; - infoRefCIF.totalNumOfMBs = 22*18; - - infoRefCIF.ptrGOBbuffer[0] = 0; infoRefCIF.ptrGOBbufferSBit[0] = 0; infoRefCIF.ptrGQuant[0] = 0; - infoRefCIF.ptrGOBbuffer[1] = 9; infoRefCIF.ptrGOBbufferSBit[1] = 0; infoRefCIF.ptrGQuant[1] = 4; - infoRefCIF.ptrGOBbuffer[2] = 16; infoRefCIF.ptrGOBbufferSBit[2] = 0; infoRefCIF.ptrGQuant[2] = 4; - infoRefCIF.ptrGOBbuffer[3] = 23; infoRefCIF.ptrGOBbufferSBit[3] = 0; infoRefCIF.ptrGQuant[3] = 4; - infoRefCIF.ptrGOBbuffer[4] = 32; infoRefCIF.ptrGOBbufferSBit[4] = 0; infoRefCIF.ptrGQuant[4] = 4; - infoRefCIF.ptrGOBbuffer[5] = 39; infoRefCIF.ptrGOBbufferSBit[5] = 0; infoRefCIF.ptrGQuant[5] = 4; - infoRefCIF.ptrGOBbuffer[6] = 46; infoRefCIF.ptrGOBbufferSBit[6] = 0; infoRefCIF.ptrGQuant[6] = 4; - infoRefCIF.ptrGOBbuffer[7] = 54; infoRefCIF.ptrGOBbufferSBit[7] = 0; infoRefCIF.ptrGQuant[7] = 4; - infoRefCIF.ptrGOBbuffer[8] = 63; infoRefCIF.ptrGOBbufferSBit[8] = 0; infoRefCIF.ptrGQuant[8] = 4; - infoRefCIF.ptrGOBbuffer[9] = 70; infoRefCIF.ptrGOBbufferSBit[9] = 0; infoRefCIF.ptrGQuant[9] = 4; - infoRefCIF.ptrGOBbuffer[10] = 90; infoRefCIF.ptrGOBbufferSBit[10] = 0; infoRefCIF.ptrGQuant[10] = 4; - infoRefCIF.ptrGOBbuffer[11] = 104; infoRefCIF.ptrGOBbufferSBit[11] = 0; infoRefCIF.ptrGQuant[11] = 4; - infoRefCIF.ptrGOBbuffer[12] = 112; infoRefCIF.ptrGOBbufferSBit[12] = 0; infoRefCIF.ptrGQuant[12] = 4; - infoRefCIF.ptrGOBbuffer[13] = 120; infoRefCIF.ptrGOBbufferSBit[13] = 0; infoRefCIF.ptrGQuant[13] = 4; - infoRefCIF.ptrGOBbuffer[14] = 127; infoRefCIF.ptrGOBbufferSBit[14] = 0; infoRefCIF.ptrGQuant[14] = 4; - infoRefCIF.ptrGOBbuffer[15] = 138; infoRefCIF.ptrGOBbufferSBit[15] = 0; infoRefCIF.ptrGQuant[15] = 4; - infoRefCIF.ptrGOBbuffer[16] = 151; infoRefCIF.ptrGOBbufferSBit[16] = 0; infoRefCIF.ptrGQuant[16] = 4; - infoRefCIF.ptrGOBbuffer[17] = 180; infoRefCIF.ptrGOBbufferSBit[17] = 0; infoRefCIF.ptrGQuant[17] = 4; - - // ----------------------------------------------------------------------- - // Input data - H.263 encoded stream QCIF (I-frame). Non byte aligned GOBs - // ----------------------------------------------------------------------- - const int lengthRefQCIF_N = 2020; - const unsigned char encodedStreamQCIF_N[lengthRefQCIF_N] = { - 0x00,0x00,0x80,0x06,0x08,0x07,0x34,0xe4,0xf7,0x66,0x75,0x12,0x9b,0x64,0x83,0xe9,0x4c,0xc7,0x3c,0x77,0x83,0xcf,0x67,0x96, - 0xe0,0x06,0x69,0x95,0x70,0x60,0x43,0x53,0x96,0x8a,0xa2,0x9e,0x96,0xf8,0x79,0xf0,0xf2,0xb8,0x30,0x21,0xb0,0x0c,0xc0,0x22, - 0x0e,0x70,0x12,0xb0,0x30,0x21,0x9e,0x03,0x3e,0x02,0x22,0xa8,0x83,0xcf,0x7d,0xe8,0xf3,0x85,0x8d,0x01,0x47,0x29,0x03,0x02, - 0x16,0x5c,0x06,0x7c,0x84,0x56,0x9c,0x0c,0x08,0x49,0x70,0x29,0xe1,0x68,0x39,0xbf,0xd0,0xef,0x6f,0x6e,0x8e,0x64,0x72,0x70, - 0x30,0x21,0x03,0xe0,0x53,0x82,0xab,0xe2,0xd4,0xa8,0x3e,0x12,0x80,0xc8,0x2a,0x9f,0x07,0x23,0xdf,0x4f,0xaa,0x5b,0x72,0xaa, - 0x22,0x81,0x21,0x7a,0x80,0x54,0x85,0x82,0x50,0x17,0x40,0x2a,0x7f,0x3c,0xfe,0xa5,0x49,0x39,0x08,0x18,0x20,0x65,0x95,0x8c, - 0x8f,0x67,0xc7,0xc0,0x63,0xe1,0x1b,0xf1,0xef,0xfd,0x25,0x13,0x24,0x9c,0xa9,0x1f,0x02,0x9b,0xe1,0x19,0xae,0x97,0x02,0x9a, - 0x84,0x6f,0xbf,0xfd,0x14,0xf2,0x09,0xe3,0x10,0x38,0x0a,0x61,0x99,0x6e,0xf8,0x14,0xce,0x7e,0xff,0xe7,0xa7,0x8e,0x4f,0x14, - 0xa9,0x80,0xa6,0x71,0x3a,0x98,0x06,0x1c,0xfc,0xff,0xcd,0x8f,0x18,0x9e,0x24,0x52,0x05,0x9c,0x42,0xa5,0x33,0x9f,0xdf,0x80, - 0x00,0x21,0x0e,0xf6,0x61,0xe2,0x7a,0x35,0x64,0x8e,0x61,0xa2,0x58,0x2a,0x0b,0x45,0x4c,0xe0,0xa1,0xa0,0xa6,0x83,0x58,0xf0, - 0x08,0x77,0x3e,0xb5,0xc6,0x05,0x6b,0x6e,0x69,0x06,0x07,0xe6,0x82,0x9b,0xc8,0x7e,0x2d,0x6d,0x06,0x07,0xe3,0xe0,0xa6,0x2e, - 0x05,0x58,0x39,0xbf,0xd1,0xc7,0x9e,0x15,0x29,0x39,0x31,0xbc,0x18,0x1f,0x62,0xf5,0x95,0x20,0xa0,0xe6,0xff,0x38,0x83,0x03, - 0xea,0x3f,0x02,0xc8,0x05,0x71,0x31,0xef,0x79,0x49,0x48,0x73,0x06,0x07,0xd4,0x4b,0x5f,0xc0,0xe4,0x81,0x3b,0x03,0x03,0xea, - 0x24,0x81,0x90,0x55,0x41,0x64,0x2b,0xea,0xd1,0xcc,0xa5,0x99,0x79,0x06,0x07,0xd8,0x49,0x05,0x39,0x64,0x16,0x3d,0x03,0x03, - 0xee,0x24,0x83,0x0b,0xf9,0x46,0x50,0x27,0xdf,0xd4,0xa6,0xa6,0x3d,0x83,0x03,0xf0,0x25,0x83,0x0b,0xf8,0x19,0xbe,0x83,0x03, - 0xf2,0x3f,0x06,0x17,0xf1,0x58,0xd6,0x04,0xff,0xfa,0x94,0xb4,0x87,0xe0,0x43,0x2f,0x06,0x17,0xf1,0x58,0x11,0x7b,0xe0,0x21, - 0x97,0x82,0x9d,0x58,0x11,0x7b,0xf9,0xf8,0x15,0xa2,0x9f,0x40,0x3e,0xf4,0x07,0xd5,0x81,0x9f,0xa1,0x7b,0xca,0x9a,0xbb,0xdf, - 0xcf,0xc0,0xf3,0xb0,0x09,0x37,0x00,0x97,0x63,0xee,0x47,0xff,0xff,0xe8,0x68,0xa5,0xc6,0x43,0xdf,0x2f,0x06,0xad,0xad,0x3f, - 0xef,0xf6,0x30,0x03,0xea,0x80,0xcf,0x80,0x8b,0x8a,0xe2,0xb5,0x40,0xa7,0x2e,0x06,0x27,0xf7,0xc2,0xd6,0x47,0x2f,0xc1,0x3f, - 0x80,0x00,0x44,0x1f,0xb5,0xbd,0xc5,0xed,0x4f,0x70,0x7c,0x43,0xec,0x8e,0xcf,0x6e,0xcf,0x7b,0x88,0x7d,0x9b,0xfc,0x13,0xfc, - 0x24,0x3b,0xf4,0xe1,0x61,0xe1,0xe2,0x61,0x5f,0xa7,0x13,0x15,0x17,0x1b,0x08,0xff,0x38,0x98,0x98,0xb8,0xb8,0x2f,0xf9,0xc3, - 0xc2,0xc5,0x43,0xc0,0xff,0xce,0x09,0xfa,0x16,0x06,0x07,0xfe,0x6f,0x4e,0xcf,0xaf,0x30,0x3f,0xf3,0x70,0x6c,0x74,0x6e,0x81, - 0xff,0x9b,0x33,0x13,0x53,0x2c,0x0f,0xf8,0x00,0x04,0x61,0xf0,0xd4,0xf7,0x17,0xb6,0x3a,0x3e,0x1d,0xfa,0x6f,0x0f,0xaf,0x4f, - 0xf0,0xef,0xd3,0x81,0x85,0x84,0x88,0x86,0x7e,0x9c,0x4c,0x64,0x64,0x84,0x2b,0xfc,0xe3,0xa4,0x24,0xa4,0xe0,0xdf,0xe7,0x1f, - 0x1d,0x27,0x25,0x03,0xff,0x38,0xd8,0xb9,0x19,0x0f,0xff,0xf9,0xc4,0x42,0xc6,0xc4,0xff,0xc0,0xce,0x05,0xf6,0x16,0x05,0xfe, - 0x06,0x6f,0x0e,0x4f,0x8e,0xef,0xf0,0x59,0x6d,0x68,0x72,0x3e,0xd9,0x1f,0xff,0x02,0x00,0x01,0x20,0x7c,0x3a,0x29,0x4c,0xf7, - 0xa5,0x34,0x0c,0x3d,0xb5,0xae,0x3a,0x1d,0xf5,0x6f,0xc3,0xb0,0x30,0x33,0x82,0x03,0xa0,0x60,0x66,0xbf,0x01,0xc0,0x04,0x5b, - 0x07,0x04,0x16,0x10,0xf3,0xf2,0xe1,0x94,0x17,0x81,0x82,0xd1,0x54,0x40,0xf0,0x7e,0xb4,0x2d,0x16,0x2d,0x83,0x82,0x0a,0xb8, - 0x0e,0x08,0x2c,0x11,0xe7,0xf5,0xc5,0x02,0x10,0x96,0xb7,0x8b,0x45,0x91,0x60,0xc0,0x83,0x89,0x60,0xa8,0x07,0x2b,0xf9,0x70, - 0x1c,0x10,0x65,0xb0,0x70,0x41,0xa0,0x8f,0x3f,0xae,0x28,0x18,0x10,0x91,0xf8,0x19,0x54,0x81,0xf1,0x20,0xc0,0x84,0x8f,0xc0, - 0xcf,0x90,0x3d,0x6c,0x1c,0x10,0x55,0xa0,0x70,0x41,0x7f,0xcf,0x7f,0xf8,0x90,0x60,0x43,0x0b,0xc1,0x85,0xfb,0x80,0xc4,0x81, - 0x8a,0xe1,0x81,0x81,0x0c,0x56,0x0c,0x2f,0xd0,0x31,0x40,0x62,0xb5,0x80,0x70,0x41,0x55,0xc1,0xc1,0x05,0x7e,0xff,0x5c,0x18, - 0x30,0x21,0xbf,0x06,0x17,0xe8,0x18,0xa0,0x31,0x5b,0xec,0x06,0x00,0x34,0x18,0x6f,0xbf,0xa0,0x0c,0x95,0x01,0xc1,0x04,0x51, - 0x07,0x04,0x11,0xf4,0xf4,0x0f,0x77,0x06,0x04,0x34,0x18,0x6f,0xc5,0x60,0xaa,0x07,0x34,0x09,0xd0,0x18,0x10,0xef,0x03,0x0b, - 0xf8,0x5e,0x0a,0xa0,0x73,0x40,0x93,0xc7,0x8e,0x4d,0x51,0xe5,0xdc,0xf9,0x03,0xdc,0x01,0x81,0x0e,0x54,0x0a,0x71,0xf8,0x11, - 0x82,0xc6,0x98,0x0c,0x00,0x69,0x72,0xe5,0xe0,0xe4,0xff,0x25,0x67,0x80,0xcf,0x90,0xb9,0x1f,0x15,0x01,0x9f,0x21,0x73,0xe4, - 0x17,0x63,0x06,0x04,0x34,0x7c,0x05,0xc0,0x8b,0xd7,0x41,0x81,0x0c,0x12,0x00,0xc0,0x2a,0xfe,0x2d,0x42,0x03,0x80,0x66,0x21, - 0x71,0xf0,0x1c,0x03,0x30,0x6a,0xfb,0x05,0xd5,0xc1,0x81,0x0c,0x12,0x01,0x4c,0x0a,0xbf,0x8b,0x54,0xa0,0x06,0x09,0x00,0xa6, - 0x05,0x5f,0xc5,0xa7,0x40,0xa2,0x03,0x2e,0x38,0xd2,0xe2,0x77,0xe8,0x10,0x00,0x09,0x43,0xa6,0x72,0xbf,0x3c,0xea,0x0a,0x1c, - 0x60,0xb4,0x54,0xee,0x5e,0x6a,0x16,0x21,0xcf,0xb4,0x75,0x06,0x07,0xdb,0xec,0x14,0x0b,0x1d,0xc1,0x81,0xf4,0x1f,0x87,0xc2, - 0xc8,0x98,0xe8,0x37,0xfa,0x3d,0x83,0x03,0xe6,0x3f,0x27,0x7f,0x06,0x07,0xd4,0x4b,0x03,0x25,0x62,0xd9,0x19,0x38,0x27,0xfe, - 0xfe,0x0c,0x0f,0xb0,0xfc,0x0c,0xd4,0x3f,0x16,0xbc,0x41,0x24,0xbf,0x04,0x7a,0x04,0x7e,0x2d,0x90,0x74,0x2c,0xfc,0xcc,0x4f, - 0x28,0xc6,0x09,0xfd,0x6e,0x80,0xa1,0x2f,0x03,0x34,0x08,0xfc,0x5a,0xe2,0x07,0xd5,0x81,0x9a,0x85,0xf0,0x60,0x7c,0x32,0x82, - 0x06,0x07,0xe4,0x32,0xff,0x77,0xff,0x6f,0x53,0xf2,0x76,0xdd,0x7c,0x08,0x30,0x3e,0xe0,0x15,0xfe,0x0c,0x0f,0xaa,0xa0,0xc1, - 0xf3,0xff,0x2d,0x6d,0x0f,0xc0,0xc0,0xfa,0x2a,0x0c,0x1f,0x81,0x81,0xf3,0x54,0x20,0xb9,0xee,0x07,0x4c,0x86,0x18,0xdf,0x01, - 0x81,0xf3,0xf0,0x9d,0xf0,0x18,0x1f,0x30,0xc9,0xe6,0x0b,0x2c,0x0b,0xaf,0x40,0xc0,0xf9,0x86,0x4f,0x00,0xc0,0xf9,0xc2,0x67, - 0x98,0x3c,0xac,0xaa,0xba,0x83,0x03,0xe5,0x16,0x01,0xce,0x20,0xe0,0xf9,0xbd,0x41,0xed,0x45,0x2c,0xc3,0x68,0x38,0x3e,0x6d, - 0x00,0xe0,0xfa,0x3d,0xc1,0x00,0x00,0x4c,0x1d,0xab,0xda,0xb3,0x51,0x2f,0xaa,0xcd,0x45,0xc5,0x39,0xf1,0xf3,0x8c,0x90,0x8e, - 0x92,0x86,0x7f,0x9c,0xa4,0xbc,0xb4,0xcc,0x1f,0xfa,0xb9,0x48,0xf1,0xd0,0x8b,0xb8,0x9b,0x94,0xb6,0x51,0x84,0xbb,0xa6,0x2c, - 0x52,0xaf,0xde,0xad,0x58,0x2b,0x82,0x32,0xfe,0xb9,0x50,0x60,0x81,0xc1,0x86,0xfb,0x06,0x27,0xf5,0x50,0x39,0xa0,0x93,0x20, - 0xc1,0x04,0x01,0x81,0xf8,0x31,0x3f,0x7e,0x07,0x34,0x12,0x4a,0x84,0x21,0xf6,0x88,0xa0,0x46,0x0b,0x25,0xc1,0x81,0x08,0x2e, - 0xe8,0x31,0xbf,0xc3,0x60,0x95,0xe5,0x1f,0x90,0x40,0x73,0x40,0xa0,0xd7,0x35,0xa1,0x00,0x18,0x50,0x42,0xf0,0x62,0x7e,0x81, - 0xce,0x03,0x9a,0x52,0x01,0xc0,0xc2,0x83,0x2b,0x06,0x27,0xe2,0x83,0x9a,0x05,0x32,0x0c,0x08,0x41,0x72,0xd7,0x51,0xa4,0x2d, - 0x60,0x59,0x36,0x0c,0x08,0x38,0x94,0xb1,0x6f,0xfa,0xca,0xed,0x62,0x33,0x6f,0x18,0x18,0x42,0xae,0x6c,0x7a,0x01,0x80,0xc2, - 0x83,0xfc,0x18,0x9f,0x7f,0x8b,0x26,0x47,0xa0,0x80,0x0c,0x28,0x47,0xc1,0x89,0xf7,0x56,0x2c,0x9d,0x05,0x00,0x91,0xa2,0x35, - 0x2d,0x1c,0xf0,0x5d,0x3a,0x0a,0x01,0x2b,0xa3,0xaa,0x04,0x41,0x3d,0xdc,0x2f,0x85,0x5c,0xb0,0x21,0x80,0x60,0x30,0xa1,0x00, - 0xc5,0x7c,0x86,0x72,0x80,0xc0,0xfc,0x84,0x00,0x61,0x42,0x3c,0x0c,0x4f,0xd8,0x67,0x36,0x0c,0x08,0x38,0xfb,0x04,0x60,0x55, - 0x83,0x45,0xfe,0x6a,0x5c,0x14,0x02,0x50,0x29,0x86,0x6e,0xfc,0x5c,0x5b,0x0c,0x79,0x10,0x60,0x7e,0x02,0x10,0x30,0xa1,0x05, - 0xc0,0x45,0xf1,0xa0,0xc0,0xfb,0x89,0x00,0xc2,0x84,0x03,0x80,0x0d,0x25,0x04,0xa1,0xf0,0x29,0x86,0x31,0xc0,0x84,0x3e,0x05, - 0x34,0x06,0xb0,0x04,0xd3,0xb4,0x36,0x85,0xcb,0x88,0x06,0x07,0xdc,0x4a,0x06,0x14,0x20,0x21,0x20,0x15,0xc2,0x03,0x03,0xec, - 0x3e,0x06,0x14,0x20,0x20,0x01,0x01,0x5c,0x40,0x1e,0x1f,0x02,0x9b,0xc8,0x01,0x7d,0x07,0x15,0x0f,0x81,0x4d,0xe0,0x20,0x0b, - 0x37,0x74,0x25,0xa0,0xb2,0x86,0x5b,0xf8,0x30,0x3e,0xc5,0xc0,0xc2,0x83,0x84,0x00,0x62,0x40,0xc5,0x6f,0x10,0x03,0x7c,0x0c, - 0x28,0x28,0x91,0x01,0xc8,0x04,0x7e,0x50,0x5c,0x0a,0x65,0x48,0x1c,0xeb,0x15,0x17,0x01,0x8f,0x0d,0x1e,0x11,0xfd,0x08,0xae, - 0x18,0x00,0x02,0x70,0xe5,0x5f,0x95,0x9a,0x8e,0x7e,0x56,0x23,0x3e,0x42,0x31,0xed,0xf3,0x90,0x94,0x92,0x96,0x87,0x7f,0x9c, - 0xc4,0xdc,0xdc,0xf4,0x1f,0xfa,0x79,0xa9,0x78,0x0c,0x1f,0xd9,0x72,0x32,0xaa,0x1f,0x32,0x6a,0x76,0x7e,0xfe,0x79,0x59,0x75, - 0xb7,0x83,0xb0,0x62,0xc0,0x9f,0x03,0x0d,0xc0,0xbe,0x19,0x91,0xbc,0x05,0xd4,0x6e,0xf3,0xe3,0x90,0x46,0x25,0x9a,0x06,0x07, - 0xe0,0x7c,0x06,0x4b,0x28,0x34,0xdf,0xef,0xa2,0xa1,0x05,0x56,0x03,0x07,0xf9,0x00,0x82,0xb4,0x8c,0x26,0x1c,0x12,0xbc,0x23, - 0xa5,0xa3,0x98,0x8c,0x9a,0x14,0x16,0x2f,0x92,0xad,0x25,0xa0,0x5c,0x3e,0xc4,0x13,0x63,0x6f,0x97,0x05,0x28,0xdb,0x8d,0x08, - 0x48,0xcf,0x53,0x03,0x03,0xef,0xe1,0xd0,0x28,0xe0,0x31,0x5f,0x8b,0x32,0x8d,0xb4,0xfd,0x68,0xfd,0x58,0x30,0x3e,0xea,0x94, - 0xe8,0xf6,0x25,0xc5,0x69,0x98,0xc4,0xa1,0x83,0xc6,0x21,0xe2,0xc2,0xb8,0x60,0x68,0x80,0x5c,0xf9,0x75,0x15,0x32,0x05,0xb4, - 0x11,0x74,0x9a,0x55,0xa8,0x21,0x02,0x30,0x13,0x24,0xac,0x06,0x07,0xd9,0x50,0x19,0x2c,0xa0,0xd2,0xff,0x9f,0xae,0x06,0x07, - 0xd5,0x56,0x08,0xe0,0xaa,0x4a,0x0a,0xe3,0x4e,0xa8,0x83,0x96,0x0f,0x43,0x83,0x43,0xfe,0xf5,0xc9,0x83,0x5a,0x03,0x18,0x07, - 0x08,0x0a,0x44,0x1b,0x50,0x12,0x5a,0xe0,0x60,0x7d,0x4b,0x97,0xf8,0xd2,0xb0,0x18,0x1f,0x42,0xe5,0xfe,0x34,0x75,0x0a,0xe2, - 0x3c,0x80,0x3e,0x7f,0xf1,0x80,0xd9,0x80,0x9d,0xac,0x06,0x07,0xd1,0x50,0x17,0x07,0xcf,0xfe,0xa4,0x18,0x1f,0x45,0x40,0x5c, - 0x23,0x76,0x88,0xdc,0x3c,0x18,0x70,0x52,0x20,0x9a,0xa7,0x06,0x07,0xcd,0x52,0x70,0x8e,0x90,0x18,0x1f,0x32,0xe0,0x2e,0x58, - 0x39,0x20,0x76,0x88,0x3b,0xf1,0xf7,0x7d,0x04,0x89,0xf0,0x60,0x7c,0x8b,0x81,0x52,0x82,0x03,0x1b,0xfc,0x1d,0x12,0xcc,0x03, - 0x03,0xe3,0xe5,0x83,0x37,0x88,0x70,0xe0,0x56,0x00,0x01,0x40,0x73,0x4f,0xbf,0x11,0x9f,0x22,0xfe,0xc5,0x22,0x8f,0x20,0x8d, - 0x7b,0x7e,0x65,0x26,0x64,0x78,0x4d,0x2d,0x6c,0x26,0x87,0x7f,0xf4,0x0f,0xa7,0x7c,0xe5,0xb1,0x68,0x5a,0x2d,0xa2,0xdf,0x01, - 0x82,0xd7,0xc1,0x41,0x7a,0xf7,0xdd,0x7f,0xad,0xae,0x2e,0xa3,0x57,0x7c,0x06,0x23,0x40,0x5f,0x89,0x9b,0x46,0x43,0x6b,0xfc, - 0xff,0x32,0x44,0x9a,0x53,0x5e,0xfb,0x0b,0xf2,0x6e,0x03,0x8b,0xfd,0xa3,0x6c,0x07,0x17,0xfb,0x1a,0xaa,0x76,0x60,0xf1,0xcf, - 0x10,0xff,0x5b,0x60,0x38,0xbf,0xdb,0x3b,0x17,0x18,0xe7,0x8f,0x1d,0xa4,0x3c,0x0c,0x9d,0x22,0x3e,0xd7,0x00,0xc9,0x63,0xf7, - 0x38,0xb8,0xc7,0x4c,0x78,0xed,0x31,0xe3,0x9d,0x22,0x3e,0xe7,0x17,0x19,0x6d,0xec,0x27,0xd0,0x8a,0xbc,0x3b,0xe3,0x05,0x2e, - 0xd2,0x51,0xe2,0x67,0x58,0x8f,0xb5,0xb0,0x97,0x63,0x61,0x2e,0x82,0x88,0x4d,0x9a,0xa3,0xc4,0xce,0x91,0x3f,0x57,0x61,0x2e, - 0x96,0xc2,0x5c,0x95,0x10,0x9b,0x13,0x21,0x33,0xa4,0x4f,0xcd,0x9f,0x84,0xd8,0x92,0xc5,0x86,0x77,0xd2,0x3a,0xc7,0xc2,0x32, - 0x38,0x2f,0x73,0x89}; - - // Expected results - H263Info infoRefQCIF_N; - infoRefQCIF_N.uiH263PTypeFmt = 2; - infoRefQCIF_N.codecBits = 0; - infoRefQCIF_N.pQuant = 7; - infoRefQCIF_N.fType = 0; - infoRefQCIF_N.cpmBit = 0; - infoRefQCIF_N.numOfGOBs = 9; - infoRefQCIF_N.totalNumOfMBs = 11*9; - - infoRefQCIF_N.ptrGOBbuffer[0] = 0; infoRefQCIF_N.ptrGOBbufferSBit[0] = 0; infoRefQCIF_N.ptrGQuant[0] = 0; - infoRefQCIF_N.ptrGOBbuffer[1] = 215; infoRefQCIF_N.ptrGOBbufferSBit[1] = 2; infoRefQCIF_N.ptrGQuant[1] = 7; - infoRefQCIF_N.ptrGOBbuffer[2] = 456; infoRefQCIF_N.ptrGOBbufferSBit[2] = 1; infoRefQCIF_N.ptrGQuant[2] = 7; - infoRefQCIF_N.ptrGOBbuffer[3] = 535; infoRefQCIF_N.ptrGOBbufferSBit[3] = 5; infoRefQCIF_N.ptrGQuant[3] = 7; - infoRefQCIF_N.ptrGOBbuffer[4] = 615; infoRefQCIF_N.ptrGOBbufferSBit[4] = 7; infoRefQCIF_N.ptrGQuant[4] = 7; - infoRefQCIF_N.ptrGOBbuffer[5] = 925; infoRefQCIF_N.ptrGOBbufferSBit[5] = 4; infoRefQCIF_N.ptrGQuant[5] = 7; - infoRefQCIF_N.ptrGOBbuffer[6] = 1133; infoRefQCIF_N.ptrGOBbufferSBit[6] = 1; infoRefQCIF_N.ptrGQuant[6] = 7; - infoRefQCIF_N.ptrGOBbuffer[7] = 1512; infoRefQCIF_N.ptrGOBbufferSBit[7] = 6; infoRefQCIF_N.ptrGQuant[7] = 7; - infoRefQCIF_N.ptrGOBbuffer[8] = 1832; infoRefQCIF_N.ptrGOBbufferSBit[8] = 7; infoRefQCIF_N.ptrGQuant[8] = 7; - - // -------------------------------------------------- - // Input data - H.263 encoded stream CIF (I-frame) - // -------------------------------------------------- - - FILE* openFile = fopen("H263Foreman_CIF_Iframe.bin", "rb"); - - fseek(openFile, 0, SEEK_END); - int lengthRefCIF_I = ftell(openFile); - fseek(openFile, 0, SEEK_SET); - - unsigned char* encodedStreamCIF_I = new unsigned char[lengthRefCIF_I]; - fread(encodedStreamCIF_I, 1, lengthRefCIF_I, openFile); - fclose(openFile); - - // Expected results - H263Info infoRefCIF_I; - infoRefCIF_I.uiH263PTypeFmt = 3; - infoRefCIF_I.codecBits = 0; - infoRefCIF_I.pQuant = 5; - infoRefCIF_I.fType = 0; - infoRefCIF_I.cpmBit = 0; - infoRefCIF_I.numOfGOBs = 18; - infoRefCIF_I.totalNumOfMBs = 22*18; - - infoRefCIF_I.ptrGOBbuffer[0] = 0; infoRefCIF_I.ptrGOBbufferSBit[0] = 0; infoRefCIF_I.ptrGQuant[0] = 0; - infoRefCIF_I.ptrGOBbuffer[1] = 1607; infoRefCIF_I.ptrGOBbufferSBit[1] = 0; infoRefCIF_I.ptrGQuant[1] = 5; - infoRefCIF_I.ptrGOBbuffer[2] = 2759; infoRefCIF_I.ptrGOBbufferSBit[2] = 0; infoRefCIF_I.ptrGQuant[2] = 5; - infoRefCIF_I.ptrGOBbuffer[3] = 3699; infoRefCIF_I.ptrGOBbufferSBit[3] = 0; infoRefCIF_I.ptrGQuant[3] = 5; - infoRefCIF_I.ptrGOBbuffer[4] = 4506; infoRefCIF_I.ptrGOBbufferSBit[4] = 0; infoRefCIF_I.ptrGQuant[4] = 5; - infoRefCIF_I.ptrGOBbuffer[5] = 5260; infoRefCIF_I.ptrGOBbufferSBit[5] = 0; infoRefCIF_I.ptrGQuant[5] = 5; - infoRefCIF_I.ptrGOBbuffer[6] = 6254; infoRefCIF_I.ptrGOBbufferSBit[6] = 0; infoRefCIF_I.ptrGQuant[6] = 5; - infoRefCIF_I.ptrGOBbuffer[7] = 7117; infoRefCIF_I.ptrGOBbufferSBit[7] = 0; infoRefCIF_I.ptrGQuant[7] = 5; - infoRefCIF_I.ptrGOBbuffer[8] = 7804; infoRefCIF_I.ptrGOBbufferSBit[8] = 0; infoRefCIF_I.ptrGQuant[8] = 5; - infoRefCIF_I.ptrGOBbuffer[9] = 8600; infoRefCIF_I.ptrGOBbufferSBit[9] = 0; infoRefCIF_I.ptrGQuant[9] = 5; - infoRefCIF_I.ptrGOBbuffer[10] = 9419; infoRefCIF_I.ptrGOBbufferSBit[10] = 0; infoRefCIF_I.ptrGQuant[10] = 5; - infoRefCIF_I.ptrGOBbuffer[11] = 10126; infoRefCIF_I.ptrGOBbufferSBit[11] = 0; infoRefCIF_I.ptrGQuant[11] = 5; - infoRefCIF_I.ptrGOBbuffer[12] = 10723; infoRefCIF_I.ptrGOBbufferSBit[12] = 0; infoRefCIF_I.ptrGQuant[12] = 5; - infoRefCIF_I.ptrGOBbuffer[13] = 11280; infoRefCIF_I.ptrGOBbufferSBit[13] = 0; infoRefCIF_I.ptrGQuant[13] = 5; - infoRefCIF_I.ptrGOBbuffer[14] = 11910; infoRefCIF_I.ptrGOBbufferSBit[14] = 0; infoRefCIF_I.ptrGQuant[14] = 5; - infoRefCIF_I.ptrGOBbuffer[15] = 12430; infoRefCIF_I.ptrGOBbufferSBit[15] = 0; infoRefCIF_I.ptrGQuant[15] = 5; - infoRefCIF_I.ptrGOBbuffer[16] = 12925; infoRefCIF_I.ptrGOBbufferSBit[16] = 0; infoRefCIF_I.ptrGQuant[16] = 5; - infoRefCIF_I.ptrGOBbuffer[17] = 13506; infoRefCIF_I.ptrGOBbufferSBit[17] = 0; infoRefCIF_I.ptrGQuant[17] = 5; - - // -------------------------------------------------- - // Input data - H.263 encoded stream CIF (P-frame) - // -------------------------------------------------- - - openFile = fopen("H263Foreman_CIF_Pframe.bin", "rb"); - - fseek(openFile, 0, SEEK_END); - int lengthRefCIF_P = ftell(openFile); - fseek(openFile, 0, SEEK_SET); - - unsigned char* encodedStreamCIF_P = new unsigned char[lengthRefCIF_P]; - fread(encodedStreamCIF_P, 1, lengthRefCIF_P, openFile); - fclose(openFile); - - // Expected results - H263Info infoRefCIF_P; - infoRefCIF_P.uiH263PTypeFmt = 3; - infoRefCIF_P.codecBits = 8; - infoRefCIF_P.pQuant = 4; - infoRefCIF_P.fType = 1; - infoRefCIF_P.cpmBit = 0; - infoRefCIF_P.numOfGOBs = 18; - infoRefCIF_P.totalNumOfMBs = 22*18; - - infoRefCIF_P.ptrGOBbuffer[0] = 0; infoRefCIF_P.ptrGOBbufferSBit[0] = 0; infoRefCIF_P.ptrGQuant[0] = 0; - infoRefCIF_P.ptrGOBbuffer[1] = 252; infoRefCIF_P.ptrGOBbufferSBit[1] = 0; infoRefCIF_P.ptrGQuant[1] = 5; - infoRefCIF_P.ptrGOBbuffer[2] = 482; infoRefCIF_P.ptrGOBbufferSBit[2] = 0; infoRefCIF_P.ptrGQuant[2] = 6; - infoRefCIF_P.ptrGOBbuffer[3] = 581; infoRefCIF_P.ptrGOBbufferSBit[3] = 0; infoRefCIF_P.ptrGQuant[3] = 6; - infoRefCIF_P.ptrGOBbuffer[4] = 676; infoRefCIF_P.ptrGOBbufferSBit[4] = 0; infoRefCIF_P.ptrGQuant[4] = 7; - infoRefCIF_P.ptrGOBbuffer[5] = 756; infoRefCIF_P.ptrGOBbufferSBit[5] = 0; infoRefCIF_P.ptrGQuant[5] = 7; - infoRefCIF_P.ptrGOBbuffer[6] = 855; infoRefCIF_P.ptrGOBbufferSBit[6] = 0; infoRefCIF_P.ptrGQuant[6] = 8; - infoRefCIF_P.ptrGOBbuffer[7] = 949; infoRefCIF_P.ptrGOBbufferSBit[7] = 0; infoRefCIF_P.ptrGQuant[7] = 9; - infoRefCIF_P.ptrGOBbuffer[8] = 1004; infoRefCIF_P.ptrGOBbufferSBit[8] = 0; infoRefCIF_P.ptrGQuant[8] = 10; - infoRefCIF_P.ptrGOBbuffer[9] = 1062; infoRefCIF_P.ptrGOBbufferSBit[9] = 0; infoRefCIF_P.ptrGQuant[9] = 11; - infoRefCIF_P.ptrGOBbuffer[10] = 1115; infoRefCIF_P.ptrGOBbufferSBit[10] = 0; infoRefCIF_P.ptrGQuant[10] = 11; - infoRefCIF_P.ptrGOBbuffer[11] = 1152; infoRefCIF_P.ptrGOBbufferSBit[11] = 0; infoRefCIF_P.ptrGQuant[11] = 13; - infoRefCIF_P.ptrGOBbuffer[12] = 1183; infoRefCIF_P.ptrGOBbufferSBit[12] = 0; infoRefCIF_P.ptrGQuant[12] = 14; - infoRefCIF_P.ptrGOBbuffer[13] = 1214; infoRefCIF_P.ptrGOBbufferSBit[13] = 0; infoRefCIF_P.ptrGQuant[13] = 15; - infoRefCIF_P.ptrGOBbuffer[14] = 1257; infoRefCIF_P.ptrGOBbufferSBit[14] = 0; infoRefCIF_P.ptrGQuant[14] = 16; - infoRefCIF_P.ptrGOBbuffer[15] = 1286; infoRefCIF_P.ptrGOBbufferSBit[15] = 0; infoRefCIF_P.ptrGQuant[15] = 16; - infoRefCIF_P.ptrGOBbuffer[16] = 1321; infoRefCIF_P.ptrGOBbufferSBit[16] = 0; infoRefCIF_P.ptrGQuant[16] = 16; - infoRefCIF_P.ptrGOBbuffer[17] = 1352; infoRefCIF_P.ptrGOBbufferSBit[17] = 0; infoRefCIF_P.ptrGQuant[17] = 14; - - //--------------------------------------------------------------- - //--------------------------------------------------------------- - //--------------------------------------------------------------- - // Start test - const H263Info* ptrInfoSQCIF = NULL; - const H263MBInfo* ptrMBInfoSQCIF = NULL; - const H263Info* ptrInfoQCIF = NULL; - const H263MBInfo* ptrMBInfoQCIF = NULL; - const H263Info* ptrInfoCIF = NULL; - const H263MBInfo* ptrMBInfoCIF = NULL; - const H263Info* ptrInfoQCIF_N = NULL; - const H263MBInfo* ptrMBInfoQCIF_N = NULL; - const H263Info* ptrInfoCIF_I = NULL; - const H263MBInfo* ptrMBInfoCIF_I = NULL; - const H263Info* ptrInfoCIF_P = NULL; - const H263MBInfo* ptrMBInfoCIF_P = NULL; - H263Information h263Information; - - // Input buffer - const int length = 3000; - unsigned char* encodedBuffer = new unsigned char[lengthRefCIF_P]; - - // Test invalid inputs - assert(-1 == h263Information.GetInfo(NULL, length, ptrInfoSQCIF)); - assert(-1 == h263Information.GetInfo(encodedBuffer, 0, ptrInfoSQCIF)); - assert(-1 == h263Information.GetInfo(encodedBuffer, length, ptrInfoSQCIF)); // invalid H.263 stream -// assert(-1 == h263Information.GetInfo(encodedStreamSQCIF, lengthRefSQCIF/2, ptrInfoSQCIF)); // invalid H.263 stream - - assert(-1 == h263Information.GetMBInfo(NULL, length, 0, ptrMBInfoSQCIF)); - assert(-1 == h263Information.GetMBInfo(encodedBuffer, 0, 0, ptrMBInfoSQCIF)); - assert(-1 == h263Information.GetMBInfo(encodedBuffer, length, 0, ptrMBInfoSQCIF)); - assert(-1 == h263Information.GetMBInfo(encodedBuffer, length, -1, ptrMBInfoSQCIF)); // incorrect group number - assert(-1 == h263Information.GetMBInfo(encodedBuffer, length, 8, ptrMBInfoSQCIF)); // incorrect group number - - // ---------------------------------------------- - // Get info from encoded H.263 stream - SQCIF - // ---------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamSQCIF, lengthRefSQCIF, ptrInfoSQCIF)); - ValidateResults(ptrInfoSQCIF, &infoRefSQCIF); - - // Get MB info - for (int i = 0; i < ptrInfoSQCIF->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamSQCIF, lengthRefSQCIF, i, ptrMBInfoSQCIF)); - } - ValidateMBResults(ptrInfoSQCIF, ptrMBInfoSQCIF, &infoRefSQCIF); - - // --------------------------------------------- - // Get info from encoded H.263 stream - QCIF - // --------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamQCIF, lengthRefQCIF, ptrInfoQCIF)); - ValidateResults(ptrInfoQCIF, &infoRefQCIF); - - // Get MB info - for (int i = 0; i < ptrInfoQCIF->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamQCIF, lengthRefQCIF, i, ptrMBInfoQCIF)); - } - ValidateMBResults(ptrInfoQCIF, ptrMBInfoQCIF, &infoRefQCIF); - - // -------------------------------------------- - // Get info from encoded H.263 stream - CIF - // -------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamCIF, lengthRefCIF, ptrInfoCIF)); - ValidateResults(ptrInfoCIF, &infoRefCIF); - - // Get MB info - for (int i = 0; i < ptrInfoCIF->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamCIF, lengthRefCIF, i, ptrMBInfoCIF)); - } - ValidateMBResults(ptrInfoCIF, ptrMBInfoCIF, &infoRefCIF); - - // ---------------------------------------------------------------------- - // Get info from encoded H.263 stream - QCIF - non byte aligned GOBs - // ---------------------------------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamQCIF_N, lengthRefQCIF_N, ptrInfoQCIF_N)); - ValidateResults(ptrInfoQCIF_N, &infoRefQCIF_N); - - // Get MB info - for (int i = 0; i < ptrInfoQCIF_N->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamQCIF_N, lengthRefQCIF_N, i, ptrMBInfoQCIF_N)); - } - ValidateMBResults(ptrInfoQCIF_N, ptrMBInfoQCIF_N, &infoRefQCIF_N); - - // ------------------------------------------- - // Get info from encoded H.263 stream - CIF - // ------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamCIF_I, lengthRefCIF_I, ptrInfoCIF_I)); - ValidateResults(ptrInfoCIF_I, &infoRefCIF_I); - - // Get MB info - unsigned int start = timeGetTime(); - for (int i = 0; i < ptrInfoCIF_I->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamCIF_I, lengthRefCIF_I, i, ptrMBInfoCIF_I)); - } - unsigned int endMB = timeGetTime(); - ValidateMBResults(ptrInfoCIF_I, ptrMBInfoCIF_I, &infoRefCIF_I, false); - - std::cout << "I-frame, length: " << lengthRefCIF_I << " bytes. Time: " << endMB - start << " ms." << std::endl; - PRINT_LINE; - - // ------------------------------------------- - // Get info from encoded H.263 stream - CIF - // ------------------------------------------- - h263Information.Reset(); - assert(0 == h263Information.GetInfo(encodedStreamCIF_P, lengthRefCIF_P, ptrInfoCIF_P)); - ValidateResults(ptrInfoCIF_P, &infoRefCIF_P); - - // Get MB info - start = timeGetTime(); - for (int i = 0; i < ptrInfoCIF_P->numOfGOBs; i++) - { - assert(0 == h263Information.GetMBInfo(encodedStreamCIF_P, lengthRefCIF_P, i, ptrMBInfoCIF_P)); - } - endMB = timeGetTime(); - ValidateMBResults(ptrInfoCIF_P, ptrMBInfoCIF_P, &infoRefCIF_P, false); - - std::cout << "P-frame, length: " << lengthRefCIF_P << " bytes. Time: " << endMB - start << " ms." << std::endl; - PRINT_LINE; - - delete [] encodedStreamCIF_I; - delete [] encodedStreamCIF_P; - delete [] encodedBuffer; - - TEST_PASSED(); - ::Sleep(5000); - return 0; -} -