refactor: rename ffmpeg to transcoder

This commit is contained in:
Deluan 2020-02-25 10:01:39 -05:00
parent 33ede13eef
commit 0370f0a3ea
6 changed files with 24 additions and 24 deletions

View File

@ -11,7 +11,7 @@ import (
"github.com/deluan/navidrome/conf"
"github.com/deluan/navidrome/consts"
"github.com/deluan/navidrome/engine/ffmpeg"
"github.com/deluan/navidrome/engine/transcoder"
"github.com/deluan/navidrome/log"
"github.com/deluan/navidrome/model"
"github.com/deluan/navidrome/utils"
@ -22,13 +22,13 @@ type MediaStreamer interface {
NewStream(ctx context.Context, id string, maxBitRate int, format string) (*Stream, error)
}
func NewMediaStreamer(ds model.DataStore, ffm ffmpeg.FFmpeg, cache fscache.Cache) MediaStreamer {
func NewMediaStreamer(ds model.DataStore, ffm transcoder.Transcoder, cache fscache.Cache) MediaStreamer {
return &mediaStreamer{ds: ds, ffm: ffm, cache: cache}
}
type mediaStreamer struct {
ds model.DataStore
ffm ffmpeg.FFmpeg
ffm transcoder.Transcoder
cache fscache.Cache
}
@ -66,7 +66,7 @@ func (ms *mediaStreamer) NewStream(ctx context.Context, id string, maxBitRate in
// If this is a brand new transcoding request, not in the cache, start transcoding
if w != nil {
log.Trace(ctx, "Cache miss. Starting new transcoding session", "id", mf.ID)
out, err := ms.ffm.StartTranscoding(ctx, mf.Path, bitRate, format)
out, err := ms.ffm.Start(ctx, mf.Path, bitRate, format)
if err != nil {
log.Error(ctx, "Error starting transcoder", "id", mf.ID, err)
return nil, os.ErrInvalid

View File

@ -78,7 +78,7 @@ type fakeFFmpeg struct {
closed bool
}
func (ff *fakeFFmpeg) StartTranscoding(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error) {
func (ff *fakeFFmpeg) Start(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error) {
ff.r = strings.NewReader(ff.Data)
return ff, nil
}

View File

@ -1,4 +1,4 @@
package ffmpeg
package transcoder
import (
"context"
@ -12,30 +12,30 @@ import (
"github.com/deluan/navidrome/log"
)
type FFmpeg interface {
StartTranscoding(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error)
type Transcoder interface {
Start(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error)
}
func New() FFmpeg {
func New() Transcoder {
return &ffmpeg{}
}
type ffmpeg struct{}
func (ff *ffmpeg) StartTranscoding(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error) {
cmdLine, args := createTranscodeCommand(path, maxBitRate, format)
func (ff *ffmpeg) Start(ctx context.Context, path string, maxBitRate int, format string) (f io.ReadCloser, err error) {
arg0, args := createTranscodeCommand(path, maxBitRate, format)
log.Trace(ctx, "Executing ffmpeg command", "arg0", cmdLine, "args", args)
cmd := exec.Command(cmdLine, args...)
log.Trace(ctx, "Executing ffmpeg command", "cmd", arg0, "args", args)
cmd := exec.Command(arg0, args...)
cmd.Stderr = os.Stderr
if f, err = cmd.StdoutPipe(); err != nil {
return f, err
return
}
if err = cmd.Start(); err != nil {
return f, err
return
}
go cmd.Wait() // prevent zombies
return f, err
return
}
func createTranscodeCommand(path string, maxBitRate int, format string) (string, []string) {

View File

@ -1,4 +1,4 @@
package ffmpeg
package transcoder
import (
"testing"
@ -10,11 +10,11 @@ import (
. "github.com/onsi/gomega"
)
func TestFFmpeg(t *testing.T) {
func TestTranscoder(t *testing.T) {
tests.Init(t, false)
log.SetLevel(log.LevelCritical)
RegisterFailHandler(Fail)
RunSpecs(t, "FFmpeg Suite")
RunSpecs(t, "Transcoder Suite")
}
var _ = Describe("createTranscodeCommand", func() {

View File

@ -1,7 +1,7 @@
package engine
import (
"github.com/deluan/navidrome/engine/ffmpeg"
"github.com/deluan/navidrome/engine/transcoder"
"github.com/google/wire"
)
@ -16,6 +16,6 @@ var Set = wire.NewSet(
NewNowPlayingRepository,
NewUsers,
NewMediaStreamer,
ffmpeg.New,
transcoder.New,
NewTranscodingCache,
)

View File

@ -7,7 +7,7 @@ package main
import (
"github.com/deluan/navidrome/engine"
"github.com/deluan/navidrome/engine/ffmpeg"
"github.com/deluan/navidrome/engine/transcoder"
"github.com/deluan/navidrome/persistence"
"github.com/deluan/navidrome/scanner"
"github.com/deluan/navidrome/server"
@ -42,12 +42,12 @@ func CreateSubsonicAPIRouter() (*subsonic.Router, error) {
ratings := engine.NewRatings(dataStore)
scrobbler := engine.NewScrobbler(dataStore, nowPlayingRepository)
search := engine.NewSearch(dataStore)
fFmpeg := ffmpeg.New()
transcoderTranscoder := transcoder.New()
cache, err := engine.NewTranscodingCache()
if err != nil {
return nil, err
}
mediaStreamer := engine.NewMediaStreamer(dataStore, fFmpeg, cache)
mediaStreamer := engine.NewMediaStreamer(dataStore, transcoderTranscoder, cache)
router := subsonic.New(browser, cover, listGenerator, users, playlists, ratings, scrobbler, search, mediaStreamer)
return router, nil
}