fame_start_frame

Langue: en

Version: 320727 (ubuntu - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

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)