From 79f3f92350e5e8e0c1d2ed13ece6f7fcaeee7c23 Mon Sep 17 00:00:00 2001 From: nareix Date: Tue, 12 Jul 2016 15:58:21 +0800 Subject: [PATCH] flv: add NELLYMOSER support --- format/flv/flv.go | 11 ++++++++++- format/flv/flvio/flvio.go | 11 +++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/format/flv/flv.go b/format/flv/flv.go index 606d6a6..9af5e61 100644 --- a/format/flv/flv.go +++ b/format/flv/flv.go @@ -27,7 +27,7 @@ func NewMuxer(w io.Writer) *Muxer { } func (self *Muxer) SupportedCodecTypes() []av.CodecType { - return []av.CodecType{av.H264, av.AAC} + return []av.CodecType{av.H264, av.AAC, av.NELLYMOSER} } func (self *Muxer) WriteHeader(streams []av.CodecData) (err error) { @@ -57,6 +57,8 @@ func (self *Muxer) WriteHeader(streams []av.CodecData) (err error) { } _tag = tag + case av.NELLYMOSER: + case av.AAC: aac := stream.(aacparser.CodecData) tag := flvio.MakeAACAudiodata(aac, aac.MPEG4AudioConfigBytes()) @@ -99,6 +101,13 @@ func (self *Muxer) WritePacket(pkt av.Packet) (err error) { case av.AAC: tag := flvio.MakeAACAudiodata(stream.(av.AudioCodecData), pkt.Data) _tag = &tag + + case av.NELLYMOSER: + tag := &flvio.Audiodata{ + SoundFormat: flvio.SOUND_NELLYMOSER, + Data: pkt.Data, + } + _tag = tag } if err = flvio.WriteTag(self.pw, _tag, timeToTs(pkt.Time)); err != nil { diff --git a/format/flv/flvio/flvio.go b/format/flv/flvio/flvio.go index 729aa48..de0ee5b 100644 --- a/format/flv/flvio/flvio.go +++ b/format/flv/flvio/flvio.go @@ -173,16 +173,19 @@ func (self Audiodata) Marshal(w *pio.Writer) (err error) { return } - if self.SoundFormat == SOUND_AAC { + switch self.SoundFormat { + case SOUND_AAC: if err = w.WriteU8(self.AACPacketType); err != nil { return } if _, err = w.Write(self.Data); err != nil { return } - } else { - err = fmt.Errorf("flvio: Audiodata.Marshal: unsupported SoundFormat=%d", self.SoundFormat) - return + + default: + if _, err = w.Write(self.Data); err != nil { + return + } } return }