diff options
-rw-r--r-- | rhimport/converter.go | 30 | ||||
-rw-r--r-- | rhimport/fetcher.go | 11 |
2 files changed, 20 insertions, 21 deletions
diff --git a/rhimport/converter.go b/rhimport/converter.go index f842ef3..0546b97 100644 --- a/rhimport/converter.go +++ b/rhimport/converter.go @@ -38,7 +38,7 @@ import ( type FetchConverter interface { io.WriteCloser - GetResult() (result string, err error, loudnessCorr float64) + GetResult(ctx *Context, res *Result) (result string, err error) } type FetchConverterResult struct { @@ -85,8 +85,8 @@ func (c *NullFetchConverter) Close() (err error) { return c.file.Close() } -func (c *NullFetchConverter) GetResult() (result string, err error, loudnessCorr float64) { - return "", nil, 0.0 +func (c *NullFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) { + return "", nil } // @@ -131,12 +131,13 @@ func (ff *FFMpegFetchConverter) Close() (err error) { return ff.pipe.Close() } -func (ff *FFMpegFetchConverter) GetResult() (result string, err error, loudnessCorr float64) { +func (ff *FFMpegFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) { if ff.result != nil { r := <-ff.result - return r.output, r.err, r.loudnessCorr + ctx.LoudnessCorr = r.loudnessCorr + return r.output, r.err } - return "", nil, 0.0 + return "", nil } // @@ -198,12 +199,13 @@ func (bs *BS1770FetchConverter) Close() (err error) { return errPipe } -func (bs *BS1770FetchConverter) GetResult() (result string, err error, loudnessCorr float64) { +func (bs *BS1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) { if bs.result != nil { r := <-bs.result - return r.output, r.err, r.loudnessCorr + ctx.LoudnessCorr = r.loudnessCorr + return r.output, r.err } - return "", nil, 0.0 + return "", nil } // @@ -281,7 +283,7 @@ func (ff *FFMpegBS1770FetchConverter) Close() (err error) { return ff.pipe.Close() } -func (ff *FFMpegBS1770FetchConverter) GetResult() (result string, err error, loudnessCorr float64) { +func (ff *FFMpegBS1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) { var rff, rbs FetchConverterResult if ff.resultFF != nil { rff = <-ff.resultFF @@ -290,11 +292,11 @@ func (ff *FFMpegBS1770FetchConverter) GetResult() (result string, err error, lou rbs = <-ff.resultBS } if rff.err != nil { - return rff.output, fmt.Errorf("ffmpeg: %v", rff.err), 0.0 + return rff.output, fmt.Errorf("ffmpeg: %v", rff.err) } if rbs.err != nil { - return rbs.output, fmt.Errorf("bs1770gain: %v", rbs.err), 0.0 + return rbs.output, fmt.Errorf("bs1770gain: %v", rbs.err) } - - return "", nil, rbs.loudnessCorr + ctx.LoudnessCorr = rbs.loudnessCorr + return "", nil } diff --git a/rhimport/fetcher.go b/rhimport/fetcher.go index 3933105..4d942fa 100644 --- a/rhimport/fetcher.go +++ b/rhimport/fetcher.go @@ -238,7 +238,7 @@ func fetchFileCurl(ctx *Context, res *Result, uri *url.URL) (err error) { if cbdata.conv != nil { cbdata.conv.Close() rhl.Printf("waiting for converter to finish...") - convOut, convErr, ctx.LoudnessCorr = cbdata.conv.GetResult() + convOut, convErr = cbdata.conv.GetResult(ctx, res) } if err != nil || cbdata.writeError != nil || convErr != nil { if cbdata.conv != nil { @@ -369,7 +369,7 @@ func fetchFileArchiv(ctx *Context, res *Result, uri *url.URL) (err error) { if cbdata.conv != nil { cbdata.conv.Close() rhl.Printf("waiting for converter to finish...") - convOut, convErr, ctx.LoudnessCorr = cbdata.conv.GetResult() + convOut, convErr = cbdata.conv.GetResult(ctx, res) } if err != nil || cbdata.writeError != nil || convErr != nil { if cbdata.conv != nil { @@ -456,9 +456,7 @@ func fetchFileDirConvert(ctx *Context, res *Result, origSrc *os.File, sizeTotal conv.Close() rhl.Printf("waiting for converter to finish...") - var convOut string - var convErr error - if convOut, convErr, ctx.LoudnessCorr = conv.GetResult(); convErr != nil { + if convOut, convErr := conv.GetResult(ctx, res); convErr != nil { if convOut != "" { rhl.Printf("converter error: %v; converter output: %s", convErr, convOut) } @@ -674,7 +672,7 @@ func fetchFileAttachment(ctx *Context, res *Result, uri *url.URL) error { err = writeAttachmentFile(ctx, res, sizeTotal, conv) conv.Close() rhl.Printf("waiting for converter to finish...") - convOut, convErr, loudnessCorr := conv.GetResult() + convOut, convErr := conv.GetResult(ctx, res) if err != nil { return err } @@ -684,7 +682,6 @@ func fetchFileAttachment(ctx *Context, res *Result, uri *url.URL) error { } return fmt.Errorf("converter error: %v; converter output: %s", convErr, convOut) } - ctx.LoudnessCorr = loudnessCorr rhdl.Printf("converter: loudness correction = %.2f dB", ctx.LoudnessCorr) if ctx.SourceFilePolicy == Auto { |