TRANSCODE LIBRARIES ORGANIZATION ================================ Summary ------- As part of 1.1.0 development cycle, an huge internal reorganization effort has undergone. Reorganization isn't yet (as 1.1.0 released) complete, and will involve every component in transcode codebase. This document provide an overview of reorganized internal transcode libraries, internal dependencies and purposes. GENERAL WARNING: transcode libraries are quite carefully designed and implemented in order to be independent, self contained as much as is possible, but they *are not* intended to be easily separated by transcode codebase and to be used in external projects. We don't care too much about API/ABI stability yet, and we don't do testing on this direction. Help us to improve code, or use it at own risk :) Overview -------- Library: aclib Dependencies: None Purpose: provides accleretad, machine-dependent, utility functions like memcpy, colorspace conversion routines and so on. Library: avilib Dependencies: None Purpose: provide I/O stream access to AVI files. Only multiplexing/demultiplexing, no encoding/decoding. Library: libtc Dependencies: None Purpose: utility/helpers collection. Provides memory allocation/disposal, string manipulation, I/O helper functions. Also holds all low-level code shared between modules. Library: libtcinput Dependencies: libtc Purpose: input layer abstraction. Provide access to stream data from heterogeneous media through a common layer. That's `tccat' program foundation. Library: libtcaudio Dependencies: None Purpose: provides various audio manipulation functions used by transcode core and modules. Library: libtcvideo Dependencies: aclib Purpose: provides various video manipulation functions used by transcode core and modules.