User:Andrew Hallendorff

From Audacity Wiki
Revision as of 22:33, 12 November 2014 by Andrew Hallendorff (talk | contribs)
Jump to: navigation, search
Proposal pages help us get from feature requests into actual plans. This is related to both Real Time Adjustment and Threading and Acceleration.
Proposal pages are used on an ongoing basis by the Audacity development team and are open to edits from visitors to the wiki. They are a good way to get community feedback on a proposal.

  • Note: Proposals for Google Summer of Code projects are significantly different in structure, are submitted via Google's web app and may or may not have a corresponding proposal page.

Proposed Feature: Page Tabled Memory and Event Layout

To facilitate the environment that would be conducive to both multi-threading and non-destructive processing.

Developer/QA/Programmer backing

  • Andrew Hallendorff

The Layout

In the abstract this implementation can be thought of as 3 streams of data/instructions.

  • Base Indexes - 32bit integers that store both data and instructions.
  • Data Blocks - Indexed chunks of data of a fixed size. (most likely 512 (32 bit samples) or 1024 (16 bit samples)
  • Events (instructions) - Indexed list of variable size and scope of actors.

Within these page table entries the data could be replaced with negative numbers to index a certain event. The even would preserve the removed page entry while linking to a operation to be preformed upon the stream. The general concept would be a memory model where samples could be directly accessed via a page table rather than a linked list.