-
Notifications
You must be signed in to change notification settings - Fork 2
Gmerlin audio video library
License
bplaum/gavl
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
This is gavl, a common support library for other packages of the gmerlin project. It is developed in Linux (PC and Raspberry Pi 4). Porting it to non-Linux platforms might cause major headaches. Since it's a one-man project, I gave up on not using the great Linux/glibc/gcc features only because other OSes (which I never use) don't have them. Read the file INSTALL for detailed installation instructions. The original purpose was to provide data structures and routines for handling uncompressed audio- and video data. Over the years it became a central repository for code, which is shared by the gmerlin package and the gmerlin-avdecoder library. It's main purpose is to make the gmerlin-avdecoder library independent from the (huge) gmerlin package. In the future, more stuff might get moved from libgmerlin to libgavl. Below is (probably incomplete) list of contained modules: - Handling of uncompressed audio and video data (gavl.h) - Handling of compressed audio and video data (compression.h) - Handling of A/V data stored in special ways for hardware acceleration (hw*.h) - Connectors (source and sink) for compressed and uncompressed A/V data. They usually work in zero-copy mode but can also do implicit A/V conversions when necessary (connectors.h) - Polymorphic data containers with high-level types like arrays and dictionaries. These are used throughout the whole gmerlin project for non A/V data like metadata or configuration data (value.h). Libgmerlin contains serializations for XML and JSON so complex data structures can be saved to or loaded from files in one function call. - Generic socket support code (gavlsocket.h) - An http-client with support for: * Non-blocking I/O for background downloading without a separate thread * Redirection * https (via gnutls) * Seeking (httpclient.h) - An experimental A/V container format for internal usage, currently unused and probably not functional (gavf/gavf.h) - A message structure used throughout the whole gmerlin project for communication, both inside the applications and between them. libgmerlin contains a serialization for JSON and a message queue for robust inter-thread communication. - Logging support (log.h) - Lots of utility functions (util.h)
About
Gmerlin audio video library
Resources
License
Stars
Watchers
Forks
Packages 0
No packages published