diff options
Diffstat (limited to 'os2eindopdracht/readme.md')
-rw-r--r-- | os2eindopdracht/readme.md | 28 |
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) |