Расшифруйте аудиоданные PCM с помощью кодека g722 - PullRequest
5 голосов
/ 10 октября 2011

Я разрабатываю регистратор вызовов для аудио VoIP, звук кодируется с использованием кодека g722 в среде CISCO. Итак, я извлек данные из фреймов RTP и декодировал эти данные PCM следующим образом:

unsigned int payloadSize = htons(udpHdr->len) - (CONSTANT::UDP_HDR_SIZE + CONSTANT::RTP_HDR_SIZE);
char * payload = (char*)rtpHdr + CONSTANT::RTP_HDR_SIZE;
  unsigned short m_payloadType = rtpHdr->pt;
//decode_state is initialize like :g722_decode_init(NULL, 64000, G722_SAMPLE_RATE_8000);
outBuffSize = g722_decode(decode_state, decompressed, (const uint8_t*)payload, payloadSize);

Я храню в файле эти данные декодирования (и все кадры одного и того же потока, равного sscr), и когда пытаюсь услышать звук, я слышу только шум.

Я думаю, что эта проблема для сжатого алгоритма, используемого CISCO.

Поведение декодированной функции правильное.

Есть предложения?

...