summaryrefslogtreecommitdiff
path: root/os2eindopdracht/readme.md
diff options
context:
space:
mode:
Diffstat (limited to 'os2eindopdracht/readme.md')
-rw-r--r--os2eindopdracht/readme.md28
1 files changed, 28 insertions, 0 deletions
diff --git a/os2eindopdracht/readme.md b/os2eindopdracht/readme.md
new file mode 100644
index 0000000..c0c5dbf
--- /dev/null
+++ b/os2eindopdracht/readme.md
@@ -0,0 +1,28 @@
+# eindopdracht 2 (equalizer)
+
+- main thread (dirigent)
+ - lezen bestand
+ - opsplitsen + labelen van blocks (sequentieel id's toewijzen)
+ - worker thread voor elk block filteren maken
+- worker thread
+ - filter blok (leest uit een altijd globaal leesbare pool (queue?))
+ - geef blok terug aan dirigent door queue
+ - stop zelf
+- threads worden aangemaakt zolang er nog niet omgezette blokken zijn in de
+ todo-lijst
+- er mogen maximaal een vooraf gedefinieerd aantal worker threads zijn (-p optie)
+- threads stoppen als ze klaar zijn met werken, dus 'slapen' nooit. de main
+ thread maakt gebruik van condition variables om te slapen.
+- per blok wordt na de hand door de dirigent de rand-samples naar elkaar
+ toegeschoven om klikken tegen te gaan
+- de dirigent stopt alle blokken weer in volgorde terug in het uitvoer bestand
+- tussenklasse maken die een serie samples representeert om uit te bereiden
+ naar wav als daar nog tijd voor is (anders gewoon ffmpeg scripts)
+
+## klasses
+
+- SampleStream (collectie van SampleBlock met mogelijkheid om op te breken in blocks en weer samen te voegen)
+- SampleBlock (blok van $n$ samples, kunnen geoffset worden en gedumpt worden voor schrijven naar SampleStream)
+- FilterWorker (filtert de inhoud van een SampleBlock)
+- \<main\>
+- Arguments (command-line opties lezen en toeganklijk maken)