fame_start_frame(3)fame_start_framefame_start_frame(3)NAMEfame_start_frame - starts encoding of a frame
SYNOPSIS
#include <fame.h>
void fame_start_frame(fame_context_t *context, fame_yuv_t *yuv, unsigned char *shape);
DESCRIPTIONfame_start_frame() starts the encoding of an uncompressed frame from
yuv to a binary stream in buffer, according to initialization parame‐
ters and optionnaly previously encoded frames. It should be called
before starting processing slices with fame_encode_slice
Note that in the case of video sequences containing B frames, it is up
to the caller to present frames in the encoder order. Since B frames
require both previous and next reference frames, they must be presented
after both previous and next reference frames have been coded. For
example, a "IBBPBBP" coding sequence must be presented in "IPBBPBB"
order. This presentation order is also the order in which the frames
should be stored in a file or sent to a network.
context is the context handle previously returned by fame_open
yuv is a pointer to the input frame. Currently, only YV12 planar for‐
mat, also called YUV 4:2:0, is supported. The YV12 planar format con‐
sists in three plane, one for the Y (luminance) and two for the Cr and
Cb (chrominance) components, the chrominance planes being subsampled by
2x2. These three planes are mapped linearly in memory:
width
yuv -> +=========+
| |
| Y | height
| |
+====+====+
| Cr | height / 2
+====+
| Cb | height / 2
+====+
width / 2
The process of converting RGB pictures to YUV12 will not be detailled
here.
shape represents the shape in case of video with arbitrary shape. It
consists in a bitmap of width x height bytes, with 255 representing an
opaque pixel and 0 representing a transparent pixel. Values between 0
and 255 are not supported yet. For rectangular video, this parameter
must be set to NULL.
SEE ALSOfame_open(3), fame_init(3), fame_close(3), fame_encode_slice(3),
fame_end_frame(3)libfame February 19th, 2002 fame_start_frame(3)