我std::map用来存储很多元素(元素对),我有一点"怀疑".更重要的是有效地遍历我所有的元素std::map,iterator或reverse_iterator?
我正在为VoIP音频开发一个呼叫记录器,音频在CISCO环境中使用g722编解码器进行编码.好吧,我从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);
Run Code Online (Sandbox Code Playgroud)
我在一个文件中存储了这个解码数据(以及相同流量的所有帧,等于sscr),当试图听到音频时,我只听到噪音.
我认为这个问题是针对CISCO使用的压缩算法.
解码函数的行为是正确的.
有什么建议吗?
执行此代码:
av_log_set_callback(_log_callback);
av_register_all();
avcodec_register_all();
LOG(avcodec_configuration());
AVOutputFormat * fmt = av_guess_format( "h264", NULL, NULL );
Run Code Online (Sandbox Code Playgroud)
并在我的日志文件中显示下一个配置:
--target-os=linux --disable-doc --disable-ffmpeg --disable-ffplay --disable-ffprobe --disable-ffserver --disable-avfilter --disable-everything --enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 --enable-gpl ....
Run Code Online (Sandbox Code Playgroud)
av_guess_format 正在返回NULL.
有什么建议吗?非常感谢