add fuStarted flag

This commit is contained in:
nareix 2016-06-22 20:51:57 +08:00
parent 0f5d983462
commit 4d441f030b
2 changed files with 10 additions and 8 deletions

View File

@ -205,7 +205,7 @@ func (self *Client) parseHeaders(b []byte) (statusCode int, headers textproto.MI
} }
} }
if headers, err = r.ReadMIMEHeader(); err != nil { if headers, _ = r.ReadMIMEHeader(); err != nil {
return return
} }
@ -834,12 +834,16 @@ func (self *Stream) handleH264Payload(timestamp uint32, packet []byte) (err erro
isStart := fuHeader&0x80 != 0 isStart := fuHeader&0x80 != 0
isEnd := fuHeader&0x40 != 0 isEnd := fuHeader&0x40 != 0
if isStart { if isStart {
self.fuStarted = true
self.fuBuffer = []byte{fuIndicator&0xe0 | fuHeader&0x1f} self.fuBuffer = []byte{fuIndicator&0xe0 | fuHeader&0x1f}
} }
self.fuBuffer = append(self.fuBuffer, packet[2:]...) if self.fuStarted {
if isEnd { self.fuBuffer = append(self.fuBuffer, packet[2:]...)
if err = self.handleH264Payload(timestamp, self.fuBuffer); err != nil { if isEnd {
return self.fuStarted = false
if err = self.handleH264Payload(timestamp, self.fuBuffer); err != nil {
return
}
} }
} }
@ -1070,9 +1074,6 @@ func (self *Client) handleBlock(block []byte) (pkt av.Packet, ok bool, err error
} }
stream.lasttime = pkt.Time stream.lasttime = pkt.Time
if self.DebugRtp {
fmt.Println("rtp: pktin", pkt.Idx, pkt.Time, len(pkt.Data))
}
if self.DebugRtp { if self.DebugRtp {
fmt.Println("rtp: pktout", pkt.Idx, pkt.Time, len(pkt.Data)) fmt.Println("rtp: pktout", pkt.Idx, pkt.Time, len(pkt.Data))
} }

View File

@ -12,6 +12,7 @@ type Stream struct {
client *Client client *Client
// h264 // h264
fuStarted bool
fuBuffer []byte fuBuffer []byte
sps []byte sps []byte
pps []byte pps []byte