diff --git a/ffmpeg/ffmpeg.go b/ffmpeg/ffmpeg.go index 8e6d141..8704a07 100644 --- a/ffmpeg/ffmpeg.go +++ b/ffmpeg/ffmpeg.go @@ -88,6 +88,9 @@ func (av *AVContext) ExportImage() ([]byte, error) { } func (av *AVContext) Close() { + if av.hasFrame { + C.av_frame_free(&av.frame) + } freeFormatContext(av) } diff --git a/processor.go b/processor.go index 4b67127..67d3528 100644 --- a/processor.go +++ b/processor.go @@ -96,10 +96,10 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp return } var filename = file.Name() - imagor.Defer(ctx, func() { + defer func() { _ = os.Remove(filename) p.Logger.Debug("cleanup", zap.String("file", filename)) - }) + }() if size, err = io.Copy(file, reader); err != nil { return } @@ -116,6 +116,7 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp if err != nil { return } + defer av.Close() meta := av.Metadata() if params.Meta { out = imagor.NewBlobFromJsonMarshal(meta)