Skip to content

Roadmap towards 2.x #33

@mewmew

Description

@mewmew

Version 1.x

Before move to github.com/ljud. (see #19)

Version 2.x

After move to github.com/ljud. (see #19)

  • Split flac package into low-level (back-end) and high-level (front-end) packages.
    • The low-level package will handle encoding and decoding on the bit-level, not hiding any FLAC details in the API. The low-level package is intended for users who require full control of FLAC streams, e.g. those who want to write highly optimizing FLAC encoders.
    • The high-level package is intended for end-users and will provide convenient API for accessing audio samples, along with seek support with time.Duration and sample number offsets.
  • Make Header and SubHeader of frame.Frame and frame.Subframe pointers instead of values?
  • Rename frame.SubHeader.Wasted to WastedBits?
  • Check if we could add a Decoder analogous to Encoder, and remove unexported readers from flac.Stream, frame.Frame and frame.Subframe.
  • Take the opportunity to reduce repository size? Currently it's at 13 MB.
  • Investigate how to update the API to avoid having to duplicating the slice of audio samples for different use cases (ref High bitrate, small devices  #34). E.g. playing sound needs samples to be zipped from each channel. Interacting with zc sound.Source requires samples from each channel to be placed after each other; e.g. n samples of the first channel in samples[0:n] and n samples of the second channel in samples[n:2*n].
    • The subframe API should probably be updated to accept a slice to read into, rather than allocating it's own slice. Exactly how to do this while catering towards both zipped and unzipped data is not yet determined.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions