Wavedatei auslesen und Datateil codiert via RTP versenden

K-Asche

Mitglied
Hallo an alle,

Ich möchte den Datenteil einer 8kHz 16bit WaveDatei auslesen und diesen dann in 160b großen Teilen an ein RTP Paket hängen und diese an ein VOIP Phone senden.

Hier der Code wie ich meine Datei auslese.
Code:
FILE* pWaveFile = fopen(WaveDataFile, "rb");
fseek(pWaveFile, 0, SEEK_SET);
//Reading the Header
TotalRead = fread(szChunkId1, 1, 4, pWaveFile);
TotalRead = fread(&szChunkSize1, 1, 4, pWaveFile);
TotalRead = fread(szFormat, 1, 4, pWaveFile);
TotalRead = fread(szSubChunkId1, 1, 4, pWaveFile);
TotalRead = fread(&szSubChunkSize1, 1, 4, pWaveFile);
TotalRead = fread(&szAudioFormat, 1, 2, pWaveFile);
TotalRead = fread(&szNumChannels, 1, 2, pWaveFile);
TotalRead = fread(&szSampleRate, 1, 4, pWaveFile);
TotalRead = fread(&szByteRate, 1, 4, pWaveFile);
TotalRead = fread(&szBlockAlign, 1, 2, pWaveFile);
TotalRead = fread(&szBitsPerSample, 1, 2, pWaveFile);
TotalRead = fread(szSubChunkId2, 1, 4, pWaveFile); 
ToalRead = fread(&szDataSize, 1, 4, pWaveFile);
//Reading DataChunk
int nWaveSize = szDataSize / szBlockAlign;
short *pData;
pData =(short*)malloc(2*nWaveSize);
for(int i = 0; i < nWaveSize; i++)
{
fread(&pData[i], 1, 1, pWaveFile);
}
fclose(pWaveFile);

Hab das auslesen des Datenteils aus einem Beispiel übernommen...
Ist dies so richtig?
Was mir jetzt noch fehlt, wie hole ich aus dem Pointer 160b große Stücke so das die korrekten Informationen übertragen werden?

Gruß
Karsten
 
Zurück