diff --git a/netStream.go b/netStream.go index 28526b0..c53388f 100644 --- a/netStream.go +++ b/netStream.go @@ -152,18 +152,18 @@ func processRtmp(conn net.Conn) { err = nc.SendMessage(SEND_PLAY_RESPONSE_MESSAGE, newPlayResponseMessageData(nc.streamID, NetStream_Play_Reset, Level_Status)) err = nc.SendMessage(SEND_PLAY_RESPONSE_MESSAGE, newPlayResponseMessageData(nc.streamID, NetStream_Play_Start, Level_Status)) vt, at := subscriber.WaitVideoTrack(), subscriber.WaitAudioTrack() - var lastTimeStamp uint32 - var getDeltaTime func(uint32) uint32 - getDeltaTime = func(ts uint32) (t uint32) { - lastTimeStamp = ts + if vt != nil { + var lastTimeStamp uint32 + var getDeltaTime func(uint32) uint32 getDeltaTime = func(ts uint32) (t uint32) { - t = ts - lastTimeStamp lastTimeStamp = ts + getDeltaTime = func(ts uint32) (t uint32) { + t = ts - lastTimeStamp + lastTimeStamp = ts + return + } return } - return - } - if vt != nil { err = nc.SendMessage(SEND_FULL_VDIEO_MESSAGE, &AVPack{Payload: vt.ExtraData.Payload}) subscriber.OnVideo = func(pack engine.VideoPack) { err = nc.SendMessage(SEND_FULL_VDIEO_MESSAGE, &AVPack{Timestamp: 0, Payload: pack.Payload}) @@ -173,6 +173,17 @@ func processRtmp(conn net.Conn) { } } if at != nil { + var lastTimeStamp uint32 + var getDeltaTime func(uint32) uint32 + getDeltaTime = func(ts uint32) (t uint32) { + lastTimeStamp = ts + getDeltaTime = func(ts uint32) (t uint32) { + t = ts - lastTimeStamp + lastTimeStamp = ts + return + } + return + } subscriber.OnAudio = func(pack engine.AudioPack) { if at.CodecID == 10 { err = nc.SendMessage(SEND_FULL_AUDIO_MESSAGE, &AVPack{Payload: at.ExtraData})