X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Frle.c;h=7924ea780f9f96f051af6a108dcc9cfad7266d23;hb=22e960ad478e568f4094971a58c6ad8f549c0180;hp=d2ec68c407c78d7324dfa6210d77c4fa235e16a0;hpb=4e8f1c6fb0022ef9ddfe95faa0cf7e301d165f61;p=ffmpeg diff --git a/libavcodec/rle.c b/libavcodec/rle.c index d2ec68c407c..7924ea780f9 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;