35 * The library provide the <b>Transcoder</b> class, which was the highest level of managment.<br/>
36 * This classe manage progress of process for each <b>StreamTranscoder</b>.<br/>
37 * Each <b>StreamTranscoder</b> definition can be added to the <b>Transcoder</b>.<br/>
38 * After declaration, the process() method can process file, which call processFrame() in loop.<br/>
39 *
40 * <h3>StreamTranscoder</h3>
41 * The <b>StreamTranscoder</b> will be here to abstract call for different case as:
42 * <ul>
43 * <li>simple rewrap stream</li>
44 * <li>transcode stream (decoding, transform and encoding)</li>
45 * <li>encode from dummy (silence/black or external input source), without decoding step</li>
46 * </ul>
47 * Each <b>StreamTranscoder</b> is able to process a frame, and in background process a rewrap or the transcode process.<br/>
48 *
49 * <h2>Lowest API</h2>
50 * <h3>InputFile</h3>
51 * This object manage the input media, providing the analisys methods to get metadatas on wrapper and each streams.<br/>
52 * It also the entry point to get the <b>InputStream</b> which was the coded stream.<br/>
53 *
54 * <h3>OutputFile</h3>
55 * The equivalent to the <b>InputFile</b> is the <b>OutputFile</b>. Each output stream require a decalaration, needed to wrote headers of files (wrote during the beginWrap() call).<br/>
56 * As the <b>InputFile</b> provide the <b>InputStream</b> to describe stream, the <b>OutputFile</b> as his <b>OutputStream</b> to put coded stream into the output file.<br/>
57 * Using one <b>InputStream</b> and one <b>OutputStream</b>, each <b>DataStream</b> can be passed to provide a rewrap process.<br/>
58 *
59 * <h3>InputEssence</h3>
60 * The <b>InputEssence</b> provide every time an image, from a coded stream or from an external buffer.<br/>
61 * It's allow the possiblity to generate silence or black stream, or also switch between the coded stream and a factice (to complete stream with different durations).<br/>
62 * The switch between source was managed inside the <b>StreamTranscoder</b> class.
63 *
64 * <h3>OutputEssence</h3>
65 * As the <b>InputEssence</b> can decode the stream, the <b>OutputEssence</b> will encode our images to provide the coded stream.<br/>
66 * It's the encoder cofigured with some <b>Profile</b>.
67 *
68 * <h3>EssenceTransform</h3>
69 * For adapt some images to the output format, some transformation can be done.<br/>
70 * This step will only provide pixel/sample transformation (point to point transform). No resize, resampling can be applyed in this step.
71 *
72 * <h2>Low API</h2>
73 * Each component of the Lowest API call method present in the libav/ffmpeg API. You can depend on one of these project.<br/>
74 * Newest versions of libav/ffmpeg are recommended.<br/>