diff --git a/src/Rtsp/RtpReceiver.cpp b/src/Rtsp/RtpReceiver.cpp index e9af7264..996f70d7 100644 --- a/src/Rtsp/RtpReceiver.cpp +++ b/src/Rtsp/RtpReceiver.cpp @@ -55,6 +55,13 @@ RtpPacket::Ptr RtpTrack::inputRtp(TrackType type, int sample_rate, uint8_t *ptr, //比对缓存ssrc auto ssrc = ntohl(header->ssrc); + if (_pt == 0xFF) { + _pt = header->pt; + } else if (header->pt != _pt) { + TraceL << "rtp pt 不匹配:" << (int) header->pt << " !=" << (int) _pt; + return nullptr; + } + if (!_ssrc) { //记录并锁定ssrc _ssrc = ssrc; diff --git a/src/Rtsp/RtpReceiver.h b/src/Rtsp/RtpReceiver.h index df7de687..86dbb8d7 100644 --- a/src/Rtsp/RtpReceiver.h +++ b/src/Rtsp/RtpReceiver.h @@ -182,6 +182,7 @@ protected: private: bool _disable_ntp = false; + uint8_t _pt = 0xFF; uint32_t _ssrc = 0; toolkit::Ticker _ssrc_alive; NtpStamp _ntp_stamp;