Alexander Capehart
0f3bed413d
musikr: improve lifecycles
2025-02-15 13:04:50 -07:00
Alexander Capehart
f5de03dfee
musikr: refined flac pic support
2025-02-15 12:02:32 -07:00
Alexander Capehart
3dfcf0f67a
musikr: initial flac pic support
...
Probably broken
2025-02-14 23:24:22 -07:00
Alexander Capehart
61069bd4fe
musikr: redo bridge api
...
Try to introduce some level of standardization in use.
2025-02-14 22:20:48 -07:00
Alexander Capehart
03d8f70ecd
musikr: get rid of warnings
2025-02-14 21:15:32 -07:00
Alexander Capehart
7906fcf5af
musikr: improve iostream lifecycle mgmt
2025-02-14 21:05:54 -07:00
Alexander Capehart
249915c3be
musikr: fix iostream pinning
2025-02-14 15:14:14 -07:00
Alexander Capehart
74edd1dbdf
musikr: fix rustiostream ownership problem
...
Sadly this requires me to more or less give an &mut off to TagLib to
own while also owning the core type to drop later, but since stream
is only owned to be dropped it's fine.
2025-02-14 14:26:25 -07:00
Alexander Capehart
3ecdbf289b
musikr: reorganize ffi module
...
Still don't fully like the segregation, but now at least the bridge
unsafety is fully isolated.
2025-02-12 22:45:56 -07:00
Alexander Capehart
86b04eaead
musikr: add flac file
2025-02-12 21:40:48 -07:00
Alexander Capehart
42dfe4edcc
musikr: reformat
2025-02-12 19:15:01 -07:00
Alexander Capehart
f3f349847a
Revert "musikr: use no_std in crate"
...
This reverts commit 7f84349f2e
.
2025-02-12 19:14:25 -07:00
Alexander Capehart
520e52b100
musikr: improve taglib buildscript
2025-02-12 19:11:31 -07:00
Alexander Capehart
854164a523
musikr: eliminate need for libc++_shared
2025-02-12 17:44:50 -07:00
Alexander Capehart
7f84349f2e
musikr: use no_std in crate
...
Doesn't really help since jni uses std excessively.
2025-02-10 13:02:02 -07:00
Alexander Capehart
c115e34aac
musikr: reformat shim
2025-02-10 11:21:49 -07:00
Alexander Capehart
20785300bb
musikr: partially clean up ffi mod
2025-02-10 10:48:49 -07:00
Alexander Capehart
5c4d0ab5f6
musikr: remove taglib build shell script
2025-02-08 21:46:46 -07:00
Alexander Capehart
289582964c
musikr: start putting unsafe stuff into ffi mod
...
Aiming for like 3 layers of abstraction:
Layer 1: Top-level taglib-esque API translated to jni
Layer 2: Slightly extended unsafe wrappers over bindings
Level 3: Raw taglib bindings and shims
2025-02-08 21:42:39 -07:00
Alexander Capehart
3aa39a7065
musikr: basic vorbis support
2025-02-08 19:52:10 -07:00
Alexander Capehart
013f25f46f
musikr: more fine-grained file handling
2025-02-08 17:45:20 -07:00
Alexander Capehart
acee4ddedd
musikr: minimize ffi shims
2025-02-08 17:03:47 -07:00
Alexander Capehart
cf597cb98e
msuikr: split up shims
2025-02-08 16:16:03 -07:00
Alexander Capehart
cd102369a0
musikr: ignore .vscode
2025-02-08 16:15:43 -07:00
Alexander Capehart
16fc14a4da
musikr: add format-specific file api
2025-02-08 15:27:17 -07:00
Alexander Capehart
005898d776
musikr: add audioproperties to metajni interface
2025-02-08 15:08:38 -07:00
Alexander Capehart
2ee9556564
musikr: integrate metadatajni into app
...
Just extracts title rn while I still work on the ffi.
2025-02-08 11:56:28 -07:00
Alexander Capehart
729a3c3273
musikr: basic taglib rust shim
2025-02-08 10:15:36 -07:00
Alexander Capehart
534f06d7e1
musikr: link to library
2025-02-06 14:46:29 -07:00
Alexander Capehart
ed0abb661c
musikr: implement taglib build step for rust module
2025-02-04 17:02:59 -07:00
Alexander Capehart
6216e1d591
musikr: move taglib to new rust module
2025-02-04 16:20:48 -07:00
Alexander Capehart
d6cf484d61
musikr: init rust metadata jni library
2025-02-04 16:15:17 -07:00
Alexander Capehart
df68768842
musikr.metadata: handle case w/no mp4 covers
...
Otherwise could have triggered an exception.
2025-01-31 14:41:44 -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
f9109b8a9c
musikr.build: enable symbols in taglibjni w/debug
2025-01-31 11:09:35 -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
c881a1c5b4
build: bump coroutines to 1.10.1
...
Fixes some more coroutine memory leaks.
2025-01-30 09:37:30 -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
e3e19fb0ac
playback: avoid huge allocation on printing cmd
2025-01-21 13:18:23 -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