From b41b7acf80ad6d49cfde49ae562aaf85ba4f8768 Mon Sep 17 00:00:00 2001 From: Andrew Opalach Date: Wed, 20 Nov 2024 09:57:49 -0500 Subject: Initial hardware config, refactor flake doc -> docs Signed-off-by: Andrew Opalach --- doc/design.dia | 1076 --------------------------- doc/design.txt | 57 -- doc/design_diagram.svg | 508 ------------- doc/network_independent_audio_pause.kra | Bin 1332660 -> 0 bytes doc/network_independent_audio_pause.png | Bin 148138 -> 0 bytes doc/references/pal_vs_ntsc_aspect_ratio.png | Bin 72101 -> 0 bytes doc/references/references.txt | 68 -- doc/style.css | 13 - 8 files changed, 1722 deletions(-) delete mode 100644 doc/design.dia delete mode 100644 doc/design.txt delete mode 100644 doc/design_diagram.svg delete mode 100644 doc/network_independent_audio_pause.kra delete mode 100644 doc/network_independent_audio_pause.png delete mode 100644 doc/references/pal_vs_ntsc_aspect_ratio.png delete mode 100644 doc/references/references.txt delete mode 100644 doc/style.css (limited to 'doc') diff --git a/doc/design.dia b/doc/design.dia deleted file mode 100644 index e78aeca..0000000 --- a/doc/design.dia +++ /dev/null @@ -1,1076 +0,0 @@ - - - - - - - - - - - - - #A4# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Client (libclient)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Sink (libsink)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Server# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Node# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Remote Resource# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #Synced Stream (liana)# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #System Interface# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ## - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #The Internet# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #You# - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/doc/design.txt b/doc/design.txt deleted file mode 100644 index ef98961..0000000 --- a/doc/design.txt +++ /dev/null @@ -1,57 +0,0 @@ -:stylesheet: style.css - -= CAMU - Self-Hosted Media Streamer/Organizer/Archiver - -image::design_diagram.svg[Diagram,820] - -Breif on Components -------------------- -Server -~~~~~~ -The server is the main hub responsible for all handling user account related functions and state, as well as managing the network of all other individual components. - -User Accounts -^^^^^^^^^^^^^ -Users accounts contain 4 main concepts: lists, media lists, history, and settings. - -* *Lists*: Transient lists of media connected to a user-selected set of sinks. Resources retrived via browse/search instances get added to a list for playback. A list's active sinks can be changed on the fly. - -* *Media Lists*: A more organized way to collect related media. They are stored to the user's account and therefore saved to the disk. - -* *History*: A detailed history that tracks what a user played and when. Also saved to a user's account. - -* *Settings*: Various per-user settings. For example, tag blacklist, start/stop times per resource, skip settings per collection (album tracks). - -Node -~~~~ -Nodes can be seen as distributed resource managers for the server. They each contain up to 3 main parts: A source manager and/or database, then a resource host. A node can have one or both of a source manager and database but a node without either is useless. - -Source Manager -^^^^^^^^^^^^^^ -A source manager implements any or all of browsing, searching, and custom resource actions. A big point of a source manager is to be able to work entirely behind a proxy. Some examples of sources may include a social media website, filesystem directory, dvd drive, or radio antenna. An example of browsing could be apple music's "New Music". An example of searching, youtube search. A custom action could be liking a post on twitter. - -Database -^^^^^^^^ -Stores resources along with as much metadata as possible. Simply used to retrive resources locally instead of going through the source manager. - -Resource Host -^^^^^^^^^^^^^ -Hosts node-local resources for the server to use for streaming. Should support anything a source manager can give it. - -Client -~~~~~~ -Clients are the only way a user interacts with the rest of the network besides the special case of play, pause, skip and seek which can be done from a sink. - -libclient -^^^^^^^^^ -C library that integrates with the rest of the code-base to abstract communicating with the server as a client. - -Sink -~~~~ -A sink's only purpose is to be a minimal, yet optimal, way to view the entries in a list. - -libsink -^^^^^^^ -C library that abstracts communicating with the server as a sink in a platform- and environment-independent way. - -// vim: set syntax=asciidoc: diff --git a/doc/design_diagram.svg b/doc/design_diagram.svg deleted file mode 100644 index 693b086..0000000 --- a/doc/design_diagram.svg +++ /dev/null @@ -1,508 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Client (libclient) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Sink (libsink) - - - Server - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Node - - - - - - - - - - - - - - - - - Remote Resource - - - Synced Stream (liana) - - - - - - System Interface - - - - - - The Internet - - - You - - - diff --git a/doc/network_independent_audio_pause.kra b/doc/network_independent_audio_pause.kra deleted file mode 100644 index 91b391e..0000000 Binary files a/doc/network_independent_audio_pause.kra and /dev/null differ diff --git a/doc/network_independent_audio_pause.png b/doc/network_independent_audio_pause.png deleted file mode 100644 index 8e696e2..0000000 Binary files a/doc/network_independent_audio_pause.png and /dev/null differ diff --git a/doc/references/pal_vs_ntsc_aspect_ratio.png b/doc/references/pal_vs_ntsc_aspect_ratio.png deleted file mode 100644 index e570f70..0000000 Binary files a/doc/references/pal_vs_ntsc_aspect_ratio.png and /dev/null differ diff --git a/doc/references/references.txt b/doc/references/references.txt deleted file mode 100644 index 2ce8329..0000000 --- a/doc/references/references.txt +++ /dev/null @@ -1,68 +0,0 @@ -:stylesheet: ../style.css - -= References - -Video ------ -Vsync/VRR -~~~~~~~~~ -* https://github.com/swaywm/sway/issues/5076 -* https://en.wikipedia.org/wiki/Motion_interpolation -* https://gamedev.stackexchange.com/questions/82318/what-problem-does-double-or-triple-buffering-solve-in-modern-games - - Good explanation of vsync and multiple buffering -* https://linustechtips.com/topic/1508075-no-vsync-with-no-screen-tearing-possible/?do=findComment&comment=15948456 -* https://forums.tomshardware.com/threads/games-screen-tearing-without-vsync.3272775/post-20062033 -* Current understanding of vsync and tearing: - - Vsync operates on an interupt. - - You cannot avoid tearing without vsync. - - VRR is completely ineffective outside of the display's supported range. - - A higher fps and refresh rate while tearing will be less noticable. -* https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/14/ -* https://blurbusters.com/gsync/gsync101-input-lag-tests-and-settings/15/ -* https://old.reddit.com/r/Amd/comments/4ypw5k/freesync_is_so_fcking_awesome/d6zl13v/ - -Latency/Present -~~~~~~~~~~~~~~~ -* https://themaister.net/blog/2023/11/12/my-scuffed-game-streaming-adventure-pyrofling/ - -Old Video Standards -~~~~~~~~~~~~~~~~~~~ -* https://en.wikipedia.org/wiki/24p -* https://en.wikipedia.org/wiki/Three-two_pull_down -* https://cinematography.com/index.php?/forums/topic/71346-why-23976-and-not-24-fps/&tab=comments#comment-455454 -* https://forum.doom9.org/archive/index.php/t-163655.html -* https://en.wikipedia.org/wiki/pixel_aspect_ratio -* https://en.wikipedia.org/wiki/display_aspect_ratio - - PAL and NTSC are both supposed to be displayed on 4:3 physical aspect ratio screens even though they are internally different aspect ratios and resolutions. The difference is the size of the "pixel" (PAL has more, shorter scanlines). - image:pal_vs_ntsc_aspect_ratio.png[PalVsNtsc,1100] -* https://en.wikipedia.org/wiki/Anamorphic_widescreen - -Audio ------ -Formats -~~~~~~~ -* https://github.com/derselbst/ANMP -* https://slack.net/~ant/libs/audio.html#Game_Music_Emu - -Drivers -~~~~~~~ -* https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/spa/plugins/alsa/test-timer.c -* https://stackoverflow.com/questions/41263580/what-exactly-does-alsas-snd-pcm-delay-return -* https://stackoverflow.com/questions/24040672/the-meaning-of-period-in-alsa - -Latency -^^^^^^^ -* https://blog.nirbheek.in/2018/04/a-simple-method-of-measuring-audio.html?m=1 - -User Interface --------------- -Terminal -~~~~~~~~ -* https://www.amp-what.com/ -* https://www.unicode.org/charts/beta/nameslist/n_2B00.html - -Python ------- -* https://stackoverflow.com/questions/38243682/whats-the-standard-way-to-package-a-python-project-with-dependencies - -// vim: set syntax=asciidoc: diff --git a/doc/style.css b/doc/style.css deleted file mode 100644 index f99c06c..0000000 --- a/doc/style.css +++ /dev/null @@ -1,13 +0,0 @@ -body { - font-family: serif; - margin: 1em 35% 1em 5%; - background-color: #fef9fa; -} - -h3 { - text-decoration: underline; -} - -strong { - color: #423152; -} -- cgit v1.2.3-101-g0448