flv/rtmp: packet read logic bugfix
This commit is contained in:
parent
e1f6aa15fe
commit
4b5f50e03f
@ -312,9 +312,9 @@ func (self *Muxer) WriteHeader(streams []av.CodecData) (err error) {
|
||||
|
||||
func (self *Muxer) WritePacket(pkt av.Packet) (err error) {
|
||||
stream := self.streams[pkt.Idx]
|
||||
tag, ts := PacketToTag(pkt, stream)
|
||||
tag, timestamp := PacketToTag(pkt, stream)
|
||||
|
||||
if err = flvio.WriteTag(self.pw, tag, ts); err != nil {
|
||||
if err = flvio.WriteTag(self.pw, tag, timestamp); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
@ -361,7 +361,7 @@ func (self *Demuxer) prepare() (err error) {
|
||||
for !self.prober.Probed() {
|
||||
var tag flvio.Tag
|
||||
var timestamp int32
|
||||
if tag, _, err = flvio.ReadTag(self.pr); err != nil {
|
||||
if tag, timestamp, err = flvio.ReadTag(self.pr); err != nil {
|
||||
return
|
||||
}
|
||||
if err = self.prober.PushTag(tag, timestamp); err != nil {
|
||||
@ -374,6 +374,12 @@ func (self *Demuxer) prepare() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func dumptag(_tag flvio.Tag, timestamp int32) {
|
||||
if tag, ok := _tag.(*flvio.Videodata); ok {
|
||||
fmt.Printf("video ts=%d cts=%d FrameType=%d AVCPacketType=%d\n", timestamp, tag.CompositionTime, tag.FrameType, tag.AVCPacketType)
|
||||
}
|
||||
}
|
||||
|
||||
func (self *Demuxer) Streams() (streams []av.CodecData, err error) {
|
||||
if err = self.prepare(); err != nil {
|
||||
return
|
||||
|
@ -247,7 +247,6 @@ type Videodata struct {
|
||||
AVCPacketType uint8
|
||||
|
||||
Data []byte
|
||||
Datav [][]byte
|
||||
CompositionTime int32
|
||||
}
|
||||
|
||||
@ -256,7 +255,7 @@ func (self Videodata) Type() uint8 {
|
||||
}
|
||||
|
||||
func (self Videodata) Len() int {
|
||||
return 5 + len(self.Data) + pio.VecLen(self.Datav)
|
||||
return 5 + len(self.Data)
|
||||
}
|
||||
|
||||
func (self *Videodata) Unmarshal(r *pio.Reader) (err error) {
|
||||
@ -297,11 +296,6 @@ func (self Videodata) Marshal(w *pio.Writer) (err error) {
|
||||
if _, err = w.Write(self.Data); err != nil {
|
||||
return
|
||||
}
|
||||
for _, data := range self.Datav {
|
||||
if _, err = w.Write(data); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
@ -715,12 +715,10 @@ func (self *Conn) ReadPacket() (pkt av.Packet, err error) {
|
||||
return
|
||||
}
|
||||
|
||||
/*
|
||||
if !self.prober.Empty() {
|
||||
pkt = self.prober.PopPacket()
|
||||
return
|
||||
}
|
||||
*/
|
||||
|
||||
for {
|
||||
var tag flvio.Tag
|
||||
|
Loading…
x
Reference in New Issue
Block a user