NAME
fame_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);
DESCRIPTION
fame_start_frame() starts the encoding of an uncompressed frame from
yuv to a binary stream in buffer, according to initialization
parameters 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
format, also called YUV 4:2:0, is supported. The YV12 planar format
consists 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 ALSO
fame_open(3), fame_init(3), fame_close(3), fame_encode_slice(3),
fame_end_frame(3)