summaryrefslogtreecommitdiff
path: root/rhimport/converter.go
diff options
context:
space:
mode:
Diffstat (limited to 'rhimport/converter.go')
-rw-r--r--rhimport/converter.go104
1 files changed, 52 insertions, 52 deletions
diff --git a/rhimport/converter.go b/rhimport/converter.go
index e53da9c..d9ac263 100644
--- a/rhimport/converter.go
+++ b/rhimport/converter.go
@@ -37,31 +37,31 @@ import (
"strings"
)
-type FetchConverter interface {
+type fetchConverter interface {
io.WriteCloser
GetResult(ctx *Context, res *Result) (result string, err error)
}
-type FetchConverterResult struct {
+type fetchConverterResult struct {
output string
err error
loudnessCorr float64
}
-func NewFetchConverter(ctx *Context, filename string, metadata map[string]string) (FetchConverter, string, error) {
+func newFetchConverter(ctx *Context, filename string, metadata map[string]string) (fetchConverter, string, error) {
switch ctx.FetchConverter {
case "null":
// no support for loudness evaluation - leave normalization to Rivendell
- return NewNullFetchConverter(ctx, filename, metadata)
+ return newNullFetchConverter(ctx, filename, metadata)
case "ffmpeg":
// no support for loudness evaluation - leave normalization to Rivendell
- return NewFFMpegFetchConverter(ctx, filename, metadata)
+ return newFFMpegFetchConverter(ctx, filename, metadata)
case "bs1770":
ctx.NormalizationLevel = 0 // disable Rivendell normalization
- return NewBS1770FetchConverter(ctx, filename, metadata)
+ return newBS1770FetchConverter(ctx, filename, metadata)
case "ffmpeg-bs1770":
ctx.NormalizationLevel = 0 // disable Rivendell normalization
- return NewFFMpegBS1770FetchConverter(ctx, filename, metadata)
+ return newFFMpegBS1770FetchConverter(ctx, filename, metadata)
}
return nil, "", errors.New("unknown fetch converter type: " + ctx.FetchConverter)
}
@@ -70,27 +70,27 @@ func NewFetchConverter(ctx *Context, filename string, metadata map[string]string
// NUll Converter aka File Writer
//
-type NullFetchConverter struct {
+type nullFetchConverter struct {
file *os.File
}
-func NewNullFetchConverter(ctx *Context, filename string, metadata map[string]string) (n *NullFetchConverter, newFilename string, err error) {
- n = &NullFetchConverter{}
+func newNullFetchConverter(ctx *Context, filename string, metadata map[string]string) (n *nullFetchConverter, newFilename string, err error) {
+ n = &nullFetchConverter{}
newFilename = filepath.Dir(filename) + "/conv-null" + filepath.Ext(filename)
ctx.stdlog.Printf("null-converter: opening file '%s' -> '%s'", filename, newFilename)
n.file, err = os.OpenFile(newFilename, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0600)
return
}
-func (c *NullFetchConverter) Write(p []byte) (n int, err error) {
+func (c *nullFetchConverter) Write(p []byte) (n int, err error) {
return c.file.Write(p)
}
-func (c *NullFetchConverter) Close() (err error) {
+func (c *nullFetchConverter) Close() (err error) {
return c.file.Close()
}
-func (c *NullFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
+func (c *nullFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
return "", nil
}
@@ -98,14 +98,14 @@ func (c *NullFetchConverter) GetResult(ctx *Context, res *Result) (result string
// FFMpeg Converter: converts all files into flac
//
-type FFMpegFetchConverter struct {
+type ffmpegFetchConverter struct {
cmd *exec.Cmd
pipe io.WriteCloser
- result chan FetchConverterResult
+ result chan fetchConverterResult
}
-func NewFFMpegFetchConverter(ctx *Context, filename string, metadata map[string]string) (ff *FFMpegFetchConverter, filenameFlac string, err error) {
- ff = &FFMpegFetchConverter{}
+func newFFMpegFetchConverter(ctx *Context, filename string, metadata map[string]string) (ff *ffmpegFetchConverter, filenameFlac string, err error) {
+ ff = &ffmpegFetchConverter{}
filenameFlac = filepath.Dir(filename) + "/conv-ffmpeg.flac"
ctx.stdlog.Printf("ffmpeg-converter: starting ffmpeg for file '%s' -> '%s'", filename, filenameFlac)
ff.cmd = exec.Command("ffmpeg", "-loglevel", "warning", "-i", "-", "-map_metadata", "0")
@@ -119,23 +119,23 @@ func NewFFMpegFetchConverter(ctx *Context, filename string, metadata map[string]
return nil, "", err
}
- ff.result = make(chan FetchConverterResult, 1)
+ ff.result = make(chan fetchConverterResult, 1)
go func() {
output, err := ff.cmd.CombinedOutput()
- ff.result <- FetchConverterResult{strings.TrimSpace(string(output)), err, 0.0}
+ ff.result <- fetchConverterResult{strings.TrimSpace(string(output)), err, 0.0}
}()
return
}
-func (ff *FFMpegFetchConverter) Write(p []byte) (n int, err error) {
+func (ff *ffmpegFetchConverter) Write(p []byte) (n int, err error) {
return ff.pipe.Write(p)
}
-func (ff *FFMpegFetchConverter) Close() (err error) {
+func (ff *ffmpegFetchConverter) Close() (err error) {
return ff.pipe.Close()
}
-func (ff *FFMpegFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
+func (ff *ffmpegFetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
if ff.result != nil {
select {
case r := <-ff.result:
@@ -155,16 +155,16 @@ func (ff *FFMpegFetchConverter) GetResult(ctx *Context, res *Result) (result str
// BS1770 Converter: calculates loudness correction value using ITU BS1770 (EBU R128)
//
-type BS1770FetchConverter struct {
+type bs1770FetchConverter struct {
cmd *exec.Cmd
file *os.File
pipe io.WriteCloser
multi io.Writer
- result chan FetchConverterResult
+ result chan fetchConverterResult
}
-func NewBS1770FetchConverter(ctx *Context, filename string, metadata map[string]string) (bs *BS1770FetchConverter, newFilename string, err error) {
- bs = &BS1770FetchConverter{}
+func newBS1770FetchConverter(ctx *Context, filename string, metadata map[string]string) (bs *bs1770FetchConverter, newFilename string, err error) {
+ bs = &bs1770FetchConverter{}
newFilename = filepath.Dir(filename) + "/conv-bs1770" + filepath.Ext(filename)
ctx.stdlog.Printf("bs1770-converter: starting bs1770gain for file '%s' -> '%s'", filename, newFilename)
bs.file, err = os.OpenFile(newFilename, os.O_WRONLY|os.O_CREATE|os.O_EXCL, 0600)
@@ -179,31 +179,31 @@ func NewBS1770FetchConverter(ctx *Context, filename string, metadata map[string]
bs.cmd.Stdout = &bsStdout
bs.cmd.Stderr = &bsStderr
- bs.result = make(chan FetchConverterResult, 1)
+ bs.result = make(chan fetchConverterResult, 1)
go func() {
if err := bs.cmd.Run(); err != nil {
- bs.result <- FetchConverterResult{strings.TrimSpace(string(bsStderr.String())), err, 0.0}
+ bs.result <- fetchConverterResult{strings.TrimSpace(string(bsStderr.String())), err, 0.0}
}
- res, err := NewBS1770ResultFromXML(&bsStdout)
+ res, err := newBS1770ResultFromXML(&bsStdout)
if err != nil {
- bs.result <- FetchConverterResult{bsStdout.String(), err, 0.0}
+ bs.result <- fetchConverterResult{bsStdout.String(), err, 0.0}
return
}
if len(res.Album.Tracks) == 0 {
- bs.result <- FetchConverterResult{bsStdout.String(), fmt.Errorf("bs1770gain returned no/invalid result"), 0.0}
+ bs.result <- fetchConverterResult{bsStdout.String(), fmt.Errorf("bs1770gain returned no/invalid result"), 0.0}
return
}
- bs.result <- FetchConverterResult{"", nil, res.Album.Tracks[0].Integrated.LU}
+ bs.result <- fetchConverterResult{"", nil, res.Album.Tracks[0].Integrated.LU}
}()
return
}
-func (bs *BS1770FetchConverter) Write(p []byte) (n int, err error) {
+func (bs *bs1770FetchConverter) Write(p []byte) (n int, err error) {
return bs.multi.Write(p)
}
-func (bs *BS1770FetchConverter) Close() (err error) {
+func (bs *bs1770FetchConverter) Close() (err error) {
errPipe := bs.pipe.Close()
errFile := bs.file.Close()
if errFile != nil {
@@ -212,7 +212,7 @@ func (bs *BS1770FetchConverter) Close() (err error) {
return errPipe
}
-func (bs *BS1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
+func (bs *bs1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
if bs.result != nil {
select {
case r := <-bs.result:
@@ -233,16 +233,16 @@ func (bs *BS1770FetchConverter) GetResult(ctx *Context, res *Result) (result str
// using ITU BS1770 (EBU R128)
//
-type FFMpegBS1770FetchConverter struct {
+type ffmpegBS1770FetchConverter struct {
ffmpeg *exec.Cmd
bs1770 *exec.Cmd
pipe io.WriteCloser
- resultFF chan FetchConverterResult
- resultBS chan FetchConverterResult
+ resultFF chan fetchConverterResult
+ resultBS chan fetchConverterResult
}
-func NewFFMpegBS1770FetchConverter(ctx *Context, filename string, metadata map[string]string) (ff *FFMpegBS1770FetchConverter, filenameFlac string, err error) {
- ff = &FFMpegBS1770FetchConverter{}
+func newFFMpegBS1770FetchConverter(ctx *Context, filename string, metadata map[string]string) (ff *ffmpegBS1770FetchConverter, filenameFlac string, err error) {
+ ff = &ffmpegBS1770FetchConverter{}
filenameFlac = filepath.Dir(filename) + "/conv-ffmpeg-bs1770.flac"
ctx.stdlog.Printf("ffmpeg-bs1770-converter: starting ffmpeg and bs1770gain for file '%s' -> '%s'", filename, filenameFlac)
ff.ffmpeg = exec.Command("ffmpeg", "-loglevel", "warning", "-i", "pipe:0", "-map_metadata", "0")
@@ -270,46 +270,46 @@ func NewFFMpegBS1770FetchConverter(ctx *Context, filename string, metadata map[s
ff.bs1770.Stdout = &bsStdout
ff.bs1770.Stderr = &bsStderr
- ff.resultFF = make(chan FetchConverterResult, 1)
- ff.resultBS = make(chan FetchConverterResult, 1)
+ ff.resultFF = make(chan fetchConverterResult, 1)
+ ff.resultBS = make(chan fetchConverterResult, 1)
go func() {
err := ff.ffmpeg.Run()
ffstdout.Close()
- ff.resultFF <- FetchConverterResult{strings.TrimSpace(string(ffStderr.String())), err, 0.0}
+ ff.resultFF <- fetchConverterResult{strings.TrimSpace(string(ffStderr.String())), err, 0.0}
}()
go func() {
if err := ff.bs1770.Run(); err != nil {
- ff.resultBS <- FetchConverterResult{strings.TrimSpace(string(bsStderr.String())), err, 0.0}
+ ff.resultBS <- fetchConverterResult{strings.TrimSpace(string(bsStderr.String())), err, 0.0}
}
- res, err := NewBS1770ResultFromXML(&bsStdout)
+ res, err := newBS1770ResultFromXML(&bsStdout)
if err != nil {
- ff.resultBS <- FetchConverterResult{bsStdout.String(), err, 0.0}
+ ff.resultBS <- fetchConverterResult{bsStdout.String(), err, 0.0}
return
}
if len(res.Album.Tracks) == 0 {
- ff.resultBS <- FetchConverterResult{bsStdout.String(), fmt.Errorf("bs1770gain returned no/invalid result"), 0.0}
+ ff.resultBS <- fetchConverterResult{bsStdout.String(), fmt.Errorf("bs1770gain returned no/invalid result"), 0.0}
return
}
- ff.resultBS <- FetchConverterResult{"", nil, res.Album.Tracks[0].Integrated.LU}
+ ff.resultBS <- fetchConverterResult{"", nil, res.Album.Tracks[0].Integrated.LU}
}()
return
}
-func (ff *FFMpegBS1770FetchConverter) Write(p []byte) (n int, err error) {
+func (ff *ffmpegBS1770FetchConverter) Write(p []byte) (n int, err error) {
return ff.pipe.Write(p)
}
-func (ff *FFMpegBS1770FetchConverter) Close() (err error) {
+func (ff *ffmpegBS1770FetchConverter) Close() (err error) {
return ff.pipe.Close()
}
-func (ff *FFMpegBS1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
+func (ff *ffmpegBS1770FetchConverter) GetResult(ctx *Context, res *Result) (result string, err error) {
if ff.resultFF == nil || ff.resultBS == nil {
return "", nil
}
- var rff, rbs *FetchConverterResult
+ var rff, rbs *fetchConverterResult
for {
select {
case r := <-ff.resultFF: