1 #ifndef __DALI_TIZEN_PLATFORM_DATA_COMPRESSION_H__
2 #define __DALI_TIZEN_PLATFORM_DATA_COMPRESSION_H__
5 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
24 namespace TizenPlatform
26 namespace DataCompression
30 * Return the maximum size of a buffer required to hold a number of bytes.
31 * Required because compressing data, can end up being bigger
32 * than the original data.
33 * @return maximum buffer size required to compress inputSize
35 std::size_t GetMaximumRleCompressedSize(const std::size_t inputSize);
38 * RLE Encodes an array of data
39 * @param input input data
40 * @param inputLength input data length in bytes
41 * @param output output data, pre-allocated by caller
42 * @param outputLength size of the output buffer in bytes
43 * @param encodedSize number of bytes written to outputBuffer
45 void EncodeRle( const unsigned char* input,
46 const std::size_t inputLength,
47 unsigned char* output,
48 const std::size_t outputLength,
49 std::size_t &encodedSize );
52 * RLE Decodes an array of data.
53 * @param[in] input input data
54 * @param[in] inputLength input data length in bytes
55 * @param[out] output output data, pre-allocated by caller, allocated using GetMaximumRleCompressedSize()
56 * @param[in] outputLength size of output data in bytes
57 * @param[out] decodedSize the number of bytes decoded into outputBuffer
59 bool DecodeRle( const unsigned char* input,
60 const std::size_t inputLength,
61 unsigned char* output,
62 const std::size_t outputLength,
63 std::size_t& decodedSize);
66 } // namespace DataCompression
68 } // namespace TizenPlatform
72 #endif // __DALI_TIZEN_PLATFORM_DATA_COMPRESSION_H__