keep AV sync after seek

This commit is contained in:
nareix 2016-04-19 19:19:03 +08:00
parent 0162e613e6
commit 3a136cd8f5

View File

@ -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
} }