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
24
processor.go
24
processor.go
|
|
@ -86,24 +86,15 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
||||||
if reader, size, err = in.NewReader(); err != nil {
|
if reader, size, err = in.NewReader(); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if size <= 0 {
|
|
||||||
// force read full file if size unknown
|
|
||||||
_ = reader.Close()
|
|
||||||
reader = nil
|
|
||||||
}
|
|
||||||
default:
|
default:
|
||||||
}
|
|
||||||
if reader == nil {
|
|
||||||
reader, size, err = in.NewReadSeeker()
|
reader, size, err = in.NewReadSeeker()
|
||||||
if err == nil && size <= 0 {
|
|
||||||
_ = reader.Close()
|
|
||||||
reader = nil
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if reader == nil {
|
if reader == nil || size <= 0 {
|
||||||
// write to temp file if read seeker not available
|
// write to temp file if read seeker not available or size unknown
|
||||||
if reader, _, err = in.NewReader(); err != nil {
|
if reader == nil {
|
||||||
return
|
if reader, _, err = in.NewReader(); err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
var file *os.File
|
var file *os.File
|
||||||
if file, err = os.CreateTemp("", "imagor-"); err != nil {
|
if file, err = os.CreateTemp("", "imagor-"); err != nil {
|
||||||
|
|
@ -125,6 +116,9 @@ func (p *Processor) Process(ctx context.Context, in *imagor.Blob, params imagorp
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
defer func() {
|
||||||
|
_ = reader.Close()
|
||||||
|
}()
|
||||||
av, err := ffmpeg.LoadAVContext(ctx, reader, size)
|
av, err := ffmpeg.LoadAVContext(ctx, reader, size)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue