add stream.go and rewrite track to stream
This commit is contained in:
parent
dfd71d04bf
commit
a4e262dd22
32
demuxer.go
32
demuxer.go
@ -32,8 +32,8 @@ func (self *Demuxer) ReadHeader() (err error) {
|
||||
for {
|
||||
if self.pmt != nil {
|
||||
n := 0
|
||||
for _, track := range self.Tracks {
|
||||
if track.payloadReady {
|
||||
for _, stream := range self.Tracks {
|
||||
if stream.payloadReady {
|
||||
n++
|
||||
}
|
||||
}
|
||||
@ -50,7 +50,7 @@ func (self *Demuxer) ReadHeader() (err error) {
|
||||
return
|
||||
}
|
||||
|
||||
func (self *Demuxer) ReadSample() (track *Track, err error) {
|
||||
func (self *Demuxer) ReadSample() (stream *Track, err error) {
|
||||
if len(self.Tracks) == 0 {
|
||||
err = fmt.Errorf("no track")
|
||||
return
|
||||
@ -59,7 +59,7 @@ func (self *Demuxer) ReadSample() (track *Track, err error) {
|
||||
for {
|
||||
for _, _track := range self.Tracks {
|
||||
if _track.payloadReady {
|
||||
track = _track
|
||||
stream = _track
|
||||
return
|
||||
}
|
||||
}
|
||||
@ -93,28 +93,28 @@ func (self *Demuxer) readPacket() (err error) {
|
||||
return
|
||||
}
|
||||
for _, info := range self.pmt.ElementaryStreamInfos {
|
||||
track := &Track{}
|
||||
stream := &Track{}
|
||||
|
||||
track.demuxer = self
|
||||
track.pid = info.ElementaryPID
|
||||
stream.demuxer = self
|
||||
stream.pid = info.ElementaryPID
|
||||
switch info.StreamType {
|
||||
case ElementaryStreamTypeH264:
|
||||
track.Type = H264
|
||||
self.TrackH264 = track
|
||||
self.Tracks = append(self.Tracks, track)
|
||||
stream.Type = H264
|
||||
self.TrackH264 = stream
|
||||
self.Tracks = append(self.Tracks, stream)
|
||||
case ElementaryStreamTypeAdtsAAC:
|
||||
track.Type = AAC
|
||||
self.TrackAAC = track
|
||||
self.Tracks = append(self.Tracks, track)
|
||||
stream.Type = AAC
|
||||
self.TrackAAC = stream
|
||||
self.Tracks = append(self.Tracks, stream)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
for _, track := range self.Tracks {
|
||||
if header.PID == track.pid {
|
||||
if err = track.appendPacket(header, payload); err != nil {
|
||||
for _, stream := range self.Tracks {
|
||||
if header.PID == stream.pid {
|
||||
if err = stream.appendPacket(header, payload); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
32
muxer.go
32
muxer.go
@ -3,8 +3,8 @@ package ts
|
||||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"github.com/nareix/codec/h264parser"
|
||||
"github.com/nareix/codec/aacparser"
|
||||
"github.com/nareix/codec/h264parser"
|
||||
"io"
|
||||
)
|
||||
|
||||
@ -17,8 +17,8 @@ type Muxer struct {
|
||||
Tracks []*Track
|
||||
}
|
||||
|
||||
func (self *Muxer) newTrack(pid uint, streamId uint) (track *Track) {
|
||||
track = &Track{
|
||||
func (self *Muxer) newTrack(pid uint, streamId uint) (stream *Track) {
|
||||
stream = &Track{
|
||||
mux: self,
|
||||
tsw: &TSWriter{
|
||||
PID: pid,
|
||||
@ -26,31 +26,31 @@ func (self *Muxer) newTrack(pid uint, streamId uint) (track *Track) {
|
||||
},
|
||||
streamId: streamId,
|
||||
}
|
||||
track.tsw.EnableVecWriter()
|
||||
stream.tsw.EnableVecWriter()
|
||||
return
|
||||
}
|
||||
|
||||
func (self *Muxer) AddAACTrack() (track *Track) {
|
||||
func (self *Muxer) AddAACTrack() (stream *Track) {
|
||||
self.elemStreams = append(
|
||||
self.elemStreams,
|
||||
ElementaryStreamInfo{StreamType: ElementaryStreamTypeAdtsAAC, ElementaryPID: 0x101},
|
||||
)
|
||||
track = self.newTrack(0x101, StreamIdAAC)
|
||||
track.Type = AAC
|
||||
track.cacheSize = 3000
|
||||
self.Tracks = append(self.Tracks, track)
|
||||
stream = self.newTrack(0x101, StreamIdAAC)
|
||||
stream.Type = AAC
|
||||
stream.cacheSize = 3000
|
||||
self.Tracks = append(self.Tracks, stream)
|
||||
return
|
||||
}
|
||||
|
||||
func (self *Muxer) AddH264Track() (track *Track) {
|
||||
func (self *Muxer) AddH264Track() (stream *Track) {
|
||||
self.elemStreams = append(
|
||||
self.elemStreams,
|
||||
ElementaryStreamInfo{StreamType: ElementaryStreamTypeH264, ElementaryPID: 0x100},
|
||||
)
|
||||
track = self.newTrack(0x100, StreamIdH264)
|
||||
track.Type = H264
|
||||
self.TrackH264 = track
|
||||
self.Tracks = append(self.Tracks, track)
|
||||
stream = self.newTrack(0x100, StreamIdH264)
|
||||
stream.Type = H264
|
||||
self.TrackH264 = stream
|
||||
self.Tracks = append(self.Tracks, stream)
|
||||
return
|
||||
}
|
||||
|
||||
@ -86,8 +86,8 @@ func (self *Muxer) WriteHeader() (err error) {
|
||||
}
|
||||
|
||||
// about to remove
|
||||
for _, track := range self.Tracks {
|
||||
track.spsHasWritten = false
|
||||
for _, stream := range self.Tracks {
|
||||
stream.spsHasWritten = false
|
||||
}
|
||||
|
||||
return
|
||||
|
Loading…
x
Reference in New Issue
Block a user