Commit Graph

383 Commits

Author SHA1 Message Date
Serge Tkatchouk
b9f8ea7048 feat(encode): use "true" (unconstrained) VBR for Opus profiles 2021-09-13 16:56:50 +01:00
Serge Tkatchouk
616b152fed feat(encode): add hi-gain RG and upsampling support 2021-09-13 16:56:43 +01:00
sentriz
93608d04b4 fix(scanner): refactor a bit and fix the issue of repeatedly adding and removing tracks 😎
fixes #26
fixes #63
2021-09-10 21:00:10 +01:00
sentriz
569f62c08c refactor(scanner): don't be fancy with the clean funcs 2021-09-09 22:04:14 +01:00
alex
393813665a feat(jukebox): reduce complexity and update dependencies (#154)
* feat(jukebox): reduce jukebox code complexity

This removes an unessecary channel, but this is still pretty bad

* feat(jukebox): update flac/beep/oto so flac seeking works
2021-09-09 19:08:05 +01:00
sentriz
212a13395d fix: return early before type switch in ServeStream
related #152
2021-08-23 21:31:49 +01:00
sentriz
b56f00e9ac feat: support filter by genre in browse by folder mode 2021-08-23 21:31:38 +01:00
sentriz
6e2d4f73c5 feat: support filter by year in browse by folder mode 2021-08-23 21:31:31 +01:00
sentriz
c0ca6aaf03 fix(scanner): spawn interval scans in a goroutine
this way, if the average scan takes longer than the tick interval, the ticker will be unblocked and scans won't stack on top of each other

related #63
2021-06-28 21:37:32 +01:00
Serge Tkatchouk
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 Tkatchouk
5444d40018 fix(encode): Strip EBU R128 gain tags when using forced-RG transcoding (#145) 2021-06-20 18:42:06 +01:00
George Hilliard
7100b2b241 feat: Support WMA files, including those with embedded album art (#143)
The tag library supports WMA, so add the mimetype.

Some wma files have embedded album art encoded as a video stream
alongside the audio:

```
Input #0, asf, from '01. Emergency Pulloff.wma':
  Metadata:
    (snip)
  Duration: 00:03:11.47, start: 0.000000, bitrate: 129 kb/s
    Stream #0:0: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 200x200 [SAR 96:96 DAR 1:1], 90k tbr, 90k tbn, 90k tbc
    Metadata:
      comment         : Cover (front)
    Stream #0:1: Audio: wmav2 (a[1][0][0] / 0x0161), 44100 Hz, stereo, fltp, 128 kb/s
Output #0, opus, to '/tmp/output.opus':
Output file #0 does not contain any stream
```

The `-map 0:0` passed to ffmpeg is selecting the video stream to
transcode, then `-vn` says not to transcode video, so the whole process
returns an error code:

```
2021/05/28 18:59:09 transcoding according to transcoding profile of 96k
2021/05/28 18:59:09 serving transcode `02. Cotton Patch Rag.wma`: cache [opus/96k] miss!
2021/05/28 18:59:09 serving transcode `02. Cotton Patch Rag.wma`: error: starting transcode: running ffmpeg: exit status 1
```

I believe the correct solution here is to use an _audio_ stream
specifier, as in `-map 0🅰️0`.  Doing this selects the audio and
successfully performs the transcode.
2021-06-04 19:03:19 +01:00
sentriz
58624f07dc feat(subsonic)!: don't return gonic version from responses 2021-05-08 18:37:55 +01:00
sentriz
0c871d888b refactor(admin): use go1.16 embed for templates and assets 2021-05-08 18:37:55 +01:00
sentriz
6a99cdf299 bump to v0.12.3
generated by `_do_bump_version` script in project root
2021-04-20 23:17:05 +01:00
sentriz
61e11471b3 Fix non-folder folder empty parent ids
fixes #134
introduced by 711ffe144f

id          updated_at                           modified_at                          left_path   right_path  right_path_u_dec  parent_id   cover       tag_artist_id  tag_title   tag_title_u_dec  tag_brainz_id  tag_year
----------  -----------------------------------  -----------------------------------  ----------  ----------  ----------------  ----------  ----------  -------------  ----------  ---------------  -------------  ----------
1           2021-04-20 22:04:31.437318349+01:00  2021-04-20 21:35:55.423563144+01:00              .
2           2021-04-20 22:04:31.437920005+01:00  2021-04-20 21:35:50.766896425+01:00              luke
3           2021-04-20 22:04:31.475871668+01:00  2021-04-20 21:35:11.526895985+01:00  luke/       (2003) Yos                    2           folder.jpe  1              YosepH                       cf497d42-736a  2003
4           2021-04-20 22:04:31.476325505+01:00  2021-04-20 21:35:55.423563144+01:00              beng
5           2021-04-20 22:04:31.511647498+01:00  2021-04-20 21:35:27.060229492+01:00  beng/       (2013) Cha                    4           folder.jpg  2              Chapter II                   bcafa993-f065  2013

->

id          updated_at                           modified_at                          left_path   right_path  right_path_u_dec  parent_id   cover       tag_artist_id  tag_title   tag_title_u_dec  tag_brainz_id  tag_year
----------  -----------------------------------  -----------------------------------  ----------  ----------  ----------------  ----------  ----------  -------------  ----------  ---------------  -------------  ----------
1           2021-04-20 22:22:55.368005558+01:00  2021-04-20 21:35:55.423563144+01:00              .                                                                                                                0
2           2021-04-20 22:22:55.331985959+01:00  2021-04-20 21:35:50.766896425+01:00              luke                          1                                                                                  0
3           2021-04-20 22:22:55.33148277+01:00   2021-04-20 21:35:11.526895985+01:00  luke/       (2003) Yos                    2           folder.jpe  1              YosepH                       cf497d42-736a  2003
4           2021-04-20 22:22:55.367693081+01:00  2021-04-20 21:35:55.423563144+01:00              beng                          1                                                                                  0
5           2021-04-20 22:22:55.36711045+01:00   2021-04-20 21:35:27.060229492+01:00  beng/       (2013) Cha                    4           folder.jpg  2              Chapter II                   bcafa993-f065  2013
2021-04-20 23:12:15 +01:00
Duncan Overbruck
ef86f5b094 scanner/tags: fix original date
Real tag is `originaldate` and matches TDOR from taglib in id3v2:
https://github.com/taglib/taglib/blob/1644c0dd/taglib/mpeg/id3v2/id3v2frame.cpp#L338

originalyear does not exist.
2021-04-19 16:18:12 +02:00
Duncan Overbruck
482c6f0e19 scanner/tags: prefer original_date over date 2021-04-18 23:58:56 +02:00
sentriz
b17ce76a72 Set getUser.view jukebox/podcast role
closes #130
2021-04-18 12:34:54 +01:00
sentriz
e9cc2e8ea6 fix podcast nil ITunesExt and escape cover path with slash
Co-authored-by: Alex McGrath <amk@amk.ie>
2021-03-30 21:41:22 +01:00
sentriz
e7d4b857f7 sanitise password in logs 2021-03-23 21:15:56 +00:00
sentriz
51dc407f2e Add PodcastEpisodeStatusError 2021-03-04 19:38:34 +00:00
sentriz
3c926aab99 use enum for PodcastEpisodeStatus and PodcastAutoDownload 2021-03-04 19:38:34 +00:00
Alex McGrath
512d967dfa Add updated assets 2021-03-04 19:38:34 +00:00
Alex McGrath
10fca91785 Add download all button and include options to automatically download new episodes 2021-03-04 19:38:34 +00:00
Duncan Overbruck
2a11017d54 add flag (-http-log) to disable http request logging 2021-02-27 18:26:37 +00:00
sentriz
7d420f61a9 bump to v0.12.2
generated by `_do_bump_version` script in project root
2021-02-19 00:11:20 +00:00
sentriz
bcd7886484 fix download episode 2021-02-19 00:10:47 +00:00
sentriz
07f77bf107 bump to v0.12.1
generated by `_do_bump_version` script in project root
2021-02-18 12:26:35 +00:00
Alex McGrath
f7772303b0 Fix podcasts with / in the name 2021-02-18 12:18:35 +00:00
sentriz
524ea5a476 Fix podcats GetPodcastEpisodes 2021-02-06 22:06:58 +00:00
Alex McGrath
76875de87b Fix feeds not updating if they dont contain a feedurl 2021-02-06 16:19:20 +00:00
Alex McGrath
b57860a967 make podcast audio finding more robust
this will check that if there is no type field in an enclosure that
the url ends with an audio filename, if none of these are true, itll
then check audio:content for an item and do those checks again.
2021-02-06 16:19:20 +00:00
sentriz
6c69bd3be6 bump to v0.12.0
generated by `_do_bump_version` script in project root
2021-02-03 23:57:54 +00:00
sentriz
33455cab26 check ctrl_test json error 2021-02-03 23:16:18 +00:00
sentriz
e69cd4c71b gen assets 2021-02-03 23:00:06 +00:00
sentriz
7a1d57a43c support subsonic bookmarks 2021-02-03 22:55:05 +00:00
Alex McGrath
f027d5a486 hello more inline errors 2021-02-03 20:45:30 +00:00
Alex McGrath
31693079ac Update the assets.gen.go 2021-02-03 20:45:30 +00:00
sentriz
30958cd1fa Use multierr 2021-02-03 20:45:30 +00:00
sentriz
da48668a8d inlien ServePodcastAddDo AddNewPodcast err 2021-02-03 20:45:30 +00:00
Alex McGrath
37fca3a087 add some podcast nit changes and make podcasts mandatory 2021-02-03 20:45:30 +00:00
Alex McGrath
9c4286b0e2 add support for subsonic podcast api 2021-02-03 20:45:30 +00:00
sentriz
ce96b9f6fa don't hardcode ffmpeg path
fixes #113
2021-01-27 19:57:48 +00:00
Alex McGrath
6f02b58add add support for seeking to jukebox 2021-01-18 21:36:53 +00:00
Alex McGrath
f16f09717c fix jukebox default status - it shouldnt return a playlist 2021-01-18 21:36:53 +00:00
sentriz
665cb86afa update ServeGetUser for listenbrainz 2021-01-12 11:26:36 +00:00
sentriz
41063f5361 add listenbrainz AdditionalInfo
Co-authored-by: spezifisch <spezifisch@users.noreply.github.com>
Co-authored-by: Alex McGrath <amk@amk.ie>
2021-01-12 11:26:36 +00:00
sentriz
a18929ad01 add custom listenbrainz url support and make ui "consistent"
Co-authored-by: spezifisch <spezifisch@users.noreply.github.com>
Co-authored-by: Alex McGrath <amk@amk.ie>
2021-01-12 11:26:36 +00:00
Alex McGrath
4443d7d0f5 move scrobblers into their own package 2021-01-12 11:26:36 +00:00