The general methods defined in this clause allows packaging media resources into a conforming MMBP with focus on the baseline MMBP Generator Profile as defined in
clause 6.3.
The encoding API is described by filters as for example defined here:
https://wiki.gpac.io/Filters/filters_general.
Encoding architectures can be built by using filters. Filters are configurable processing units consuming and producing data packets. These packets are carried between filters through a data channel called PID. A PID is in charge of allocating/tracking data packets and passing the packets to the destination filter(s). Each output PID carries a set of properties describing the data it delivers (e.g. width, height, codec, ...).
Each filter exposes a set of argument to configure itself, using property types and values described as strings formatted with separators.
Each filter is declared by its name, with optional filter arguments appended as a list of colon-separated name=value pairs. For encoding, typical parameters are:
-
c=NAME: identifies the desired encoding codec capability as defined in clause 5.
-
b=UINT: indicates the bitrate in bits per second
Filters can then be linked, for example using the following principle:
generate [options] FILTER [LINK] FILTER [...]
For typical generation processes in the context of this specification, the following is applied
generate [options] INPUT_FILTER + ENCODE_FILTER + PACKAGE_FILTER + MULTIPLEX_FILTER
Specific filters are for further study.