keep AV sync after seek
This commit is contained in:
parent
0162e613e6
commit
3a136cd8f5
17
demuxer.go
17
demuxer.go
@ -299,10 +299,23 @@ func (self *Demuxer) ReadPacket() (pkt av.Packet, err error) {
|
|||||||
|
|
||||||
func (self *Demuxer) SeekToTime(time float64) (err error) {
|
func (self *Demuxer) SeekToTime(time float64) (err error) {
|
||||||
for _, stream := range(self.streams) {
|
for _, stream := range(self.streams) {
|
||||||
if err = stream.seekToTime(time); err != nil {
|
if stream.IsVideo() {
|
||||||
return
|
if err = stream.seekToTime(time); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
time = stream.TsToTime(stream.dts)
|
||||||
|
break
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for _, stream := range(self.streams) {
|
||||||
|
if !stream.IsVideo() {
|
||||||
|
if err = stream.seekToTime(time); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user