From 0cf187caca31265bb4138995b3eb20686bb71be5 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 18 Jun 2016 19:31:23 +0200 Subject: [PATCH] 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. --- sub/sd_lavc.c | 1 - video/out/bitmap_packer.c | 11 +++++++---- video/out/bitmap_packer.h | 2 -- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/sub/sd_lavc.c b/sub/sd_lavc.c index 10363748ac..7f68a2224e 100644 --- a/sub/sd_lavc.c +++ b/sub/sd_lavc.c @@ -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: diff --git a/video/out/bitmap_packer.c b/video/out/bitmap_packer.c index 4ea8b0b62a..3f75a72bcb 100644 --- a/video/out/bitmap_packer.c +++ b/video/out/bitmap_packer.c @@ -22,6 +22,7 @@ #include #include #include +#include #include @@ -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; diff --git a/video/out/bitmap_packer.h b/video/out/bitmap_packer.h index c9503fe42c..8fd2fce599 100644 --- a/video/out/bitmap_packer.h +++ b/video/out/bitmap_packer.h @@ -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);