Skip to content

Commit 0219f88

Browse files
committed
Updates to reduce ff binding dependencies
1 parent 4c22129 commit 0219f88

File tree

15 files changed

+605
-448
lines changed

15 files changed

+605
-448
lines changed

pkg/ffmpeg/encoder.go

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ type Encoder struct {
3131

3232
// EncoderFrameFn is a function which is called to receive a frame to encode. It should
3333
// return nil to continue encoding or io.EOF to stop encoding.
34-
type EncoderFrameFn func(int) (*ff.AVFrame, error)
34+
type EncoderFrameFn func(int) (*Frame, error)
3535

3636
// EncoderPacketFn is a function which is called for each packet encoded, with
3737
// the stream timebase.
@@ -71,10 +71,10 @@ func NewEncoder(ctx *ff.AVFormatContext, stream int, par *Par) (*Encoder, error)
7171

7272
// Check codec against parameters and set defaults as needed, then
7373
// copy back to codec
74-
if err := par.ValidateFromCodec(encoder.ctx); err != nil {
74+
if err := par.ValidateFromCodec(encoder.ctx.Codec()); err != nil {
7575
ff.AVCodec_free_context(encoder.ctx)
7676
return nil, err
77-
} else if err := par.CopyToCodec(encoder.ctx); err != nil {
77+
} else if err := par.CopyToCodecContext(encoder.ctx); err != nil {
7878
ff.AVCodec_free_context(encoder.ctx)
7979
return nil, err
8080
}
@@ -161,7 +161,7 @@ func (e *Encoder) String() string {
161161
// Encode a frame and pass packets to the EncoderPacketFn. If the frame is nil, then
162162
// the encoder will flush any remaining packets. If io.EOF is returned then
163163
// it indicates that the encoder has ended prematurely.
164-
func (e *Encoder) Encode(frame *ff.AVFrame, fn EncoderPacketFn) error {
164+
func (e *Encoder) Encode(frame *Frame, fn EncoderPacketFn) error {
165165
if fn == nil {
166166
return ErrBadParameter.With("nil fn")
167167
}
@@ -180,7 +180,7 @@ func (e *Encoder) Par() *Par {
180180
}
181181

182182
// Return the codec type
183-
func (e *Encoder) nextPts(frame *ff.AVFrame) int64 {
183+
func (e *Encoder) nextPts(frame *Frame) int64 {
184184
next_pts := int64(0)
185185
switch e.ctx.Codec().Type() {
186186
case ff.AVMEDIA_TYPE_AUDIO:
@@ -198,11 +198,11 @@ func (e *Encoder) nextPts(frame *ff.AVFrame) int64 {
198198
//////////////////////////////////////////////////////////////////////////////
199199
// PRIVATE METHODS
200200

201-
func (e *Encoder) encode(frame *ff.AVFrame, fn EncoderPacketFn) error {
201+
func (e *Encoder) encode(frame *Frame, fn EncoderPacketFn) error {
202202
timebase := e.stream.TimeBase()
203203

204204
// Send the frame to the encoder
205-
if err := ff.AVCodec_send_frame(e.ctx, frame); err != nil {
205+
if err := ff.AVCodec_send_frame(e.ctx, (*ff.AVFrame)(frame)); err != nil {
206206
return err
207207
}
208208

0 commit comments

Comments
 (0)