ArDrone SDK 1.8 added
[mardrone] / mardrone / ARDrone_SDK_Version_1_8_20110726 / ARDroneLib / VLIB / P263 / p263_codec.h
1 #ifndef _P263_CODEC_H_
2 #define _P263_CODEC_H_
3
4 #include <VLIB/video_codec.h>
5 #include "p263_layers.h"
6 #include "p263_huffman.h"
7
8 typedef struct _p263_codec_t {
9   // Compatibility with video_codec_t structure
10   encode_blockline_fc encode_blockline;
11   decode_blockline_fc decode_blockline;
12   update_fc           update;
13   cache_stream_fc     cache_stream;
14
15   // Private data (see video source coding algorithm p.9)
16   p263_picture_layer_t  picture_layer;
17   p263_mb_type_t*       mb_types;
18   p263_cbpy_t*          cbpys;
19 } p263_codec_t;
20
21 void p263_codec_alloc( video_controller_t* controller );
22 void p263_codec_free( video_controller_t* controller );
23
24 C_RESULT p263_encode_blockline( video_controller_t* controller, const vp_api_picture_t* blockline, bool_t picture_complete );
25 C_RESULT p263_decode_blockline( video_controller_t* controller, vp_api_picture_t* picture, bool_t* got_image );
26 C_RESULT p263_update( video_controller_t* controller );
27 C_RESULT p263_cache( video_controller_t* controller, video_stream_t* ex_stream);
28
29 #endif // _P263_CODEC_H_