NAME
fame_encode_frame - encode a single frame (DEPRECATED)
SYNOPSIS
#include <fame.h>
fame_frame_statistics_t *fame_encode_frame(fame_context_t *context, fame_yuv_t *yuv, unsigned char *shape);
DESCRIPTION
fame_encode_frame() encodes a single uncompressed frame from yuv to a
binary stream in buffer, according to initialization parameters and
optionnaly previously encoded frames. 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.
RETURN VALUE
fame_encode_frame returns a pointer to frame encoding statistics. These
statistics include frame number, coding mode (I,P or B) for the frame,
expected bits, actual bits used, spatial activity, and quantizer scale.
The number of bytes written to the buffer is actual_bits/8.
BUGS
MMX arithmetic performs bad at quality > 95%. Encoding of B frames is
not yet supported. Only works when slices_per_frame has been set to 1
in fame_init
DEPRECATED
Usage of this function is deprecated. Use fame_start_frame ,
fame_encode_slice , and fame_end_frame instead.
SEE ALSO
fame_open(3), fame_init(3), fame_close(3), fame_encode_slice(3)