[FFmpeg-devel] [PATCH] avfilter/vf_tile: remove limit of max tile size
Paul B Mahol
onemda at gmail.com
Sat Oct 28 19:14:17 EEST 2017
Signed-off-by: Paul B Mahol <onemda at gmail.com>
---
libavfilter/vf_tile.c | 12 +++---------
1 file changed, 3 insertions(+), 9 deletions(-)
diff --git a/libavfilter/vf_tile.c b/libavfilter/vf_tile.c
index 87e0b940cf..5752ca080e 100644
--- a/libavfilter/vf_tile.c
+++ b/libavfilter/vf_tile.c
@@ -23,6 +23,7 @@
* tile video filter
*/
+#include "libavutil/imgutils.h"
#include "libavutil/opt.h"
#include "libavutil/pixdesc.h"
#include "avfilter.h"
@@ -44,8 +45,6 @@ typedef struct TileContext {
uint8_t rgba_color[4];
} TileContext;
-#define REASONABLE_SIZE 1024
-
#define OFFSET(x) offsetof(TileContext, x)
#define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
@@ -68,12 +67,6 @@ static av_cold int init(AVFilterContext *ctx)
{
TileContext *tile = ctx->priv;
- if (tile->w > REASONABLE_SIZE || tile->h > REASONABLE_SIZE) {
- av_log(ctx, AV_LOG_ERROR, "Tile size %ux%u is insane.\n",
- tile->w, tile->h);
- return AVERROR(EINVAL);
- }
-
if (tile->nb_frames == 0) {
tile->nb_frames = tile->w * tile->h;
} else if (tile->nb_frames > tile->w * tile->h) {
@@ -116,7 +109,7 @@ static int config_props(AVFilterLink *outlink)
ff_draw_init(&tile->draw, inlink->format, 0);
ff_draw_color(&tile->draw, &tile->blank, tile->rgba_color);
- return 0;
+ return av_image_check_size2(outlink->w, outlink->h, INT64_MAX, inlink->format, 0, ctx);
}
static void get_current_tile_pos(AVFilterContext *ctx, unsigned *x, unsigned *y)
@@ -142,6 +135,7 @@ static void draw_blank_frame(AVFilterContext *ctx, AVFrame *out_buf)
x0, y0, inlink->w, inlink->h);
tile->current++;
}
+
static int end_last_frame(AVFilterContext *ctx)
{
TileContext *tile = ctx->priv;
--
2.11.0
More information about the ffmpeg-devel
mailing list