ffmpeg: add AudioCodecHandler
This commit is contained in:
parent
952ac6e1b8
commit
e64341e05c
@ -17,6 +17,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"github.com/nareix/joy4/av"
|
"github.com/nareix/joy4/av"
|
||||||
|
"github.com/nareix/joy4/av/avutil"
|
||||||
"github.com/nareix/joy4/codec/aacparser"
|
"github.com/nareix/joy4/codec/aacparser"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -277,11 +278,7 @@ func (self *AudioEncoder) Setup() (err error) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (self *AudioEncoder) CodecData() (codec av.AudioCodecData) {
|
func (self *AudioEncoder) prepare() (err error) {
|
||||||
return self.codecData
|
|
||||||
}
|
|
||||||
|
|
||||||
func (self *AudioEncoder) encodeOne(frame av.AudioFrame) (gotpkt bool, pkt []byte, err error) {
|
|
||||||
ff := &self.ff.ff
|
ff := &self.ff.ff
|
||||||
|
|
||||||
if ff.frame == nil {
|
if ff.frame == nil {
|
||||||
@ -290,6 +287,20 @@ func (self *AudioEncoder) encodeOne(frame av.AudioFrame) (gotpkt bool, pkt []byt
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *AudioEncoder) CodecData() (codec av.AudioCodecData) {
|
||||||
|
return self.codecData
|
||||||
|
}
|
||||||
|
|
||||||
|
func (self *AudioEncoder) encodeOne(frame av.AudioFrame) (gotpkt bool, pkt []byte, err error) {
|
||||||
|
if err = self.prepare(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
ff := &self.ff.ff
|
||||||
|
|
||||||
cpkt := C.AVPacket{}
|
cpkt := C.AVPacket{}
|
||||||
cgotpkt := C.int(0)
|
cgotpkt := C.int(0)
|
||||||
audioFrameAssignToFF(frame, ff.frame)
|
audioFrameAssignToFF(frame, ff.frame)
|
||||||
@ -670,3 +681,12 @@ func (self audioCodecData) PacketDuration(data []byte) (dur time.Duration, err e
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func AudioCodecHandler(h *avutil.RegisterHandler) {
|
||||||
|
h.AudioDecoder = func(codec av.AudioCodecData) (av.AudioDecoder, error) {
|
||||||
|
return NewAudioDecoder(codec)
|
||||||
|
}
|
||||||
|
h.AudioEncoder = func(typ av.CodecType) (av.AudioEncoder, error) {
|
||||||
|
return NewAudioEncoderByCodecType(typ)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user