mirror of
https://github.com/ZLMediaKit/ZLMediaKit.git
synced 2026-02-24 01:00:55 +08:00
优化rtp异常处理逻辑
This commit is contained in:
@@ -151,7 +151,7 @@ void DecoderImp::onTrack(int index, const Track::Ptr &track) {
|
||||
track->setIndex(index);
|
||||
auto &ref = _tracks[index];
|
||||
if (ref.first) {
|
||||
WarnL << "Already existed a same track: " << index << ", codec: " << track->getCodecName();
|
||||
// WarnL << "Already existed a same track: " << index << ", codec: " << track->getCodecName();
|
||||
return;
|
||||
}
|
||||
ref.first = track;
|
||||
|
||||
@@ -56,7 +56,7 @@ ssize_t PSDecoder::input(const uint8_t *data, size_t bytes) {
|
||||
const char *PSDecoder::onSearchPacketTail(const char *data, size_t len) {
|
||||
try {
|
||||
auto ret = ps_demuxer_input(static_cast<struct ps_demuxer_t *>(_ps_demuxer), reinterpret_cast<const uint8_t *>(data), len);
|
||||
if (ret >= 0) {
|
||||
if (ret >= 0 && ret <= (ssize_t)len) {
|
||||
// 解析成功全部或部分 [AUTO-TRANSLATED:a8085d34]
|
||||
// Parse successful, all or part
|
||||
return data + ret;
|
||||
|
||||
@@ -62,7 +62,12 @@ public:
|
||||
RtpProcess::Ptr getProcess() const { return _process; }
|
||||
|
||||
void onRecvRtp(const Socket::Ptr &sock, const Buffer::Ptr &buf, struct sockaddr *addr) {
|
||||
_process->inputRtp(true, sock, buf->data(), buf->size(), addr);
|
||||
try {
|
||||
_process->inputRtp(true, sock, buf->data(), buf->size(), addr);
|
||||
} catch (std::exception &ex) {
|
||||
_process->onDetach(SockException(Err_shutdown, ex.what()));
|
||||
return;
|
||||
}
|
||||
// 统计rtp接受情况,用于发送rr包 [AUTO-TRANSLATED:bd2fbe7e]
|
||||
// Count RTP reception status, used to send RR packets
|
||||
auto header = (RtpHeader *)buf->data();
|
||||
|
||||
Reference in New Issue
Block a user