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
9685f3cf51
musikr: fix broken jni build
2025-01-20 11:40:15 -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
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
b6d80189ca
musikr: bubblewrap jvminputstream
...
Should help me ID some error.
2025-01-14 08:53:03 -07:00
Alexander Capehart
8bd89c5967
musikr: ignore genre numbers of 255
2025-01-08 18:27:08 -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
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
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
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
b328a6ea03
musikr: add temp logging
...
To debug metadata issues.
2025-01-06 11:41:01 -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
5e7d575efd
build: fix cpp formatting
2024-12-26 18:53:24 -05:00
Alexander Capehart
518b80bdf2
musikr.metadata: add missing log header
2024-12-23 16:50:54 -05:00
Alexander Capehart
c379174ffe
musikr.metadata: wrap exceptions into log
...
Not ideal, but avoids a total catastrophic crash on failed metadata
extractions.
2024-12-23 16:48:32 -05:00
Alexander Capehart
6652e351cf
musikr.metadata: uppercase internal atoms
2024-12-23 16:46:35 -05:00
Alexander Capehart
6ccae5f0d2
musikr.metadata: fix mp4 parsing
2024-12-23 12:52:33 -05:00
Alexander Capehart
77f97ef656
all: cleanup
2024-12-23 11:04:51 -05:00
Alexander Capehart
44696424a9
musikr: build taglib sequentially w/more threads
...
This is probably better since locality can be leveraged more.
2024-12-23 10:53:44 -05:00
Alexander Capehart
a888d09a2c
musikr: link private libraries
...
This is what the ffmpeg extension does, it probably does something
good.
2024-12-23 10:53:33 -05:00
Alexander Capehart
787a78f845
musikr: shrink end taglib jni size
...
Use some magic linker flags that @Tolriq found over in
https://github.com/taglib/taglib/issues/1212#issuecomment-2326456903
that somehow reduced linked so size by ~2mb.
2024-12-23 10:46:53 -05:00
Alexander Capehart
b6cbf97df9
musikr: rename taglib jni cmake project
2024-12-23 10:05:33 -05:00
Alexander Capehart
6fd0bd411b
musikr: fix broken iostream jni integration
2024-12-23 09:59:23 -05:00
Alexander Capehart
7e8764d6d4
musikr.metadata: dont expose file name
...
Not needed.
2024-12-17 20:03:35 -05:00
Alexander Capehart
03ee8d299d
musikr: dont produce tag maps w/empty values
2024-12-17 16:27:25 -05:00
Alexander Capehart
880967f8be
all: fix formatting
2024-12-16 20:47:17 -05:00
Alexander Capehart
b6f6213ac4
all: reformat
2024-12-16 18:46:54 -05:00
Alexander Capehart
9d1978850b
musikr: update classpaths in native code
2024-12-16 15:20:46 -05:00
Alexander Capehart
ed102d3414
all: format
2024-12-16 13:34:49 -05:00
Alexander Capehart
71667f378d
musikr: merge ktaglib into musikr.metadata
...
No longer makes sense as an independent module.
2024-12-16 13:18:13 -05:00
Alexander Capehart
ae44abc35a
musikr: reduce taglib build parallelism
...
Likely unhealthy to run maximum thread count 4x over
2024-12-16 13:15:47 -05:00
Alexander Capehart
e908d0e102
all: break off musikr
2024-12-16 13:09:08 -05:00