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

View File

@ -78,7 +78,7 @@ type fakeFFmpeg struct {
closed bool 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) ff.r = strings.NewReader(ff.Data)
return ff, nil return ff, nil
} }

View File

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

View File

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

View File

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

View File

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