48 lines
946 B
Go
48 lines
946 B
Go
|
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)
|
||
|
})
|
||
|
|
||
|
})
|
||
|
}
|