#include "MultiFramedRTPSource.hh"Include dependency graph for MPEG4LATMAudioRTPSource.hh:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| class | MPEG4LATMAudioRTPSource |
Functions | |
| Boolean | parseStreamMuxConfigStr (char const *configStr, Boolean &audioMuxVersion, Boolean &allStreamsSameTimeFraming, unsigned char &numSubFrames, unsigned char &numProgram, unsigned char &numLayer, unsigned char *&audioSpecificConfig, unsigned &audioSpecificConfigSize) |
| unsigned char * | parseStreamMuxConfigStr (char const *configStr, unsigned &audioSpecificConfigSize) |
| unsigned char * | parseGeneralConfigStr (char const *configStr, unsigned &configSize) |
| unsigned char* parseGeneralConfigStr | ( | char const * | configStr, | |
| unsigned & | configSize | |||
| ) |
Definition at line 238 of file MPEG4LATMAudioRTPSource.cpp.
References getByte(), and NULL.
Referenced by QuickTimeFileSink::addAtom_hdlr2(), main(), and samplingFrequencyFromAudioSpecificConfig().
00239 : 00240 unsigned& configSize) { 00241 unsigned char* config = NULL; 00242 do { 00243 if (configStr == NULL) break; 00244 configSize = (strlen(configStr)+1)/2 + 1; 00245 00246 config = new unsigned char[configSize]; 00247 if (config == NULL) break; 00248 00249 Boolean parseSuccess; 00250 unsigned i = 0; 00251 do { 00252 parseSuccess = getByte(configStr, config[i++]); 00253 } while (parseSuccess); 00254 if (i != configSize) break; 00255 // part of the remaining string was bad 00256 00257 return config; 00258 } while (0); 00259 00260 configSize = 0; 00261 delete[] config; 00262 return NULL; 00263 }
| unsigned char* parseStreamMuxConfigStr | ( | char const * | configStr, | |
| unsigned & | audioSpecificConfigSize | |||
| ) |
Definition at line 220 of file MPEG4LATMAudioRTPSource.cpp.
References NULL, and parseStreamMuxConfigStr().
00221 : 00222 unsigned& audioSpecificConfigSize) { 00223 Boolean audioMuxVersion, allStreamsSameTimeFraming; 00224 unsigned char numSubFrames, numProgram, numLayer; 00225 unsigned char* audioSpecificConfig; 00226 00227 if (!parseStreamMuxConfigStr(configStr, 00228 audioMuxVersion, allStreamsSameTimeFraming, 00229 numSubFrames, numProgram, numLayer, 00230 audioSpecificConfig, audioSpecificConfigSize)) { 00231 audioSpecificConfigSize = 0; 00232 return NULL; 00233 } 00234 00235 return audioSpecificConfig; 00236 }
| Boolean parseStreamMuxConfigStr | ( | char const * | configStr, | |
| Boolean & | audioMuxVersion, | |||
| Boolean & | allStreamsSameTimeFraming, | |||
| unsigned char & | numSubFrames, | |||
| unsigned char & | numProgram, | |||
| unsigned char & | numLayer, | |||
| unsigned char *& | audioSpecificConfig, | |||
| unsigned & | audioSpecificConfigSize | |||
| ) |
Definition at line 162 of file MPEG4LATMAudioRTPSource.cpp.
Referenced by parseStreamMuxConfigStr().
00163 : 00164 Boolean& audioMuxVersion, 00165 Boolean& allStreamsSameTimeFraming, 00166 unsigned char& numSubFrames, 00167 unsigned char& numProgram, 00168 unsigned char& numLayer, 00169 unsigned char*& audioSpecificConfig, 00170 unsigned& audioSpecificConfigSize) { 00171 // Set default versions of the result parameters: 00172 audioMuxVersion = 0; 00173 allStreamsSameTimeFraming = 1; 00174 numSubFrames = numProgram = numLayer = 0; 00175 audioSpecificConfig = NULL; 00176 audioSpecificConfigSize = 0; 00177 00178 do { 00179 if (configStr == NULL) break; 00180 00181 unsigned char nextByte; 00182 00183 if (!getByte(configStr, nextByte)) break; 00184 audioMuxVersion = (nextByte&0x80)>>7; 00185 if (audioMuxVersion != 0) break; 00186 00187 allStreamsSameTimeFraming = (nextByte&0x40)>>6; 00188 numSubFrames = (nextByte&0x3F); 00189 00190 if (!getByte(configStr, nextByte)) break; 00191 numProgram = (nextByte&0xF0)>>4; 00192 00193 numLayer = (nextByte&0x0E)>>1; 00194 00195 // The one remaining bit, and the rest of the string, 00196 // are used for "audioSpecificConfig": 00197 unsigned char remainingBit = nextByte&1; 00198 00199 unsigned ascSize = (strlen(configStr)+1)/2 + 1; 00200 audioSpecificConfig = new unsigned char[ascSize]; 00201 00202 Boolean parseSuccess; 00203 unsigned i = 0; 00204 do { 00205 nextByte = 0; 00206 parseSuccess = getByte(configStr, nextByte); 00207 audioSpecificConfig[i++] = (remainingBit<<7)|((nextByte&0xFE)>>1); 00208 remainingBit = nextByte&1; 00209 } while (parseSuccess); 00210 if (i != ascSize) break; // part of the remaining string was bad 00211 00212 audioSpecificConfigSize = ascSize; 00213 return True; // parsing succeeded 00214 } while (0); 00215 00216 delete[] audioSpecificConfig; 00217 return False; // parsing failed 00218 }
1.5.2