www.pudn.com > rm52c.rar > nal.c
/* *********************************************************************** * COPYRIGHT AND WARRANTY INFORMATION * * Copyright 2001, International Telecommunications Union, Geneva * * DISCLAIMER OF WARRANTY * * These software programs are available to the user without any * license fee or royalty on an "as is" basis. The ITU disclaims * any and all warranties, whether express, implied, or * statutory, including any implied warranties of merchantability * or of fitness for a particular purpose. In no event shall the * contributor or the ITU be liable for any incidental, punitive, or * consequential damages of any kind whatsoever arising from the * use of these programs. * * This disclaimer of warranty extends to the user of these programs * and user's customers, employees, agents, transferees, successors, * and assigns. * * The ITU does not represent or warrant that the programs furnished * hereunder are free of infringement of any third-party patents. * Commercial implementations of ITU-T Recommendations, including * shareware, may be subject to royalty fees to patent holders. * Information regarding the ITU-T patent policy is available from * the ITU Web site at http://www.itu.int. * * THIS IS NOT A GRANT OF PATENT RIGHTS - SEE THE ITU-T PATENT POLICY. ************************************************************************ */ /*! ************************************************************************ * \file nal.c * * \brief * Converts Encapsulated Byte Sequence Packets (EBSP) to Raw Byte * Sequence Packets (RBSP), and then onto String Of Data Bits (SODB) * * \author * Main contributors (see contributors.h for copyright, address and affiliation details) * - Shankar L. Regunathan************************************************************************ */ #include "contributors.h" #include #include #include #include #include #include "defines.h" #include "global.h" /*! ************************************************************************ * \brief * Converts Encapsulated Byte Sequence Packets to RBSP * \param streamBuffer * pointer to data stream * \param end_byte_pos * size of data stream * \param begin_byte_pos * Position after beginning ************************************************************************/ int EBSPtoRBSP(byte *streamBuffer, int end_bytepos, int begin_bytepos) { int i, j, count; count = 0; if(end_bytepos < begin_bytepos) return end_bytepos; j = begin_bytepos; for(i = begin_bytepos; i < end_bytepos; i++) { //starting from begin_bytepos to avoid header information if(count == ZEROBYTES_SHORTSTARTCODE && streamBuffer[i] == 0x03) { i++; count = 0; } streamBuffer[j] = streamBuffer[i]; if(streamBuffer[i] == 0x00) count++; else count = 0; j++; } return j; }