Commit Graph
90 Commits
Author SHA1 Message Date
emeric af018a9166 Replaced UUID storage from str to array of bytes 2026-06-13 16:54:21 +02:00
emeric f8aa2ed17d Added last.fm support to scrobble data, fixes #138 2026-06-09 22:56:59 +02:00
emeric 709a1509b6 Use local time, if available, in the web interface, fixes #427 2026-06-07 17:37:38 +02:00
emeric 44c11e85ff Made .lmsignore more like .gitignore, fixes #486 2026-06-02 16:24:01 +02:00
emeric 8c72fb7b5a Fixed MP3 long desc string, fixes #843 2026-06-02 09:10:51 +02:00
emeric eb7f65878f Restored recommendations based on acoustic similarities (using musicnn), fixes #301 2026-06-02 08:32:43 +02:00
emeric 3d5e2d3563 Removed useless filesystem cmake script 2026-03-02 22:29:22 +01:00
emeric 3963969cec First working jukebox using Subsonic API 2026-02-17 23:16:52 +01:00
emeric d45ccb8c2c Fixed mime types 2026-01-04 16:15:27 +01:00
emeric ae92f5c156 Various build fixes, ref #802 2026-01-04 00:07:43 +01:00
emeric 6d27f18f19 Minor cleanup on audio codecs 2025-12-07 22:40:45 +01:00
emeric 66e4f9ef92 Minor cleanup 2025-12-06 23:44:57 +01:00
emeric bbde689a16 Added size() method 2025-12-06 22:24:30 +01:00
emeric 7feecb2027 Implement the new OpenSubsonic API transcoding extension fixes #787 2025-12-03 20:53:11 +01:00
emeric 954b873f2b Fixed various warnings 2025-12-02 23:05:09 +01:00
emeric d834f34683 Factorized some container/codec handling code + removed the no longer needed transcode output formats mka and webm 2025-11-30 18:48:04 +01:00
emeric 162d910904 Updated test 2025-11-16 20:56:55 +01:00
emeric bea5b5b236 Added mime type for TrueAudio 2025-11-03 13:29:39 +01:00
emeric b25e3b9b1e Scan for audio properties, metadata, and embedded images in one single pass. Removed now useless lmsmetadata library + reworked code accordingly 2025-11-02 16:23:10 +01:00
emeric 3f5eb27a35 Removed outdated boost system library dependency 2025-11-02 11:54:08 +01:00
emeric 53391e37e8 Updated clang format, and restored dsd file handling that was actually broken 2025-09-21 17:27:07 +02:00
emeric c65b7b3e0b replaced boost by manual xml writing, to improve serialization perfs 2025-09-19 00:34:37 +02:00
emeric 95bc649fc1 Fixed assert/potential bug when aborting podcast sync while being throttled 2025-09-14 13:20:43 +02:00
emeric fc70483791 Removed obsolete func 2025-09-13 15:18:32 +02:00
emeric 932e7715f5 Added podcast support, only from subsonic API for now, ref #726 2025-09-13 15:04:13 +02:00
emeric 317a6f504e Reworked log system: now logs are handled by lms itself (better control on what is logged), ref #725 2025-08-09 12:49:24 +02:00
emeric 934cb96164 First iteration on adding version in the UI, ref #428 2025-08-06 22:37:27 +02:00
emeric 9ae425a800 Updated readme + sanitize subtitle file names before matching, ref #699 2025-08-04 22:35:26 +02:00
emeric 97866d6143 Moved scanner specific code from core 2025-07-19 11:39:57 +02:00
emeric 08ac5f0b10 Added a macro to log with a condition 2025-07-17 20:52:06 +02:00
emeric 1800aaf32e Explore files in the filesystem with a single stat for each file 2025-07-07 23:07:51 +02:00
emeric 49afdb3db6 Removed useless stat call 2025-07-07 13:44:50 +02:00
emeric 427f777c44 Added missing pragmas 2025-07-02 23:34:54 +02:00
emeric 376316da14 Moved code to scan files in parallel at upper level to ease reuse 2025-07-02 21:18:04 +02:00
emeric 0e028fd116 Fixed multi platform builds 2025-06-22 18:51:36 +02:00
emeric ed14fa6bc2 Fixed multi platform builds 2025-06-22 17:37:01 +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
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 dc52ea4ea5 Introduced new transcoding service 2025-05-30 23:27:01 +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 a5b130305e Append Z to iso8601 date time strings 2025-04-11 18:02:58 +02:00
emeric faabb7ec4a Added an option to merge artists without MBIDs to those with one, fixes #642 2025-04-04 18:30:14 +02:00
emeric 05000d8a1a Deduplicate embedded images, ref #628 2025-03-15 14:48:37 +01:00
emeric 744abefc8b Added xxhash dependency 2025-03-09 15:11:41 +01:00
emeric 923c632878 Setting the size of the ipc pipe buffers is not mandatory, ref #614 2025-02-16 13:16:06 +01:00
emeric 6494d17f99 Use boost asio executor_work_guard to fix build 2025-02-10 17:09:52 +01:00
emeric c9fb398196 Use boost asio post to fix build 2025-02-10 16:54:25 +01:00