bitmap_packet: let max=0 mean unlimited

And remove the strange PACKER_MAX_WH define. This is more convenient for
users which don't care about limits, such as sd_lavc.c.
This commit is contained in:
wm4 2016-06-18 19:31:23 +02:00
parent 07c11656e3
commit 0cf187caca
3 changed files with 7 additions and 7 deletions

View File

@ -150,7 +150,6 @@ static int init(struct sd *sd)
priv->displayed_id = -1;
priv->current_pts = MP_NOPTS_VALUE;
priv->packer = talloc_zero(priv, struct bitmap_packer);
priv->packer->w_max = priv->packer->h_max = PACKER_MAX_WH;
return 0;
error:

View File

@ -22,6 +22,7 @@
#include <stdlib.h>
#include <assert.h>
#include <stdio.h>
#include <limits.h>
#include <libavutil/common.h>
@ -170,10 +171,12 @@ int packer_pack(struct bitmap_packer *packer)
}
return packer->w != w_orig || packer->h != h_orig;
}
if (packer->w <= packer->h && packer->w != packer->w_max)
packer->w = FFMIN(packer->w * 2, packer->w_max);
else if (packer->h != packer->h_max)
packer->h = FFMIN(packer->h * 2, packer->h_max);
int w_max = packer->w_max > 0 ? packer->w_max : INT_MAX;
int h_max = packer->h_max > 0 ? packer->h_max : INT_MAX;
if (packer->w <= packer->h && packer->w != w_max)
packer->w = FFMIN(packer->w * 2, w_max);
else if (packer->h != h_max)
packer->h = FFMIN(packer->h * 2, h_max);
else {
packer->w = w_orig;
packer->h = h_orig;

View File

@ -25,8 +25,6 @@ struct bitmap_packer {
struct sub_bitmaps;
#define PACKER_MAX_WH 65536
// Clear all internal state. Leave the following fields: w_max, h_max
void packer_reset(struct bitmap_packer *packer);