Changed the rle encoder a little and made it more universal.

Not only the repeated byte is calculated as (count ^ xor) + add
but also the raw encoding lenth byte is calculated as that too
patch by Xiaohui Sun sunxiaohui  dsp ac cn

Originally committed as revision 8602 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Xiaohui Sun
2007-04-03 06:40:21 +00:00
committed by Michael Niedermayer
parent 65df54496e
commit b25514a43f
3 changed files with 9 additions and 6 deletions

View File

@@ -23,7 +23,8 @@
#define RLE_H
/**
* RLE compress the row, with maximum size of out_size. Value before repeated bytes is (count ^ xor) + add.
* RLE compress the row, with maximum size of out_size. Value before repeated bytes is (count ^ xor_rep) + add_rep.
* Value before raw bytes is (count ^ xor_raw) + add_raw.
* @param outbuf Output buffer
* @param out_size Maximum output size
* @param ptr Input buffer
@@ -31,6 +32,7 @@
* @param w Image width
* @return Size of output in bytes, or -1 if larger than out_size
*/
int ff_rle_encode(uint8_t *outbuf, int out_size, const uint8_t *inbuf, int bpp, int w, int8_t add, uint8_t xor);
int ff_rle_encode(uint8_t *outbuf, int out_size, const uint8_t *inbuf, int bpp, int w,
int8_t add_rep, uint8_t xor_rep, int8_t add_raw, uint8_t xor_raw);
#endif /* RLE_H */