Alexander Capehart
b48bf3729e
musikr: ignore stale folder covers
2025-03-03 15:10:46 -07:00
Alexander Capehart
4fbbbfdc76
app: introduce as-is covers
...
Risks extreme instability since I am no longer in control of format,
but some users just want very high-quality covers.
2025-03-03 13:09:26 -07:00
Alexander Capehart
a7000bc9e5
musikr: introduce folder covers
...
Like cover.png, cover.jpg, etc.
2025-03-03 12:41:30 -07:00
Alexander Capehart
8104985a4e
musikr: refactor devicefiles into tree
2025-03-03 12:14:40 -07:00
Alexander Capehart
fce77ec8a0
all: reformat
2025-03-01 21:43:58 -07:00
Alexander Capehart
a78b213537
musikr: fix build issues
2025-03-01 21:22:21 -07:00
Alexander Capehart
7906867a96
image: implement compat covers backport
...
For cover.jpg users
2025-02-26 16:14:06 -07:00
Alexander Capehart
25901a0f76
musikr: make cover creation more flexible
...
Enables some compat cover changes I need to make.
2025-02-26 14:52:13 -07:00
Alexander Capehart
403f93b6df
musikr: backport breaking uid change
...
v401 UIDs once again drifted because of the broken extensions.
2025-02-25 17:40:06 -07:00
Alexander Capehart
3741f1ff07
musikr: fix build error
2025-02-25 17:33:47 -07:00
Alexander Capehart
b388474655
musikr: reformat
2025-02-25 16:14:41 -07:00
Alexander Capehart
584af83a07
musikr: parallelize all extraction
2025-02-25 16:14:30 -07:00
Alexander Capehart (aider)
0387400a4a
refactor: Simplify ExtractStep with unified parallel processing flow
2025-02-25 16:09:04 -07:00
Alexander Capehart
94f8457d69
musikr: reformat
2025-02-25 16:02:10 -07:00
Alexander Capehart
be270a422b
musikr: fix build issues
2025-02-25 16:02:09 -07:00
Alexander Capehart (aider)
e2b0601d4c
musikr: add option to ignore hidden files/directories
2025-02-25 15:44:37 -07:00
Alexander Capehart
ddeba2c496
musikr: correctly strip extensions from files
...
Otherwise I can mangle filenames that are just dots.
2025-02-25 09:11:27 -07:00
Alexander Capehart
98299722bc
musikr: add back mbids to backported uids
2025-02-24 09:41:49 -07:00
Alexander Capehart
50e2dde6e2
musikr: remove pipeline logs
2025-02-24 07:54:12 -07:00
Alexander Capehart
582b0c6eef
musikr: fix uid compat issues
2025-02-24 07:53:20 -07:00
Alexander Capehart
3834e92192
musikr: add backwards compat for v4 uids
...
This annoying hack should be temporary once I can build a new UID
system and migrate everything over.
2025-02-24 07:02:03 -07:00
Alexander Capehart
117678a066
musikr: fix metadata drift
...
Largely a temporary compat measure to avoid playlist destruction, will
retire UIDs for a new system soon which should give me the ability to
rethink the spec.
2025-02-22 22:37:09 -07:00
Alexander Capehart
b306456d46
musikr: fix hang on metadata extraction
...
When files read all the way to EOF.
2025-02-22 21:03:44 -07:00
Alexander Capehart
251197b47b
musikr: accidental logging
...
Including this for posterity with the actual release build
2025-02-21 15:05:13 -07:00
Alexander Capehart
3d374504e2
musikr: strip down taglib
...
Only to supported ExoPlayer formats.
2025-02-21 12:56:38 -07:00
Alexander Capehart
a7969f99c3
build: bump taglib
2025-02-21 12:34:35 -07:00
Alexander Capehart
357c7cc329
musikr: reformat
2025-02-21 09:34:37 -07:00
Alexander Capehart
e442fcf253
musikr: fix use-after-free in jni
2025-02-21 09:30:37 -07:00
Alexander Capehart
a1d62c2a08
musikr: fix dupliate artist vertices when melding
2025-02-10 15:07:26 -07:00
Alexander Capehart
1459498ff3
musikr.metadata: handle case w/no mp4 covers
...
Otherwise could have triggered an exception.
2025-02-06 14:54:43 -07:00
Alexander Capehart
72ffac4209
musikr: reformat
2025-01-31 13:45:18 -07:00
Alexander Capehart
ee7e63d1dc
musikr: stop possible use-after-free in metabuild
2025-01-31 13:41:23 -07:00
Alexander Capehart
2e4b6681d1
build: bump to v4.0.0-dev5
2025-01-30 12:50:10 -07:00
Alexander Capehart
a0c82ac812
musikr: reformat
2025-01-30 09:38:38 -07:00
Alexander Capehart
e78fde44e0
Revert "musikr: use channel-based pipeline"
...
This reverts commit 7c8863bd3a
.
2025-01-30 09:30:38 -07:00
Alexander Capehart
7880c777ba
musikr: fix inputstream memory leak
...
Apparently allocating the bytes on the JVM side of the taglib parser
will wind up leaking memory due to a bugged cache in ByteBuffer.
Instead, allocate the bytes in native, wrap it into a ByteBuffer, and
then pass it upwards into NativeInputStream. This seems to fix the
leak.
2025-01-30 09:29:26 -07:00
Alexander Capehart
7c8863bd3a
musikr: use channel-based pipeline
...
Much more repeated code, but no more memory leaks.
2025-01-29 15:31:48 -07:00
Alexander Capehart
97bd259728
musikr: handle duplicate playlist songs in graph
...
Accidentally flattened these out during graphing.
2025-01-22 12:57:11 -07:00
Alexander Capehart
9685f3cf51
musikr: fix broken jni build
2025-01-20 11:40:15 -07:00
Alexander Capehart
9d22cc37b8
musikr: report invalid songs in pipeline
...
Avoids the bar getting "stuck"
2025-01-20 11:39:47 -07:00
Alexander Capehart
d49286981c
musikr: improve native error handling
...
Not an ideal error reporting system, but for the purposes of getting
4.0.0 out as fast as possible it will do.
2025-01-20 11:26:41 -07:00
Alexander Capehart
0785711cd6
musikr.tag: handle slash positions in xiph
...
Resolves #965 .
2025-01-18 20:32:28 -07:00
Alexander Capehart
a0e10ef8dd
musikr: implement raii jni classes
...
This should hopefully mitigate the memory leak problems unless I forget
to transfer over ref ownership to the corresponding class. Analyzed
memory use on load and it looks like the JVM is able to reclaim
everything extracted by the native code, so I should hopefully be fine.
2025-01-18 19:52:05 -07:00
Alexander Capehart
1bf44eba91
musikr: fix memory leaks
2025-01-18 17:21:14 -07:00
Alexander Capehart
3aae8ea534
musikr: bubblewrap nativeinputstream
...
Try to avoid exceptions cascading and bringing down the app.
2025-01-18 09:58:05 -07:00
Alexander Capehart
4d704e86a6
Revert "musikr: bubblewrap jvminputstream"
...
This reverts commit b6d80189ca
.
2025-01-15 11:44:29 -07:00
Alexander Capehart
c9d4b01f9f
musikr: initial root documentation
2025-01-14 08:55:44 -07:00
Alexander Capehart
b6d80189ca
musikr: bubblewrap jvminputstream
...
Should help me ID some error.
2025-01-14 08:53:03 -07:00
Alexander Capehart
71aa887438
musikr.cache: bump version
2025-01-13 19:35:03 -07:00
Alexander Capehart
e6b326a571
musikr: clarify album added timestamp api
...
Same reasons, should be milliseconds
2025-01-09 19:31:48 -07:00
Alexander Capehart
ae6a0438be
musikr: clarify added/modified timestamp apis
...
Clearly indicate their new millisecond nature.
2025-01-09 19:30:32 -07:00
Alexander Capehart
8bd89c5967
musikr: ignore genre numbers of 255
2025-01-08 18:27:08 -07:00
Alexander Capehart
9b82b5aee0
build: bump to 4.0.0-dev3
2025-01-08 18:19:37 -07:00
Alexander Capehart
e0059e9dc0
musikr: reformat
2025-01-08 17:19:02 -07:00
Alexander Capehart
3d690eb637
musikr: fix graphing error w/certain link steps
...
I wasn't correctly linking genres, which would cascade to a dead vertex
down the line.
Will need better diagnostics here.
2025-01-08 17:17:05 -07:00
Alexander Capehart
0e34a28dfb
musikr: fix stream seeking
...
Foolishly changed offset sign in seek from end.
2025-01-08 15:49:49 -07:00
Alexander Capehart
8c3750778f
musikr: add id3v1 support
...
Forgot to go ahead and implement this.
2025-01-08 15:06:25 -07:00
Alexander Capehart
802e215482
musikr: remove extractstep debug logging
...
Not needed right now
2025-01-08 15:05:50 -07:00
Alexander Capehart
8c4b8dfb56
musikr: improve dead vertex error reporting
2025-01-08 12:53:04 -07:00
Alexander Capehart
58e0956cad
musikr: dont stop parsing mp4 atoms
...
I cannot believe I have made this mistake twice.
2025-01-08 11:31:52 -07:00
Alexander Capehart
e94b74edd4
musikr: do custom picture handling
...
TagLib's picture handling is inadequate for our use case.
2025-01-08 11:15:56 -07:00
Alexander Capehart
b3f4fdfb4a
build: bump version
...
Bump to version 4.0.0-dev2.
2025-01-08 10:37:03 -07:00
Alexander Capehart
e519e8f8be
musikr: handle null tags
2025-01-07 19:34:30 -07:00
Alexander Capehart
ed3e0845d6
musikr: more debug logging
...
Trying to track down this thorny segfault.
2025-01-07 18:31:59 -07:00
Alexander Capehart
7b9c14a118
musikr: add temp logging
2025-01-07 13:05:32 -07:00
Alexander Capehart
605800e9a5
musikr: handle possible null pointers in id3v2
2025-01-07 10:02:28 -07:00
Alexander Capehart
2b46774215
musikr: fix internal frame parsing
2025-01-06 14:12:24 -07:00
Alexander Capehart
1d84ba23b4
build: update submodules
2025-01-06 13:54:22 -07:00
Alexander Capehart
fdf71cedd2
musikr: fix formatting
2025-01-06 13:17:27 -07:00
Alexander Capehart
5e168860e7
musikr: bundle cleanup into api
...
Prevents as much footguns.
2025-01-06 13:16:31 -07:00
Alexander Capehart
b328a6ea03
musikr: add temp logging
...
To debug metadata issues.
2025-01-06 11:41:01 -07:00
Alexander Capehart
bbc4db156e
musikr: fix equality issues
2025-01-06 11:23:55 -07:00
Alexander Capehart
9952579cc4
musikr.tag: fix correction creating empty tag lists
2025-01-06 08:28:56 -07:00
Alexander Capehart
6be97943bc
musikr: fix broken minification
2025-01-06 08:15:28 -07:00
Alexander Capehart
9fe508a906
all: fix formatting
2025-01-04 17:51:40 -07:00
Alexander Capehart
710e279d8f
musikr: tweak api
2025-01-04 17:43:09 -07:00
Alexander Capehart
32b152e155
musikr: reformat
2025-01-04 15:57:03 -07:00
Alexander Capehart
a4d7b54db7
musikr: add back tag whitespace fixes
...
Requires me to rejig the JNI integration, but it's overall good since
it allows me to strip away a lot of the logic.
2025-01-04 15:56:19 -07:00
Alexander Capehart
fddd527975
musikr.tag: handle compilation flag
2025-01-04 13:42:28 -07:00
Alexander Capehart
b0faad6380
build: bump to version 4.0.0-beta1
2025-01-04 12:14:37 -07:00
Alexander Capehart
0c7adc9d17
Update README.md
2025-01-03 15:37:32 -07:00
Alexander Capehart
c3ccb8519e
musikr: add empty library check
2025-01-01 16:10:34 -07:00
Alexander Capehart
a2e6bcbb7f
musikr: separate immutable/mutable subclasses
...
This makes it easier for me to centralize certain DI.
2025-01-01 14:37:01 -07:00
Alexander Capehart
62e214039f
all: reformat
2025-01-01 13:59:40 -07:00
Alexander Capehart
75455b1b90
musikr: make cover files more concrete
...
This should allow me to implement a solid ContentProvider.
2025-01-01 13:58:52 -07:00
Alexander Capehart
04e81916f7
all: fix formatting
2025-01-01 13:14:06 -07:00
Alexander Capehart
68098b97ed
music: move automatic reloading to musikr
2025-01-01 13:08:53 -07:00
Alexander Capehart
7497ff2514
musikr: fix crash when no mbids used
2024-12-28 15:11:28 -07:00
Alexander Capehart
d964df4616
musikr: fix broken cover cleanup
2024-12-27 15:49:26 -05:00
Alexander Capehart
b05d668b5e
musikr: close cover output streams
2024-12-27 15:39:31 -05:00
Alexander Capehart
292ea9d8a1
musikr: fix broken siloed covers
...
Caused by a missing param equality.
2024-12-27 15:38:49 -05:00
Alexander Capehart
ebcedb49eb
musikr: fix broken cache pruning
2024-12-27 15:38:23 -05:00
Alexander Capehart
8b3d7cae9c
musikr: handle missing covers on recaching
...
Now that we have effectively two caches (The main cache and the covers),
we have to handle the case where we have cached data, but the cover data
is missing. This is a real-world edge case once album covers are made
configurable as they were previously.
2024-12-27 15:11:09 -05:00
Alexander Capehart
32156f23b2
music: introduce siloed covers
...
Will allow me to dynamically configure cover quality by user settings.
2024-12-27 10:38:38 -05:00
Alexander Capehart
8b58f357cb
musikr: introduce cover cleanup
...
Helps reduce overall memory use.
2024-12-27 10:06:04 -05:00
Alexander Capehart
0dc72b67af
musikr: introduce cover params
2024-12-26 20:26:04 -05:00
Alexander Capehart
80c97cbea1
musikr: separate cover files/format
2024-12-26 19:54:31 -05:00
Alexander Capehart
b8178056f5
musikr: simplify cover storage boundaries
2024-12-26 19:23:48 -05:00
Alexander Capehart
5e7d575efd
build: fix cpp formatting
2024-12-26 18:53:24 -05:00
Alexander Capehart
75612dd1eb
all: cleanup
2024-12-26 14:04:15 -05:00