switch to time.Duration

This commit is contained in:
nareix 2016-06-18 10:13:15 +08:00
parent 97f2cceb2c
commit 5815ff6efa
2 changed files with 12 additions and 10 deletions

View File

@ -4,6 +4,7 @@ import (
"bytes" "bytes"
"encoding/hex" "encoding/hex"
"fmt" "fmt"
"time"
"github.com/nareix/av" "github.com/nareix/av"
"github.com/nareix/av/pktqueue" "github.com/nareix/av/pktqueue"
"github.com/nareix/codec/aacparser" "github.com/nareix/codec/aacparser"
@ -41,9 +42,9 @@ func (self *Demuxer) Streams() (streams []av.CodecData, err error) {
return return
} }
func (self *Demuxer) CurrentTime() (time float32) { func (self *Demuxer) CurrentTime() (tm time.Duration) {
if self.pktque != nil { if self.pktque != nil {
time = self.pktque.CurrentTime() tm = self.pktque.CurrentTime()
} }
return return
} }
@ -158,11 +159,11 @@ func (self *Stream) payloadEnd() (err error) {
IsKeyFrame: self.tshdr.RandomAccessIndicator, IsKeyFrame: self.tshdr.RandomAccessIndicator,
Data: payload, Data: payload,
} }
time := float32(dts) / float32(PTS_HZ) tm := time.Duration(dts)*time.Second / time.Duration(PTS_HZ)
if pts != dts { if pts != dts {
pkt.CompositionTime = float32(pts-dts) / float32(PTS_HZ) pkt.CompositionTime = time.Duration(pts-dts)*time.Second / time.Duration(PTS_HZ)
} }
self.demuxer.pktque.WriteTimePacket(self.idx, time, pkt) self.demuxer.pktque.WriteTimePacket(self.idx, tm, pkt)
self.demuxer.gotpkt = true self.demuxer.gotpkt = true
if self.CodecData == nil { if self.CodecData == nil {

View File

@ -1,6 +1,7 @@
package ts package ts
import ( import (
"time"
"bytes" "bytes"
"github.com/nareix/av" "github.com/nareix/av"
) )
@ -25,13 +26,13 @@ type Stream struct {
idx int idx int
pkt av.Packet pkt av.Packet
time float32 time time.Duration
} }
func timeToPesTs(time float32) uint64 { func timeToPesTs(tm time.Duration) uint64 {
return uint64(time*PTS_HZ) + PTS_HZ return uint64(tm*PTS_HZ/time.Second) + PTS_HZ
} }
func timeToPCR(time float32) uint64 { func timeToPCR(tm time.Duration) uint64 {
return uint64(time*PCR_HZ) + PCR_HZ return uint64(tm*PCR_HZ/time.Second) + PCR_HZ
} }