Commit Graph
2153 Commits
Author SHA1 Message Date
emeric a008ccfacc Increased the artist info scan version to force rescan. ref #688 2025-06-15 14:34:14 +02:00
emeric 4d3201c1a0 Use the folder name as artist name if no name is provided in the artist.nfo file. fixes #688 2025-06-14 13:34:19 +02:00
emeric 085210f364 Subsonic API: report original year for albums, fixes #672 2025-06-14 13:06:41 +02:00
emeric d4d14c39a5 Fixed format 2025-06-12 22:52:44 +02:00
emeric 4837e1959f search3: minor optim 2025-06-12 22:44:14 +02:00
emeric 0b0b8a34d1 Merge branch 'srett-child-process-enhancement' into develop 2025-06-06 08:45:48 +02:00
emeric 161d7b6c15 Minor clean 2025-06-06 08:45:34 +02:00
emeric c9e4ec1eb5 fixed format 2025-06-06 08:24:02 +02:00
Simon Rettberg b2471cccfb FileResourceHandler: Open file once on init, more error handling
Keeping the file open allows better prefetching/caching on both
the application layer (ifstream) and OS level (vfs layer) as
the access pattern is sequential and predictable. We also save
three syscalls (open, seek, close) for every chunk we send to
the client (256kb).
2025-06-06 08:24:02 +02:00
emeric 1e7fbcad15 Fixed warning 2025-06-06 08:24:02 +02:00
emeric 4e7bc9c7cc fixed format 2025-06-02 21:38:19 +02:00
emeric c4cf829254 Merge branch 'srett-fileresource-open-once' into develop 2025-06-02 21:35:41 +02:00
emeric 221daf5222 Fixed warning 2025-06-02 21:26:21 +02:00
emeric 8bcda2a96f Fixed warning 2025-06-02 21:10:01 +02:00
Simon Rettberg 5b0a136542 FileResourceHandler: Open file once on init, more error handling
Keeping the file open allows better prefetching/caching on both
the application layer (ifstream) and OS level (vfs layer) as
the access pattern is sequential and predictable. We also save
three syscalls (open, seek, close) for every chunk we send to
the client (256kb).
2025-06-02 12:15:28 +02:00
Simon Rettberg 54771e6ddf Minor fixes to ChildProcess
- Don't set FD_CLOEXEC, but close manually before fork:
  Since we don't use pipe2() to set the flag atomically, we're prone to
  races with concurrent fork+execs either way. As ChildProcess uses a
  mutex here anyways, as long as there is no other part in lms that
  would fork+exec, we're not any more or less safe now, but the code
  is shorter and we cannot fail the fcntl.
- Don't make the write-end of the pipe non-blocking. Usually programs
  do not expect this, i.e. they either never check the return code of
  a write to stdout (potential data loss), or if they do, they just
  bail out on any error, and don't handle EAGAIN. ffmpeg seemed
  to handle this fine though (or we were just lucky and always read
  the data faster than ffmpeg could produce it).
- Do not close stdin and stderr. Again ffmpeg seems to handle this,
  at least regarding stdin thanks to -nostdin, but in general if a
  process tries to write to stderr and fd 2 is not open, it might
  just bail out. Even worse, the process might have opened some
  file it wants to work with, and that file got assigned fd 2 (as
  that was the next free fd) - the program would corrupt whatever
  file it opened there whenever it tries to write to stderr.
  Try to open /dev/null instead for stdin and stderr, and if that
  fails, keep whatever lms inherited open, which should be safer
  than relying on the child process to handle this case properly.
- exec() does not return on success, no need to check return code,
  any return from it is a failure.
- Wrong error message in error path when assigning fd to boost stream.
- F_SETPIPE_SZ requires and int, not size_t. This worked on little
  endian systems since the value passed was < 2^32, but on big
  endian systems you'd effectively pass "0" if using a 64bit type.
- Address a few clang-tidy complaints (constness)
2025-06-02 09:18:31 +02:00
emeric 2557402367 Using track id for the transcoding service 2025-05-31 10:27:53 +02:00
emeric dc52ea4ea5 Introduced new transcoding service 2025-05-30 23:27:01 +02:00
emeric 8cf2e2b660 Removed unused struct 2025-05-30 18:38:53 +02:00
emeric 5a70ea68ce fixed build with wt 4.11.4 on debian, ref #681 2025-05-29 22:54:16 +02:00
emeric 291e7ae60c Subsonic API: changed return code from 41 to 42 when a token is used 2025-05-29 21:48:07 +02:00
emeric 2b9ff2b2e9 Added some indexes 2025-05-29 15:53:42 +02:00
emeric 571c0bc5f4 More details for scan error reports #676 2025-05-26 23:33:52 +02:00
emeric 6d6ea4920b xxhash is just an include dependency 2025-05-24 15:02:10 +02:00
emeric f44e4b9f40 Added a way to force rescan artist infos 2025-05-18 14:21:52 +02:00
emeric 13b3aac03c Fixed hopefully harmless typos 2025-05-18 12:59:51 +02:00
emeric a8dc7872e5 Fixed bad migration 2025-05-18 11:29:23 +02:00
emeric 61fdbf2949 Fixed artist info badly reported as matched using mbid 2025-05-18 11:16:45 +02:00
emeric cdbed46ae3 Minor log update 2025-05-16 13:17:18 +02:00
emeric 7e242da3b7 Fixed artist link badly reported as matched using mbid 2025-05-16 13:06:34 +02:00
emeric 7502bf6885 Redacted apiKey values 2025-05-09 12:50:56 +02:00
Enrique Garcia 2069d0cb21 Small improvements on Spanish localization 2025-05-07 14:09:22 +02:00
emeric b5570b4c78 Fixed potential crash 2025-05-07 14:07:08 +02:00
emeric 79be2ebb16 Better bench scope + minor cleanup 2025-05-07 13:56:43 +02:00
emeric aa45cea988 Added some logic to handle multi artists in tags involving the artist whitelist, fixes #669 2025-05-04 22:28:04 +02:00
emeric 83dcac39c5 Added missing new es entries 2025-04-28 08:40:16 +02:00
César Enrique García Dabó 68511da761 Add Spanish localization 2025-04-28 08:34:57 +02:00
emeric b62f773400 Fixed build 2025-04-27 18:19:31 +02:00
emeric cc9c6a42ff Added a way to set artists that must not be split, fixes #522 2025-04-27 18:03:45 +02:00
emeric a26632828e Subsonic API: check if the user has enabled transcoding by default to put transcodedSuffix and transcodedContentType fields 2025-04-26 16:38:50 +02:00
emeric 03cbe85e32 Added basic build on push 2025-04-22 22:55:51 +02:00
emeric 5713e2a909 Upgraded actions + only trigger on PR 2025-04-20 21:17:45 +02:00
emeric 1b9cbf340f Enabled unity build for codeql 2025-04-20 20:41:59 +02:00
emeric 09492c3c84 Enabled unity build by default 2025-04-20 15:50:21 +02:00
emeric 996a86bd96 Exposed ARG LMS_UNITY_BUILD var 2025-04-20 15:37:17 +02:00
emeric a15e5efd01 Added a unity build check 2025-04-20 15:10:51 +02:00
emeric 7767ddb78f Made compilation work with unity builds 2025-04-20 11:26:47 +02:00
emeric a5b130305e Append Z to iso8601 date time strings 2025-04-11 18:02:58 +02:00
emeric ade4946b8c Tried to make the full scan message clearer 2025-04-09 21:31:23 +02:00
emeric 75cbbde598 No need to full rescan when changing some settings 2025-04-07 22:48:10 +02:00