(RPNG) Create png_reverse_filter_iterate

This commit is contained in:
twinaphex 2015-03-13 20:53:28 +01:00
parent 6506f6ce85
commit a7e761c0d1

View File

@ -390,13 +390,10 @@ static int png_reverse_filter_copy_line(uint32_t *data, const struct png_ihdr *i
return 0;
}
static bool png_reverse_filter_regular(uint32_t *data, const struct png_ihdr *ihdr,
static bool png_reverse_filter_iterate(uint32_t *data, const struct png_ihdr *ihdr,
struct rpng_process_t *pngp)
{
int ret;
do{
ret = 1;
int ret = 1;
if (pngp->h < ihdr->height)
{
@ -409,12 +406,26 @@ static bool png_reverse_filter_regular(uint32_t *data, const struct png_ihdr *ih
if (ret == 1 || ret == -1)
{
png_reverse_filter_deinit(pngp);
break;
return ret;
}
pngp->h++;
pngp->inflate_buf += pngp->pitch;
pngp->restore_buf_size += pngp->pitch;
return 0;
}
static bool png_reverse_filter_regular(uint32_t *data, const struct png_ihdr *ihdr,
struct rpng_process_t *pngp)
{
int ret;
do{
ret = png_reverse_filter_iterate(data, ihdr, pngp);
if (ret != 0)
break;
data += ihdr->width;
}while(1);