Skip to content

Commit

Permalink
interface change CodecData()(CodecData,error)
Browse files Browse the repository at this point in the history
handler.AudioDecoder(av.AudioCodecData)
  • Loading branch information
nareix committed Jul 12, 2016
1 parent e64341e commit fb6c20e
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 8 deletions.
2 changes: 1 addition & 1 deletion av/av.go
Original file line number Diff line number Diff line change
Expand Up @@ -263,7 +263,7 @@ func (self AudioFrame) Concat(in AudioFrame) (out AudioFrame) {
}

type AudioEncoder interface {
CodecData() AudioCodecData
CodecData() (AudioCodecData, error)
Encode(AudioFrame) ([][]byte, error)
//Flush() ([]Packet, error)
Close()
Expand Down
4 changes: 2 additions & 2 deletions av/avutil/avutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ type RegisterHandler struct {
UrlReader func(string)(bool,io.ReadCloser,error)
Probe func([]byte)bool
AudioEncoder func(av.CodecType)(av.AudioEncoder,error)
AudioDecoder func(av.CodecData)(av.AudioDecoder,error)
AudioDecoder func(av.AudioCodecData)(av.AudioDecoder,error)
}

type Handlers struct {
Expand Down Expand Up @@ -98,7 +98,7 @@ func (self *Handlers) NewAudioEncoder(typ av.CodecType) (enc av.AudioEncoder, er
return
}

func (self *Handlers) NewAudioDecoder(codec av.CodecData) (dec av.AudioDecoder, err error) {
func (self *Handlers) NewAudioDecoder(codec av.AudioCodecData) (dec av.AudioDecoder, err error) {
for _, handler := range self.handlers {
if handler.AudioDecoder != nil {
if dec, _ = handler.AudioDecoder(codec); dec != nil {
Expand Down
14 changes: 11 additions & 3 deletions av/transcode/transcode.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,9 @@ func NewTranscoder(streams []av.CodecData, options Options) (_self *Transcoder,
return
}
ts.timeline = &pktque.Timeline{}
ts.codec = enc.CodecData()
if ts.codec, err = enc.CodecData(); err != nil {
return
}
ts.aencodec = ts.codec.(av.AudioCodecData)
ts.adecodec = stream.(av.AudioCodecData)
ts.aenc = enc
Expand Down Expand Up @@ -168,7 +170,10 @@ func (self *Muxer) WritePacket(pkt av.Packet) (err error) {
}

func (self *Muxer) Close() (err error) {
return self.transcoder.Close()
if self.transcoder != nil {
return self.transcoder.Close()
}
return
}

type Demuxer struct {
Expand Down Expand Up @@ -220,5 +225,8 @@ func (self *Demuxer) Streams() (streams []av.CodecData, err error) {
}

func (self *Demuxer) Close() (err error) {
return self.transcoder.Close()
if self.transcoder != nil {
return self.transcoder.Close()
}
return
}
8 changes: 6 additions & 2 deletions cgo/ffmpeg/audio.go
Original file line number Diff line number Diff line change
Expand Up @@ -290,8 +290,12 @@ func (self *AudioEncoder) prepare() (err error) {
return
}

func (self *AudioEncoder) CodecData() (codec av.AudioCodecData) {
return self.codecData
func (self *AudioEncoder) CodecData() (codec av.AudioCodecData, err error) {
if err = self.prepare(); err != nil {
return
}
codec = self.codecData
return
}

func (self *AudioEncoder) encodeOne(frame av.AudioFrame) (gotpkt bool, pkt []byte, err error) {
Expand Down

0 comments on commit fb6c20e

Please sign in to comment.