Commit graph

142 commits

Author SHA1 Message Date
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