X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;ds=sidebyside;f=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FVLIB%2Fvideo_codec.h;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FARDroneLib%2FVLIB%2Fvideo_codec.h;h=8664ffbe7002fce3c545d8761b21a6d240217bf6;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hp=0000000000000000000000000000000000000000;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2;p=mardrone diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VLIB/video_codec.h b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VLIB/video_codec.h new file mode 100644 index 0000000..8664ffb --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/ARDroneLib/VLIB/video_codec.h @@ -0,0 +1,40 @@ +#ifndef _VLIB_H_ +#define _VLIB_H_ + +#include + +#define VLIB_DEFAULT_BITRATE (0) /* In bytes/frame, 0 means bitrate control disabled*/ + +struct _video_codec_t { + encode_blockline_fc encode_blockline; + decode_blockline_fc decode_blockline; + update_fc update; + cache_stream_fc cache_stream; +}; + +/******** Available codecs ********/ +typedef enum _codec_type_t { + NULL_CODEC = 0, + UVLC_CODEC = 0x20, // codec_type value is used for START_CODE + MJPEG_CODEC, // not used + P263_CODEC, // not used + P264_CODEC = 0x40 +} codec_type_t; + +/******** API ********/ +C_RESULT video_codec_open( video_controller_t* controller, codec_type_t codec_type ); +C_RESULT video_codec_close( video_controller_t* controller ); + +// Encode/Decode a complete picture given +C_RESULT video_encode_picture( video_controller_t* controller, const vp_api_picture_t* picture, bool_t* got_image ); +C_RESULT video_decode_picture( video_controller_t* controller, vp_api_picture_t* picture, video_stream_t* ex_stream, bool_t* got_image ); + +// Encode/Decode a blockline +static INLINE C_RESULT video_encode_blockline( video_controller_t* controller, const vp_api_picture_t* blockline, bool_t picture_complete ) +{ + return controller->video_codec->encode_blockline( controller, blockline, picture_complete ); +} + +C_RESULT video_decode_blockline( video_controller_t* controller, vp_api_picture_t* blockline, bool_t* got_image ); + +#endif // _VLIB_H_