summaryrefslogtreecommitdiff
path: root/libavcodec/rle.c
diff options
context:
space:
mode:
authorHendrik Leppkes <h.leppkes@gmail.com>2015-11-29 15:45:47 +0100
committerHendrik Leppkes <h.leppkes@gmail.com>2015-11-29 15:45:47 +0100
commit81b73f1f979557a6b94d57219e215a4479b3307b (patch)
treeee5011192efedb665f66fa70507ba7c07389dc47 /libavcodec/rle.c
parente9675ed13ac53ec6dd7015c3a1b81043d0fea78d (diff)
parent59e3f4e598ae381600ef54e1f6e6a8a5270ac245 (diff)
downloadffmpeg-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.c15
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;