47 #define REASONABLE_SIZE 1024
49 #define OFFSET(x) offsetof(TileContext, x)
50 #define FLAGS AV_OPT_FLAG_VIDEO_PARAM|AV_OPT_FLAG_FILTERING_PARAM
54 {.str =
"6x5"}, 0, 0,
FLAGS },
55 {
"nb_frames",
"set maximum number of frame to render",
OFFSET(nb_frames),
57 {
"margin",
"set outer border margin in pixels",
OFFSET(margin),
59 {
"padding",
"set inner border thickness in pixels",
OFFSET(padding),
81 tile->
w, tile->
h, tile->
w * tile->
h);
99 const unsigned total_margin_w = (tile->
w - 1) * tile->
padding + 2*tile->
margin;
100 const unsigned total_margin_h = (tile->
h - 1) * tile->
padding + 2*tile->
margin;
102 if (inlink->
w > (INT_MAX - total_margin_w) / tile->
w) {
107 if (inlink->
h > (INT_MAX - total_margin_h) / tile->
h) {
112 outlink->
w = tile->
w * inlink->
w + total_margin_w;
113 outlink->
h = tile->
h * inlink->
h + total_margin_h;
129 const unsigned tx = tile->
current % tile->
w;
130 const unsigned ty = tile->
current / tile->
w;
145 x0, y0, inlink->
w, inlink->
h);
188 0, 0, outlink->
w, outlink->
h);
195 x0, y0, 0, 0, inlink->
w, inlink->
h);
244 .priv_class = &tile_class,