What Is Reggae Framework?
Reggae is the MorphOS ↑ framework for processing media. Reggae provides a set of classes (BOOPSI classes to be exact). Applications create sets of objects of those classes and connects them to form media processing structures. Reggae can be used to fetch, decode, process, play, encode and store media in different formats. Features
- Automation of typical tasks – Reggae provides automatic generators of objects for typical tasks like decoding media object or writing media in user selected format.
- Flexibility and extensibility – There are no rigid rules how Reggae media processing structure is built. Reggae API is designed in a way that applications may automatically use new classes without any modifications or need of recompilation.
- Modularity and low memory footprint – Reggae classes are shared system libraries, loaded and expunged on demand. Media are processed in small blocks, limiting memory usage and making efficient use of processor caches.
- Multithreaded design – media processing can be easily delegated to a subprocess, offloading the main application.
- AltiVec acceleration – many classes use AltiVec SIMD unit to accelerate media processing.
- Metadata support – metadata from many media formats are gathered automatically and presented to application in an uniform way. Non-textual metadata (images for example) are supported too.
Reggae vs Datatypes
Reggae replaces older media framework, Datatypes, coming from AmigaOS 3.0. Compared to Datatypes, Reggae has following advantages: - Data stream abstraction. Datatypes initially supported only files as media sources. Later versions had limited support for memory and clipboard. Reggae moves it to a new level, as data streams are separate classes, new streams may be added in the future. For example Reggae features http.stream, a compact HTTP/1.1 client, which allows for streaming media from network directly.
- Decoder and encoder separation. In many usage patterns encoder is not needed, and as it is usually larger than decoder, separating it saves memory.
- Concept of filters. Reggae not only decodes and encodes media. It can also process them with filter objects.
- Streaming. Unlike Datatypes, Reggae does not decode the whole media object to memory. Very large (or unlimited) media streams may be processed with low memory footprint.
Placement of Reggae Classes
All Reggae classes are shared MorphOS libraries, every class is stored as a separate file. It allows for loading only really needed classes to memory. Standard Reggae classes are stored in MOSSYS:Classes/Multimedia/ directory. Additional, third party extension classes may be placed by user in SYS:Classes/Multimedia/.