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