Fallback extracting tags using ffmpeg
This commit is contained in:
@@ -4,24 +4,21 @@ import (
|
||||
"context"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
|
||||
"github.com/navidrome/navidrome/conf"
|
||||
"github.com/navidrome/navidrome/conf/configtest"
|
||||
. "github.com/navidrome/navidrome/core"
|
||||
"github.com/navidrome/navidrome/core"
|
||||
"github.com/navidrome/navidrome/log"
|
||||
"github.com/navidrome/navidrome/model"
|
||||
"github.com/navidrome/navidrome/tests"
|
||||
"github.com/navidrome/navidrome/utils"
|
||||
. "github.com/onsi/ginkgo/v2"
|
||||
. "github.com/onsi/gomega"
|
||||
)
|
||||
|
||||
var _ = Describe("MediaStreamer", func() {
|
||||
var streamer MediaStreamer
|
||||
var streamer core.MediaStreamer
|
||||
var ds model.DataStore
|
||||
ffmpeg := newFakeFFmpeg("fake data")
|
||||
ffmpeg := tests.NewMockFFmpeg("fake data")
|
||||
ctx := log.NewContext(context.TODO())
|
||||
|
||||
BeforeEach(func() {
|
||||
@@ -32,9 +29,9 @@ var _ = Describe("MediaStreamer", func() {
|
||||
ds.MediaFile(ctx).(*tests.MockMediaFileRepo).SetData(model.MediaFiles{
|
||||
{ID: "123", Path: "tests/fixtures/test.mp3", Suffix: "mp3", BitRate: 128, Duration: 257.0},
|
||||
})
|
||||
testCache := GetTranscodingCache()
|
||||
testCache := core.GetTranscodingCache()
|
||||
Eventually(func() bool { return testCache.Ready(context.TODO()) }).Should(BeTrue())
|
||||
streamer = NewMediaStreamer(ds, ffmpeg, testCache)
|
||||
streamer = core.NewMediaStreamer(ds, ffmpeg, testCache)
|
||||
})
|
||||
AfterEach(func() {
|
||||
_ = os.RemoveAll(conf.Server.DataFolder)
|
||||
@@ -75,32 +72,3 @@ var _ = Describe("MediaStreamer", func() {
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
func newFakeFFmpeg(data string) *fakeFFmpeg {
|
||||
return &fakeFFmpeg{Reader: strings.NewReader(data)}
|
||||
}
|
||||
|
||||
type fakeFFmpeg struct {
|
||||
io.Reader
|
||||
lock sync.Mutex
|
||||
closed utils.AtomicBool
|
||||
}
|
||||
|
||||
func (ff *fakeFFmpeg) Start(ctx context.Context, cmd, path string, maxBitRate int) (f io.ReadCloser, err error) {
|
||||
return ff, nil
|
||||
}
|
||||
|
||||
func (ff *fakeFFmpeg) Read(p []byte) (n int, err error) {
|
||||
ff.lock.Lock()
|
||||
defer ff.lock.Unlock()
|
||||
return ff.Reader.Read(p)
|
||||
}
|
||||
|
||||
func (ff *fakeFFmpeg) Close() error {
|
||||
ff.closed.Set(true)
|
||||
return nil
|
||||
}
|
||||
|
||||
func (ff *fakeFFmpeg) IsClosed() bool {
|
||||
return ff.closed.Get()
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user