103 lines
2.1 KiB
Go
103 lines
2.1 KiB
Go
package pktreorder
|
|
|
|
import (
|
|
"github.com/nareix/av"
|
|
"fmt"
|
|
)
|
|
|
|
type fakeStream struct {
|
|
isVideo bool
|
|
type_ int
|
|
}
|
|
|
|
func (self fakeStream) IsVideo() bool {
|
|
return self.isVideo
|
|
}
|
|
|
|
func (self fakeStream) IsAudio() bool {
|
|
return !self.isVideo
|
|
}
|
|
|
|
func (self fakeStream) Type() int {
|
|
return self.type_
|
|
}
|
|
|
|
func ExampleQueue() {
|
|
var streams []av.CodecData
|
|
streams = append(streams, fakeStream{isVideo: true})
|
|
streams = append(streams, fakeStream{isVideo: false})
|
|
|
|
queue := &Queue{}
|
|
queue.Alloc(streams)
|
|
var i int
|
|
var err error
|
|
|
|
/*
|
|
Output:
|
|
false
|
|
false
|
|
true
|
|
0 true
|
|
1 true
|
|
1 true
|
|
1 true
|
|
0 false
|
|
0.30
|
|
1 true
|
|
0 true
|
|
1 true
|
|
1 true
|
|
0 true
|
|
0 true
|
|
0 false
|
|
0 false
|
|
*/
|
|
|
|
fmt.Println(queue.CanReadPacket())
|
|
queue.WritePacket(1, av.Packet{Duration: 0.1})
|
|
queue.WritePacket(1, av.Packet{Duration: 0.1})
|
|
queue.WritePacket(1, av.Packet{Duration: 0.1})
|
|
fmt.Println(queue.CanReadPacket())
|
|
|
|
queue.WritePacket(0, av.Packet{Duration: 1.0})
|
|
queue.WritePacket(0, av.Packet{Duration: 1.0})
|
|
fmt.Println(queue.CanReadPacket())
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
|
|
queue.WritePacket(1, av.Packet{Duration: 0.8})
|
|
fmt.Println(fmt.Sprintf("%.2f", queue.streams[1].pos))
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
|
|
queue.WritePacket(0, av.Packet{Duration: 0.1})
|
|
queue.WritePacket(1, av.Packet{Duration: 0.1})
|
|
queue.WritePacket(0, av.Packet{Duration: 0.1})
|
|
queue.WritePacket(1, av.Packet{Duration: 0.1})
|
|
queue.EndWritePacket(nil)
|
|
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
i, _, err = queue.ReadPacket()
|
|
fmt.Println(i, err == nil)
|
|
}
|
|
|