Added ability to offset sample numbers on packetizers
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
This commit is contained in:
parent
08d1c52b47
commit
3f03c0182c
|
@ -41,6 +41,10 @@ func (p *AdtsPacket) GetData() (result []byte) {
|
|||
return
|
||||
}
|
||||
|
||||
func (p *AdtsPacket) GetDataOffset(offset int64) []byte {
|
||||
return p.GetData()
|
||||
}
|
||||
|
||||
func NewAdtsPacketizer(reader io.Reader) *AdtsPacketizer {
|
||||
return &AdtsPacketizer{reader: bufio.NewReader(reader)}
|
||||
}
|
||||
|
|
|
@ -38,6 +38,10 @@ func (p *FLACPacket) GetData() []byte {
|
|||
return p.data
|
||||
}
|
||||
|
||||
func (p *FLACPacket) GetDataOffset(offset int64) []byte {
|
||||
return p.GetData()
|
||||
}
|
||||
|
||||
func (p *FLACPacket) Category() int64 {
|
||||
return 0
|
||||
}
|
||||
|
|
|
@ -36,6 +36,10 @@ func (p *Mp3Packet) GetData() []byte {
|
|||
return p.frame.Bytes()
|
||||
}
|
||||
|
||||
func (p *Mp3Packet) GetDataOffset(offset int64) []byte {
|
||||
return p.GetData()
|
||||
}
|
||||
|
||||
func NewMp3Packetizer(reader io.Reader) *Mp3Packetizer {
|
||||
return &Mp3Packetizer{decoder: mp3parser.NewDecoder(bufio.NewReader(reader))}
|
||||
}
|
||||
|
|
|
@ -60,6 +60,23 @@ func (p *OggPacket) GetData() []byte {
|
|||
return buf.Bytes()
|
||||
}
|
||||
|
||||
func (p *OggPacket) GetDataOffset(offset int64) []byte {
|
||||
buf := bytes.NewBuffer(make([]byte, 0, 4+1+1+8+4+4+4+1+int(p.header.PageSegments)*(255+1)))
|
||||
|
||||
headerClone := p.header
|
||||
headerClone.AbsoluteGranulePosition -= offset
|
||||
|
||||
binary.Write(buf, binary.LittleEndian, headerClone)
|
||||
binary.Write(buf, binary.LittleEndian, p.pageSegmentTable)
|
||||
for _, segment := range p.segments {
|
||||
if len(segment) > 0 {
|
||||
binary.Write(buf, binary.LittleEndian, segment)
|
||||
}
|
||||
}
|
||||
|
||||
return buf.Bytes()
|
||||
}
|
||||
|
||||
func NewOggPacketizer(reader io.Reader) *OggPacketizer {
|
||||
return &OggPacketizer{reader: bufio.NewReader(reader)}
|
||||
}
|
||||
|
|
|
@ -18,6 +18,11 @@ type Packet interface {
|
|||
GetData() []byte
|
||||
}
|
||||
|
||||
type OffsetablePacket interface {
|
||||
Packet
|
||||
GetDataOffset(offset int64) []byte
|
||||
}
|
||||
|
||||
type Packetizer interface {
|
||||
GetPacket() Packet
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue