

#include <nitro/mi.h>s32 MI_SecureUncompressHuffman( const void *srcp, u32 srcSize, void *destp, u32 dstSize );| srcp | ハフマン圧縮データの格納されているソースアドレス |
| srcSize | ソースデータサイズ |
| destp | 展開するディスティネーションアドレス |
| dstSize | 展開するディスティネーションサイズ |
| MI_ERR_SUCCESS | 正常終了 |
| MIRR_UNSUPPORTED | 対応していない圧縮データタイプ |
| MI_ERR_SRC_SHORTAGE | ソースデータサイズが過小 |
| MI_ERR_SRC_REMAINDER | ソースデータサイズが過大 |
| MI_ERR_ILLEGAL_TABLE | ハフマンテーブルに誤りがある |
ハフマン圧縮データを展開し、指定のメモリ領域に32bit単位で書き込みます。
ソースアドレスは4byte 境界に合わせてください。
データのストリーミング展開をおこなう場合には、MI_ReadUncompHuffman()を利用します。
展開先のバッファサイズを確保する際の参考として、MI_GetUncompressedSize()を呼ぶことで、
圧縮データのヘッダに書かれている展開後のデータサイズを取得することができます。
圧縮データのヘッダが壊れており、正しい値が取得できなかった場合でも、各SecureUncompress*()の中で検知しエラーを返します。
MI_GetUncompressedSize,
MI_UncompressHuffman,
MI_InitUncompContextHuffman,
MI_ReadUncompHuffman,
MI_CompressHuffman,
ntrcomp
2008/05/22 初版