interface change CodecData()(CodecData,error)
handler.AudioDecoder(av.AudioCodecData)
This commit is contained in:
parent
e64341e05c
commit
fb6c20e424
2
av/av.go
2
av/av.go
@ -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()
|
||||
|
@ -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 {
|
||||
@ -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 {
|
||||
|
@ -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
|
||||
@ -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 {
|
||||
@ -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
|
||||
}
|
||||
|
@ -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) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user