summaryrefslogtreecommitdiff
path: root/src/cache
diff options
context:
space:
mode:
authorAndrew Opalach <andrew@akon.city> 2025-05-07 16:52:14 -0400
committerAndrew Opalach <andrew@akon.city> 2025-05-07 16:55:39 -0400
commit8f9ddafb128eabe346b48adebdeb1f34da05b005 (patch)
treea50ff8be72277bdfe942c32317805128f424040f /src/cache
parentefbe4b52a22ea3c4458401a7acbce89a5bf29299 (diff)
downloadcamu-8f9ddafb128eabe346b48adebdeb1f34da05b005.tar.gz
camu-8f9ddafb128eabe346b48adebdeb1f34da05b005.tar.bz2
camu-8f9ddafb128eabe346b48adebdeb1f34da05b005.zip
Make server resource a fat entity
Signed-off-by: Andrew Opalach <andrew@akon.city>
Diffstat (limited to 'src/cache')
-rw-r--r--src/cache/entry.h33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/cache/entry.h b/src/cache/entry.h
index c74870d..d6eb86a 100644
--- a/src/cache/entry.h
+++ b/src/cache/entry.h
@@ -18,6 +18,17 @@
- dvd/bluray (drive or iso)
- live source (radio antenna)
+ Chapters:
+ - Potential resources with chapters:
+ - Single wav with cue.
+ - Multiple wav with cue.
+ - Single mp4 with chapters in metadata.
+ - DVD iso image.
+ - DVD/CD drive.
+ - Chapter as seek or node per chapter?
+ - Node per chapter definitely seems to make the most sense. Maybe we could
+ have a "ignore chapters" flag for single containers like mp4.
+
Other considerations:
- Chapter priority (disc drive)
- For now 1 user and 1 list owns the drive totally.
@@ -28,10 +39,32 @@
- Networked backing?
- Is a liana "node handler" necessary?
+ Flow of a resource:
+ - Entry:
+ - Holds the data but as of now doesn't read metadata.
+ - Server:
+ - Informs clients about entry metadata.
+ - Liana node:
+ - Only place currently setup to block for reading duration.
+ - Disc drive resources need to block to read chapters as well.
+ - File open could likely benefit from being non-blocking/threaded.
+ - Fit into server list_callback()? Could be as simple as replacing lia_node_get_duration().
+ - Any catches to moving duration retrival to the cache entry?
+ - Cache objects? (Disc drive)
+ - Handles it's own state on demand.
+ - Re-evaluate list behavior without duration.
+
Cache/liana refactor:
[x] get/set_size() no longer make sense.
[x] // @TODO: Unknown size is unhandled in backings.
- Handle keeps reading but will eventually have a wait cut short after a backing finalize.
+ [ ] Expanding list entry.
+ - How to handle unload?
+ - Disc drive can trigger unload.
+ - Make sure we can skip around in list while an entry load is pending.
+ - Also cancel load requests on unload.
+ - Consider pitfalls in the idea of having a "cd object" in the list that can be unloaded
+ and loaded with different cds.
[ ] Separate cch_handler from cch_entry.
- Move waits to entry?
- Create cache entry with argument like file, cue, http, hls, etc.