;sdpMediaAudioFormat;
memset(&sdpMediaAudioFormat, 0, sizeof(sdpMediaAudioFormat));
sdpMediaAudioFormat.media = &sdpMediaAudio;
sdpMediaAudioFormat.fmt = "97";
memset(&sdpAudioRtpMap, 0, sizeof(sdpAudioRtpMap));
if (!strcasecmp(pConfig->GetStringValue(CONFIG_AUDIO_ENCODING),
AUDIO_ENCODING_MP3)) {
sdpAudioRtpMap.encode_name = "MPA";
} else if (audioIsAac) {
sdpAudioRtpMap.encode_name = "mpeg4-generic";
char* sConfig =
MP4BinaryToBase16(pAudioConfig, audioConfigLength);
sprintf(audioFmtpBuf,
"streamtype=5; profile-level-id=15; mode=AAC-hbr; config=%s; "
"SizeLength=13; IndexLength=3; IndexDeltaLength=3; Profile=1;",
sConfig);
free(sConfig);
sdpMediaAudioFormat.fmt_param = audioFmtpBuf;
}
sdpAudioRtpMap.clock_rate =
pConfig->GetIntegerValue(CONFIG_AUDIO_SAMPLE_RATE);
sdpMediaAudioFormat.rtpmap = &sdpAudioRtpMap;
memset(&audioBandwidth, 0, sizeof(audioBandwidth));
sdpMediaAudio.media_bandwidth = &audioBandwidth;
audioBandwidth.modifier = BANDWIDTH_MODIFIER_AS;
audioBandwidth.bandwidth =
pConfig->GetIntegerValue(CONFIG_AUDIO_BIT_RATE);
}
free(pAudioConfig);
// finally call sdp library
// to write the entire sdp description
// to the given sdp file name
bool rc = (sdp_encode_one_to_file(&sdp,
pConfig->GetStringValue(CONFIG_SDP_FILE_NAME), 0) == 0);
// free malloced memory inside sdp structure
sdp_free_string_list(&sdp.unparsed_a_lines);
return rc;
}
上一篇:
SDL_systimer.cpp
下一篇:
恋沫