diff --git a/client.go b/client.go index 4adee30..451eea0 100644 --- a/client.go +++ b/client.go @@ -314,11 +314,15 @@ func (client *RTSP) startStream() { switch channel { case client.aRTPChannel: - client.RtpAudio.Push(content) + if client.RtpAudio != nil { + client.RtpAudio.Push(content) + } case client.aRTPControlChannel: case client.vRTPChannel: - client.RtpVideo.Push(content) + if client.RtpVideo != nil { + client.RtpVideo.Push(content) + } case client.vRTPControlChannel: default: diff --git a/session.go b/session.go index 3431011..9ad1fd7 100644 --- a/session.go +++ b/session.go @@ -125,22 +125,26 @@ func (session *RTSP) AcceptPush() { switch channel { case session.aRTPChannel: // pack.Type = RTP_TYPE_AUDIO - elapsed := time.Since(timer) - if elapsed >= 30*time.Second { - Println("Recv an audio RTP package") - timer = time.Now() + if session.RtpAudio != nil { + elapsed := time.Since(timer) + if elapsed >= 30*time.Second { + Println("Recv an audio RTP package") + timer = time.Now() + } + session.RtpAudio.Push(rtpBytes) } - session.RtpAudio.Push(rtpBytes) case session.aRTPControlChannel: // pack.Type = RTP_TYPE_AUDIOCONTROL case session.vRTPChannel: // pack.Type = RTP_TYPE_VIDEO - elapsed := time.Since(timer) - if elapsed >= 30*time.Second { - Println("Recv an video RTP package") - timer = time.Now() + if session.RtpVideo != nil { + elapsed := time.Since(timer) + if elapsed >= 30*time.Second { + Println("Recv an video RTP package") + timer = time.Now() + } + session.RtpVideo.Push(rtpBytes) } - session.RtpVideo.Push(rtpBytes) case session.vRTPControlChannel: // pack.Type = RTP_TYPE_VIDEOCONTROL default: