diff options
author | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-11-29 15:45:47 +0100 |
---|---|---|
committer | Hendrik Leppkes <h.leppkes@gmail.com> | 2015-11-29 15:45:47 +0100 |
commit | 81b73f1f979557a6b94d57219e215a4479b3307b (patch) | |
tree | ee5011192efedb665f66fa70507ba7c07389dc47 /libavcodec/rle.c | |
parent | e9675ed13ac53ec6dd7015c3a1b81043d0fea78d (diff) | |
parent | 59e3f4e598ae381600ef54e1f6e6a8a5270ac245 (diff) | |
download | ffmpeg-81b73f1f979557a6b94d57219e215a4479b3307b.tar.gz |
Merge commit '59e3f4e598ae381600ef54e1f6e6a8a5270ac245'
* commit '59e3f4e598ae381600ef54e1f6e6a8a5270ac245':
sgienc: Use a local RLE encoding function
Merged-by: Hendrik Leppkes <h.leppkes@gmail.com>
Diffstat (limited to 'libavcodec/rle.c')
-rw-r--r-- | libavcodec/rle.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/libavcodec/rle.c b/libavcodec/rle.c index d2ec68c407..7924ea780f 100644 --- a/libavcodec/rle.c +++ b/libavcodec/rle.c @@ -22,16 +22,7 @@ #include "rle.h" #include "libavutil/common.h" -/** - * Count up to 127 consecutive pixels which are either all the same or - * all differ from the previous and next pixels. - * @param start Pointer to the first pixel - * @param len Maximum number of pixels - * @param bpp Bytes per pixel - * @param same 1 if searching for identical pixel values. 0 for differing - * @return Number of matching consecutive pixels found - */ -static int count_pixels(const uint8_t *start, int len, int bpp, int same) +int ff_rle_count_pixels(const uint8_t *start, int len, int bpp, int same) { const uint8_t *pos; int count = 1; @@ -63,14 +54,14 @@ int ff_rle_encode(uint8_t *outbuf, int out_size, const uint8_t *ptr , int bpp, i for(x = 0; x < w; x += count) { /* see if we can encode the next set of pixels with RLE */ - if((count = count_pixels(ptr, w-x, bpp, 1)) > 1) { + if ((count = ff_rle_count_pixels(ptr, w - x, bpp, 1)) > 1) { if(out + bpp + 1 > outbuf + out_size) return -1; *out++ = (count ^ xor_rep) + add_rep; memcpy(out, ptr, bpp); out += bpp; } else { /* fall back on uncompressed */ - count = count_pixels(ptr, w-x, bpp, 0); + count = ff_rle_count_pixels(ptr, w - x, bpp, 0); if(out + bpp*count >= outbuf + out_size) return -1; *out++ = (count ^ xor_raw) + add_raw; |