Commit Graph
49 Commits
Author SHA1 Message Date
Serge Tkatchoukandsentriz 616b152fed feat(encode): add hi-gain RG and upsampling support 2021-09-13 16:56:43 +01:00
4109b5b66c feat(encode): add mime-type headers to cache handlers
* feat(encode): add mime-type headers to cache handlers

This commit adds a simple MIME-type guessing logic to `onCacheHit` and
`onCacheMiss` handlers, which sets `Content-Type` HTTP response header based on
format specified by transcoding profile.

* Make cacheFile stat() error fatal

Co-authored-by: Senan Kelly <senan@senan.xyz>

* Make linter happy

Good morning to you too, mister linter!

Co-authored-by: Senan Kelly <senan@senan.xyz>

Co-authored-by: Senan Kelly <senan@senan.xyz>
2021-06-21 23:36:17 +01:00
Serge TkatchoukandGitHub 5444d40018 fix(encode): Strip EBU R128 gain tags when using forced-RG transcoding (#145) 2021-06-20 18:42:06 +01:00
Serge TkatchoukandSenan Kelly 794a2043e3 Make golangci-lint happy 2020-12-16 21:52:08 +00:00
Serge TkatchoukandSenan Kelly 67ce861718 Mark cache files as partial until ffmpeg finishes without errors 2020-12-16 21:52:08 +00:00
Serge Tkatchoukandsentriz 4db3d678c4 Make cache hit/miss messages mention the track 2020-03-12 13:27:53 +00:00
Serge Tkatchoukandsentriz ed610d36f6 Use detected bitrate when logging 2020-03-12 13:27:53 +00:00
Serge Tkatchoukandsentriz c9eb142c61 Avoid fetching profile bitrate twice 2020-03-12 13:27:53 +00:00
Serge Tkatchoukandsentriz 1ab96f67b5 Change leftover "model" calls to new "db" calls 2020-03-12 13:27:53 +00:00
Serge Tkatchoukandsentriz e1c54a3484 Fix Bitrate type mismatch 2020-03-12 13:27:53 +00:00
Serge Tkatchoukandsentriz 3230c8b2cb Also unexport streamTrack(), since it's only used in ctrlsubsonic 2020-03-12 13:27:52 +00:00
Serge Tkatchoukandsentriz db7c965a65 Implement client-preferred bitrate support in StreamTrack() 2020-03-12 13:27:52 +00:00
Serge Tkatchoukandsentriz ca0ec6da15 Add support for client-preferred streaming bitrate 2020-03-12 13:27:52 +00:00
Serge Tkatchoukandsentriz 1ac50b3e16 "Unexport" encodeTrack()
It's only used by StreamTrack() anyway.
2020-03-12 13:27:52 +00:00
Serge Tkatchoukandsentriz 0024e3ef8b Make linters happy 2020-03-12 13:27:52 +00:00
Serge Tkatchoukandsentriz c22fb3d482 Switch "/stream" controller to new "encode or stream cache" function 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz a3abdfca08 Add "cache/encode" controller 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz e93d35445c Extract client app name (needed for per-client quirks) 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz 01b620cffb Add separate "Download" controller 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz 9f61e92487 Add cachePath variable and CLI option 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz 7c9c3e4ff1 Prepare cache volume in Docker image 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz a5ab437dd6 Tune HTTP response timeouts, to allow "slow" FFmpeg to finish 2020-03-12 13:27:51 +00:00
Serge Tkatchoukandsentriz 9493b8a6a3 Add FFmpeg to worker container 2020-03-12 13:27:50 +00:00
Serge Tkatchoukandsentriz dca85313ed Add xxhash for track cache hashing 2020-03-12 13:27:50 +00:00
Serge Tkatchoukandsentriz 26e4430abc Make builder image more cache-friendly 2020-03-12 13:27:46 +00:00
Serge Tkatchouk 61419b10d1 Merge branch 'master' of github.com:sentriz/gonic into features/transcoding 2020-03-12 21:12:48 +08:00
Serge TkatchoukandGitHub 14009cd807 Merge pull request #1 from sentriz/features/transcoding_update
features/transcoding update
2020-03-12 20:51:07 +08:00
Serge Tkatchouk aa9f05a049 Merge branch 'master' of github.com:sentriz/gonic into features/transcoding 2020-03-10 10:31:17 +08:00
Serge Tkatchouk 24cbe8c0b2 Merge branch 'master' of github.com:sentriz/gonic into features/transcoding 2020-03-04 13:01:34 +08:00
Serge Tkatchouk 399f80a605 Make cache hit/miss messages mention the track 2020-03-03 19:28:15 +08:00
Serge Tkatchouk 16b9b31f6d Use detected bitrate when logging 2020-03-02 19:59:28 +08:00
Serge Tkatchouk ec341a2888 Avoid fetching profile bitrate twice 2020-03-02 19:18:19 +08:00
Serge Tkatchouk 1b0dc01994 Change leftover "model" calls to new "db" calls 2020-03-02 19:18:01 +08:00
Serge Tkatchouk de31de6864 Fix Bitrate type mismatch 2020-03-02 19:07:02 +08:00
Serge Tkatchouk 3582d0a4a2 Also unexport streamTrack(), since it's only used in ctrlsubsonic 2020-03-02 17:36:33 +08:00
Serge Tkatchouk b896574346 Implement client-preferred bitrate support in StreamTrack() 2020-03-02 17:35:59 +08:00
Serge Tkatchouk a19ba1cf8b Add support for client-preferred streaming bitrate 2020-03-02 17:35:22 +08:00
Serge Tkatchouk 55014e264c "Unexport" encodeTrack()
It's only used by StreamTrack() anyway.
2020-03-02 17:35:22 +08:00
Serge Tkatchouk bd5150e67f Make linters happy 2020-03-02 17:35:22 +08:00
Serge Tkatchouk 056747ec62 Switch "/stream" controller to new "encode or stream cache" function 2020-03-02 17:35:22 +08:00
Serge Tkatchouk 03cfd1ef7e Add "cache/encode" controller 2020-03-02 17:33:51 +08:00
Serge Tkatchouk 53971be2aa Extract client app name (needed for per-client quirks) 2020-03-02 17:33:51 +08:00
Serge Tkatchouk e79003996e Add separate "Download" controller 2020-03-02 17:33:51 +08:00
Serge Tkatchouk 6488a354b6 Add cachePath variable and CLI option 2020-03-02 17:32:05 +08:00
Serge Tkatchouk 550fc04436 Prepare cache volume in Docker image 2020-03-02 17:31:02 +08:00
Serge Tkatchouk 1f82133516 Tune HTTP response timeouts, to allow "slow" FFmpeg to finish 2020-03-02 17:31:02 +08:00
Serge Tkatchouk 85e4f916d3 Add FFmpeg to worker container 2020-03-02 17:31:02 +08:00
Serge Tkatchouk 668a5bb011 Add xxhash for track cache hashing 2020-03-02 17:31:02 +08:00
Serge Tkatchouk 938ef6e63c Make builder image more cache-friendly 2020-03-02 17:31:02 +08:00