diff options
author | Dirk Ausserhaus <dausserhaus@gmail.com> | 2014-06-08 13:44:17 +0200 |
---|---|---|
committer | Kostya Shishkov <kostya.shishkov@gmail.com> | 2014-06-26 19:17:33 +0200 |
commit | 5ec6d152e26c570c0a16ec72c1f354db95708179 (patch) | |
tree | 15bb4cb43131c00c87c2465e2e6e3d92ae74d730 /libavcodec/ivi_common.h | |
parent | 422e14f721c22cf9c19a8e7aae051ba9d559f6b6 (diff) | |
download | ffmpeg-5ec6d152e26c570c0a16ec72c1f354db95708179.tar.gz |
indeo4: B-frames decoding
Signed-off-by: Kostya Shishkov <kostya.shishkov@gmail.com>
Diffstat (limited to 'libavcodec/ivi_common.h')
-rw-r--r-- | libavcodec/ivi_common.h | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/libavcodec/ivi_common.h b/libavcodec/ivi_common.h index 515b073ca9..e2cc593b61 100644 --- a/libavcodec/ivi_common.h +++ b/libavcodec/ivi_common.h @@ -117,6 +117,8 @@ typedef struct IVIMbInfo { int8_t q_delta; ///< quant delta int8_t mv_x; ///< motion vector (x component) int8_t mv_y; ///< motion vector (y component) + int8_t b_mv_x; ///< second motion vector (x component) + int8_t b_mv_y; ///< second motion vector (y component) } IVIMbInfo; @@ -150,7 +152,8 @@ typedef struct IVIBandDesc { int data_size; ///< size of the band data int16_t *buf; ///< pointer to the output buffer for this band int16_t *ref_buf; ///< pointer to the reference frame buffer (for motion compensation) - int16_t *bufs[3]; ///< array of pointers to the band buffers + int16_t *b_ref_buf; ///< pointer to the second reference frame buffer (for motion compensation) + int16_t *bufs[4]; ///< array of pointers to the band buffers int pitch; ///< pitch associated with the buffers above int is_empty; ///< = 1 if this band doesn't contain any data int mb_size; ///< macroblock size @@ -231,6 +234,7 @@ typedef struct IVI45DecContext { int dst_buf; ///< buffer index for the currently decoded frame int ref_buf; ///< inter frame reference buffer index int ref2_buf; ///< temporal storage for switching buffers + int b_ref_buf; ///< second reference frame buffer index IVIHuffTab mb_vlc; ///< current macroblock table descriptor IVIHuffTab blk_vlc; ///< current block table descriptor @@ -314,11 +318,13 @@ int ff_ivi_dec_huff_desc(GetBitContext *gb, int desc_coded, int which_tab, /** * Initialize planes (prepares descriptors, allocates buffers etc). * - * @param[in,out] planes pointer to the array of the plane descriptors - * @param[in] cfg pointer to the ivi_pic_config structure describing picture layout + * @param[in,out] planes pointer to the array of the plane descriptors + * @param[in] cfg pointer to the ivi_pic_config structure describing picture layout + * @param[in] is_indeo4 flag signalling if it is Indeo 4 or not * @return result code: 0 - OK */ -int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg); +int ff_ivi_init_planes(IVIPlaneDesc *planes, const IVIPicConfig *cfg, + int is_indeo4); /** * Initialize tile and macroblock descriptors. |