summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-06-18 19:31:23 +0200
committerwm4 <wm4@nowhere>2016-06-18 19:31:23 +0200
commit0cf187caca31265bb4138995b3eb20686bb71be5 (patch)
tree442680e332014d3c315a33e7feee71f9cde8f064
parent07c11656e3a108d646f7d7c686c497e19ce6d7fe (diff)
downloadmpv-0cf187caca31265bb4138995b3eb20686bb71be5.tar.bz2
mpv-0cf187caca31265bb4138995b3eb20686bb71be5.tar.xz
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.
-rw-r--r--sub/sd_lavc.c1
-rw-r--r--video/out/bitmap_packer.c11
-rw-r--r--video/out/bitmap_packer.h2
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 <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;
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);