fix(imagorvideo): fix reader and read seeker close sequence (#12)
* refactor(imagorvideo): refactor reader/read seeker flow * fix(imagorvideo): fix reader/read seeker close sequence
This commit is contained in:
parent
131948c727
commit
01acb20186
1 changed files with 9 additions and 15 deletions
18
processor.go
18
processor.go
|
|
@ -86,25 +86,16 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
|||
if reader, size, err = in.NewReader(); err != nil {
|
||||
return
|
||||
}
|
||||
if size <= 0 {
|
||||
// force read full file if size unknown
|
||||
_ = reader.Close()
|
||||
reader = nil
|
||||
}
|
||||
default:
|
||||
}
|
||||
if reader == nil {
|
||||
reader, size, err = in.NewReadSeeker()
|
||||
if err == nil && size <= 0 {
|
||||
_ = reader.Close()
|
||||
reader = nil
|
||||
}
|
||||
}
|
||||
if reader == nil || size <= 0 {
|
||||
// write to temp file if read seeker not available or size unknown
|
||||
if reader == nil {
|
||||
// write to temp file if read seeker not available
|
||||
if reader, _, err = in.NewReader(); err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
var file *os.File
|
||||
if file, err = os.CreateTemp("", "imagor-"); err != nil {
|
||||
return
|
||||
|
|
@ -125,6 +116,9 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
|||
return
|
||||
}
|
||||
}
|
||||
defer func() {
|
||||
_ = reader.Close()
|
||||
}()
|
||||
av, err := ffmpeg.LoadAVContext(ctx, reader, size)
|
||||
if err != nil {
|
||||
return
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue