summaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-10-30 14:40:08 -0400
committerAndrew Opalach <andrew@akon.city> 2025-10-30 14:40:08 -0400
commit90da3b27d939b3b7af1cf7fed10dfaaa7e271622 (patch)
treef0cf96c76d5c83470d2c50dd69d2d3e39a503fab /TODO
parent77837d7b63240c069b3351a919a7d2af670f46cd (diff)
downloadcamu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.tar.gz
camu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.tar.bz2
camu-90da3b27d939b3b7af1cf7fed10dfaaa7e271622.zip
Fixes from testing sink change, document things
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'TODO')
-rw-r--r--TODO51
1 files changed, 49 insertions, 2 deletions
diff --git a/TODO b/TODO
index d8d374b..af266a0 100644
--- a/TODO
+++ b/TODO
@@ -30,7 +30,14 @@
- [x] Small list refactor.
- [x] Commit libnaunet changes.
- [x] Consolidate spng, stb_img, and wuffs into one file with server/client ifdefs.
- - [ ] Sink errored buffer fixes.
+ - [x] Commit subproject changes.
+ - [-] Sink errored buffer improvement.
+ - [-] More checks for VIDEO_EMPTY() || VIDEO_ENDED() for better experience.
+ - This was an actual correctness issue.
+ - [x] Checking buffer states needs a lock, check asserts.
+ - [ ] Commit fixes.
+ - [ ] Commit changes.
+ - [ ] Header cleanup.
- [ ] Packet benchmark.
- Create packet, write bunch of ints, send to another thread, thread adds everything.
- [ ] Startup timing information.
@@ -39,6 +46,16 @@
- [ ] RPC header packing.
- [ ] Look for more obvious packet_stream/rpc optimizations.
+== Emscripten Sink
+ - [ ] WebSocket packet_stream.
+ - [ ] Server-side WebSocket and TCP.
+ - nn_multiplex handles WebSocket upgrade.
+ - [ ] Analyze thread-safety requirements of nn_signal usage.
+ - [ ] Sink
+ - [ ] VCR
+ - [ ] Should still be able to rely on miniaudio.
+ - [ ] MOMO should be comptabible with WebGL.
+
=== DMMN
- [ ] List lock.
- [ ] Reconnect/Reseek.
@@ -77,6 +94,9 @@
- [ ] HTTP timeout.
=== Liana
+ - [ ] Invalid connection handling.
+ - [ ] Clearest way to "cut off connection immediately".
+ - [ ] Max packet size (invalid header).
- [ ] Node connection pool.
- [ ] One "connection" object should suffice for retrieving duration, handling stream, and loading visual data for client.
@@ -87,6 +107,7 @@
- [ ] Internalize "packet cache" logic.
=== Codecs
+ - [ ] Negotiate codec with sinks.
- [ ] Better wuffs support.
- [ ] https://snisurset.net/code/abydos
@@ -103,11 +124,11 @@
- https://www.shadertoy.com/view/wtsXRX
=== Renderer
+ - [ ] queue_libplacebo rgb24 upload fails on ANV and Wine(wined3d), at least.
- [ ] vaapi fallback if Vulkan decoding not available.
- [ ] Command queue.
- [ ] Queue creation/deletion.
- [ ] Texture upload.
- - [ ] queue_libplacebo rgb24 upload fails on ANV.
- [ ] MOMO frame queue.
- [ ] Log when scaling flips from required to not and vice versa.
@@ -124,6 +145,14 @@
- [ ] Implement node paradigm.
- [ ] Allow cmv to act as a node.
+=== libalabaster
+ - [x] Thread-safe rand().
+ - [x] AL_THREAD_LOCAL_SRAND
+ - [ ] Scrap trying to use stdlib rand() and copy a prng algorithm from somewhere.
+ - Worrying about predicting the state in libc is actually dumb.
+ - https://prng.di.unimi.it/xoroshiro64starstar.c
+ - https://prng.di.unimi.it/
+
=== libnaunet
- [ ] Native Windows file backend.
- https://learn.microsoft.com/en-us/windows/win32/api/minwinbase/ns-minwinbase-win32_find_dataa
@@ -135,6 +164,10 @@
- [x] Xcursor
- [-] Fix vaapi on x11.
- It's actually Xwayland lacking dma import extension.
+ - [ ] Wayland xkb.
+ - https://wayland-book.com/seat/keyboard.html
+ - https://xkbcommon.org/doc/current/xkbcommon_8h.html#a638bf7a52db06f383ce5a4ef99dfe539
+ - https://github.com/glfw/glfw/blob/8e15281d34a8b9ee9271ccce38177a3d812456f8/src/wl_window.c#L1880
- [ ] Configurable depth and stencil buffer.
- [ ] Consider server-side transcode in terms of the build.
- If video decode specific GPU device wiring is needed, should it be in stela?
@@ -152,6 +185,7 @@
- [ ] Rename mutex variables to lock.
=== Tests
+ - [x] Sporadic buffer errors.
- [ ] Emulate slow packet stream connection.
- ev_set_io_collect_interval() in loop.c.
- [ ] Fast open -> shuffle spam -> disconnect deadlock.
@@ -160,6 +194,16 @@
- [ ] al_array_contains
- [ ] al_array_unsorted_search_by_key
+==== Test cases
+// BUFFER_QUEUED -> BUFFER_INIT in CLIENT_REMOVE_BUFFERS.
+// - Ended audio or video only-entry processes a seek right after being skipped from.
+// - In switch_to(), because it's ended, remove_entry_buffers() is not called on this entry.
+// - During the seek within CLIENT_REMOVE_BUFFERS (this point before this change),
+// we don't touch an empty buffer's state. An empty buffer that was QUEUED stays QUEUED.
+// - CLIENT_RECONNECTED has no effect because the entry is not current.
+// - Now, if this entry is ever switch_to()'d, add_or_queue_entry() will assert
+// because a buffer's state being QUEUED at that point is invalid.
+
=== Build
- [x] Allow forcing ffmpeg-compat.
- 3 levels? latest, 4, 3.
@@ -169,6 +213,7 @@
- [x] Don't require shaderc if libplacebo found.
- [x] Audio optional based on if libpulse/libasound are found.
- [x] libalabaster option for release build with asserts (al_assert only).
+ - [ ] Change git clone depth of subproject wraps based on build configuration.
- [ ] Web build.
=== External
@@ -184,6 +229,8 @@
- [ ] Re-write database using moves for resources.
==== Status
+ - [ ] Generate following list for pixiv and twitter, do twitter one-shots in twitter7/8.
+ - [ ] List all pixiv ids in database, compare against current following list.
- [ ] Merge run/* in some way that respects the file dates.
- [ ] Move original pixiv into proper DB.
- [ ] Verify whether pixiv_app returns updated date or created date.