1
0
Fork 0
mirror of https://github.com/ossrs/srs.git synced 2025-03-09 15:49:59 +00:00

RTC: Support hijack the plaintext RTP packet

This commit is contained in:
winlin 2020-05-22 18:44:32 +08:00
parent 2bd0e1ce43
commit 64eb22b95d
2 changed files with 16 additions and 6 deletions

View file

@ -1121,6 +1121,12 @@ srs_error_t SrsRtcPublisher::initialize(uint32_t vssrc, uint32_t assrc, uint8_t
source->set_rtc_publisher(this);
if (_srs_rtc_hijacker) {
if ((err = _srs_rtc_hijacker->on_start_publish(session_, this, req)) != srs_success) {
return srs_error_wrap(err, "on start publish");
}
}
return err;
}
@ -1416,10 +1422,12 @@ srs_error_t SrsRtcPublisher::on_rtp(char* data, int nb_data)
// For source to consume packet.
uint32_t ssrc = pkt->header.get_ssrc();
if (ssrc == audio_ssrc) {
pkt->frame_type = SrsFrameTypeAudio;
if ((err = on_audio(pkt)) != srs_success) {
return srs_error_wrap(err, "on audio");
}
} else if (ssrc == video_ssrc) {
pkt->frame_type = SrsFrameTypeVideo;
if ((err = on_video(pkt)) != srs_success) {
return srs_error_wrap(err, "on video");
}
@ -1432,6 +1440,12 @@ srs_error_t SrsRtcPublisher::on_rtp(char* data, int nb_data)
return srs_error_wrap(err, "on nack");
}
if (_srs_rtc_hijacker) {
if ((err = _srs_rtc_hijacker->on_rtp_packet(session_, this, req, pkt->copy())) != srs_success) {
return srs_error_wrap(err, "on rtp packet");
}
}
return err;
}
@ -2232,12 +2246,6 @@ srs_error_t SrsRtcSession::start_publish()
return srs_error_wrap(err, "rtc publisher init");
}
if (_srs_rtc_hijacker) {
if ((err = _srs_rtc_hijacker->on_start_publish(this, publisher_, req)) != srs_success) {
return srs_error_wrap(err, "on start publish");
}
}
return err;
}