rtsp支持指定播放单一track (#1937)

This commit is contained in:
custompal
2022-09-13 16:27:00 +08:00
committed by GitHub
parent d04a6d4355
commit 08789454c3
7 changed files with 64 additions and 26 deletions

View File

@@ -197,13 +197,24 @@ void RtspPlayer::handleResDESCRIBE(const Parser& parser) {
_content_base.pop_back();
}
SdpParser sdpParser(parser.Content());
//解析sdp
_sdp_track = sdpParser.getAvailableTrack();
SdpParser sdpParser(parser.Content());
string sdp;
auto play_track = (TrackType)((int)(*this)[Client::kPlayTrack] - 1);
if (play_track != TrackInvalid) {
auto track = sdpParser.getTrack(play_track);
_sdp_track.emplace_back(track);
sdp = track->toString();
} else {
_sdp_track = sdpParser.getAvailableTrack();
sdp = sdpParser.toString();
}
if (_sdp_track.empty()) {
throw std::runtime_error("无有效的Sdp Track");
}
if (!onCheckSDP(sdpParser.toString())) {
if (!onCheckSDP(sdp)) {
throw std::runtime_error("onCheckSDP faied");
}
_rtcp_context.clear();