uplink/internal/media/muxer_test.go

48 lines
946 B
Go
Raw Normal View History

2018-04-10 11:48:51 +00:00
package media
import (
"io"
"io/ioutil"
"os"
"testing"
. "github.com/smartystreets/goconvey/convey"
)
func Test_Muxer(t *testing.T) {
Convey("Muxer", t, func() {
Convey("audio-only", func() {
reader, _ := os.Open("mpthreetest.mp3")
defer reader.Close()
demuxer := Demux(reader)
var audioStream *DemuxedStream
var err error
forloop:
for {
select {
case err = <-demuxer.Error():
break forloop
case stream := <-demuxer.Streams():
So(audioStream, ShouldBeNil)
So(stream.StreamId, ShouldEqual, 0)
So(stream.Pts, ShouldEqual, 0)
So(stream.CodecInfo.CodecName, ShouldEqual, "mp3")
So(stream.CodecInfo.Type, ShouldEqual, Audio)
audioStream = stream
}
}
So(err, ShouldBeNil)
audioReader := audioStream.Sub()
muxer := Mux("mpegts", audioReader)
n, err := io.Copy(ioutil.Discard, muxer)
So(err, ShouldBeNil)
So(n, ShouldBeGreaterThan, 0)
})
})
}