transcode
Author: Francesco Romani
Keywords: transcode architecture libraries

# Transcode - overview of libraries

### 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 :)

aclib | low-level, optimized core routines.
avilib | simple AVI I/O support.
libtc | core utilities repository.
libtcaudio | audio manipulation routines.
libtcvideo | video manipulation routines.

#### aclib

##### Dependencies: | ##### Introduced in version:
None | 0.6.x or before
##### Description: provides accelerated, machine-dependent, utility functions like memcpy, colorspace conversion routines and so on.
##### Notes: "AC" stands originally for "Advanced C library, but at present day meaning of "AC" has been unspecified :) Rewritten completely during 1.1.0 cycle by Andrew Church.

#### avilib

##### Dependencies: | ##### Introduced in version:
None | 0.6.x or before
##### Description: provides I/O stream access to AVI files. Only multiplexing/demultiplexing, no encoding/decoding.
##### Notes: Scheduled for an heavy reorganization/refactoring during 1.2.0/1.3.0 cycle.

#### libtc

##### Dependencies: | ##### Introduced in version:
None | 1.0.x
##### Description: utility/helpers collection. Provides memory allocation/disposal, string manipulation, I/O helper functions. Also holds all low-level code shared between modules.
##### Notes: Greatly enhanced during 1.1.0 cycle.

#### libtcaudio

##### Dependencies: | ##### Introduced in version:
None | 1.1.x
##### Description: provides various audio manipulation functions used by transcode core and modules.

#### libtcvideo

##### Dependencies: | ##### Introduced in version:
aclib | 1.1.x
##### Description: provides various video manipulation functions used by transcode core and modules.