... | ... |
@@ -416,11 +416,18 @@ static int query_formats(AVFilterContext *ctx) |
416 | 416 |
if (!select->do_scene_detect) { |
417 | 417 |
return ff_default_query_formats(ctx); |
418 | 418 |
} else { |
419 |
+ int ret; |
|
419 | 420 |
static const enum AVPixelFormat pix_fmts[] = { |
420 | 421 |
AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, |
421 | 422 |
AV_PIX_FMT_NONE |
422 | 423 |
}; |
423 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
424 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
425 |
+ |
|
426 |
+ if (!fmts_list) |
|
427 |
+ return AVERROR(ENOMEM); |
|
428 |
+ ret = ff_set_common_formats(ctx, fmts_list); |
|
429 |
+ if (ret < 0) |
|
430 |
+ return ret; |
|
424 | 431 |
} |
425 | 432 |
return 0; |
426 | 433 |
} |
... | ... |
@@ -62,8 +62,10 @@ static int query_formats(AVFilterContext *ctx) |
62 | 62 |
// TODO: we can probably add way more pixel formats without any other |
63 | 63 |
// changes; anything with 8-bit luma in first plane should be working |
64 | 64 |
static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE}; |
65 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
66 |
- return 0; |
|
65 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
66 |
+ if (!fmts_list) |
|
67 |
+ return AVERROR(ENOMEM); |
|
68 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
67 | 69 |
} |
68 | 70 |
|
69 | 71 |
static int clip_line(int *sx, int *sy, int *ex, int *ey, int maxx) |
... | ... |
@@ -76,9 +76,10 @@ static int query_formats(AVFilterContext *ctx) |
76 | 76 |
AV_PIX_FMT_RGB0, AV_PIX_FMT_BGR0, |
77 | 77 |
AV_PIX_FMT_NONE |
78 | 78 |
}; |
79 |
- |
|
80 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
81 |
- return 0; |
|
79 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
80 |
+ if (!fmts_list) |
|
81 |
+ return AVERROR(ENOMEM); |
|
82 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
82 | 83 |
} |
83 | 84 |
|
84 | 85 |
static int config_output(AVFilterLink *outlink) |
... | ... |
@@ -353,10 +353,10 @@ static int query_formats(AVFilterContext *ctx) |
353 | 353 |
AV_PIX_FMT_UYVY422, |
354 | 354 |
AV_PIX_FMT_NONE |
355 | 355 |
}; |
356 |
- |
|
357 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
358 |
- |
|
359 |
- return 0; |
|
356 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
357 |
+ if (!fmts_list) |
|
358 |
+ return AVERROR(ENOMEM); |
|
359 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
360 | 360 |
} |
361 | 361 |
|
362 | 362 |
static int filter_frame(AVFilterLink *link, AVFrame *in) |
... | ... |
@@ -464,8 +464,10 @@ static int query_formats(AVFilterContext *ctx) |
464 | 464 |
AV_PIX_FMT_RGB0, AV_PIX_FMT_BGR0, |
465 | 465 |
AV_PIX_FMT_NONE |
466 | 466 |
}; |
467 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
468 |
- return 0; |
|
467 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
468 |
+ if (!fmts_list) |
|
469 |
+ return AVERROR(ENOMEM); |
|
470 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
469 | 471 |
} |
470 | 472 |
|
471 | 473 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -600,8 +600,10 @@ static int query_formats(AVFilterContext *ctx) |
600 | 600 |
AV_PIX_FMT_BGR24, AV_PIX_FMT_RGB24, |
601 | 601 |
AV_PIX_FMT_NONE |
602 | 602 |
}; |
603 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
604 |
- return 0; |
|
603 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
604 |
+ if (!fmts_list) |
|
605 |
+ return AVERROR(ENOMEM); |
|
606 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
605 | 607 |
} |
606 | 608 |
|
607 | 609 |
typedef struct ThreadData { |
... | ... |
@@ -350,8 +350,10 @@ static int query_formats(AVFilterContext *ctx) |
350 | 350 |
AV_PIX_FMT_GRAY8, AV_PIX_FMT_GRAY16, |
351 | 351 |
AV_PIX_FMT_NONE |
352 | 352 |
}; |
353 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
354 |
- return 0; |
|
353 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
354 |
+ if (!fmts_list) |
|
355 |
+ return AVERROR(ENOMEM); |
|
356 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
355 | 357 |
} |
356 | 358 |
|
357 | 359 |
static int config_output(AVFilterLink *outlink) |
... | ... |
@@ -177,9 +177,10 @@ static int query_formats(AVFilterContext *ctx) |
177 | 177 |
AV_PIX_FMT_YUVA420P, AV_PIX_FMT_GRAY8, |
178 | 178 |
AV_PIX_FMT_NONE |
179 | 179 |
}; |
180 |
- |
|
181 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
182 |
- return 0; |
|
180 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
181 |
+ if (!fmts_list) |
|
182 |
+ return AVERROR(ENOMEM); |
|
183 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
183 | 184 |
} |
184 | 185 |
|
185 | 186 |
static av_cold int init(AVFilterContext *ctx) |
... | ... |
@@ -396,10 +396,10 @@ static int query_formats(AVFilterContext *ctx) |
396 | 396 |
AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ420P, AV_PIX_FMT_YUVJ422P, |
397 | 397 |
AV_PIX_FMT_YUVJ444P, AV_PIX_FMT_YUVJ440P, AV_PIX_FMT_NONE |
398 | 398 |
}; |
399 |
- |
|
400 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
401 |
- |
|
402 |
- return 0; |
|
399 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
400 |
+ if (!fmts_list) |
|
401 |
+ return AVERROR(ENOMEM); |
|
402 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
403 | 403 |
} |
404 | 404 |
|
405 | 405 |
static int config_props(AVFilterLink *link) |
... | ... |
@@ -112,9 +112,10 @@ static int query_formats(AVFilterContext *ctx) |
112 | 112 |
AV_PIX_FMT_YUV440P, AV_PIX_FMT_YUVJ440P, |
113 | 113 |
AV_PIX_FMT_NONE |
114 | 114 |
}; |
115 |
- |
|
116 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
117 |
- return 0; |
|
115 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
116 |
+ if (!fmts_list) |
|
117 |
+ return AVERROR(ENOMEM); |
|
118 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
118 | 119 |
} |
119 | 120 |
|
120 | 121 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -78,17 +78,22 @@ static av_cold int init(AVFilterContext *ctx) |
78 | 78 |
static int query_formats(AVFilterContext *ctx) |
79 | 79 |
{ |
80 | 80 |
const EdgeDetectContext *edgedetect = ctx->priv; |
81 |
+ static const enum AVPixelFormat wires_pix_fmts[] = {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; |
|
82 |
+ static const enum AVPixelFormat colormix_pix_fmts[] = {AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; |
|
83 |
+ AVFilterFormats *fmts_list; |
|
84 |
+ const enum AVPixelFormat *pix_fmts = NULL; |
|
81 | 85 |
|
82 | 86 |
if (edgedetect->mode == MODE_WIRES) { |
83 |
- static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; |
|
84 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
87 |
+ pix_fmts = wires_pix_fmts; |
|
85 | 88 |
} else if (edgedetect->mode == MODE_COLORMIX) { |
86 |
- static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_GBRP, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE}; |
|
87 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
89 |
+ pix_fmts = colormix_pix_fmts; |
|
88 | 90 |
} else { |
89 | 91 |
av_assert0(0); |
90 | 92 |
} |
91 |
- return 0; |
|
93 |
+ fmts_list = ff_make_format_list(pix_fmts); |
|
94 |
+ if (!fmts_list) |
|
95 |
+ return AVERROR(ENOMEM); |
|
96 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
92 | 97 |
} |
93 | 98 |
|
94 | 99 |
static int config_props(AVFilterLink *inlink) |
... | ... |
@@ -80,10 +80,10 @@ static int query_formats(AVFilterContext *ctx) |
80 | 80 |
AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, |
81 | 81 |
AV_PIX_FMT_NONE |
82 | 82 |
}; |
83 |
- |
|
84 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
85 |
- |
|
86 |
- return 0; |
|
83 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
84 |
+ if (!fmts_list) |
|
85 |
+ return AVERROR(ENOMEM); |
|
86 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
87 | 87 |
} |
88 | 88 |
|
89 | 89 |
#define NB_COMPONENTS 3 |
... | ... |
@@ -233,10 +233,10 @@ static int query_formats(AVFilterContext *ctx) |
233 | 233 |
AV_PIX_FMT_YUV444P, |
234 | 234 |
AV_PIX_FMT_NONE |
235 | 235 |
}; |
236 |
- |
|
237 |
- ff_set_common_formats(ctx, ff_make_format_list(pixel_fmts_eq)); |
|
238 |
- |
|
239 |
- return 0; |
|
236 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pixel_fmts_eq); |
|
237 |
+ if (!fmts_list) |
|
238 |
+ return AVERROR(ENOMEM); |
|
239 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
240 | 240 |
} |
241 | 241 |
|
242 | 242 |
static int filter_frame(AVFilterLink *inlink, AVFrame *in) |
... | ... |
@@ -855,8 +855,10 @@ static int query_formats(AVFilterContext *ctx) |
855 | 855 |
AV_PIX_FMT_YUV411P, AV_PIX_FMT_YUV410P, |
856 | 856 |
AV_PIX_FMT_NONE |
857 | 857 |
}; |
858 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
859 |
- return 0; |
|
858 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
859 |
+ if (!fmts_list) |
|
860 |
+ return AVERROR(ENOMEM); |
|
861 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
860 | 862 |
} |
861 | 863 |
|
862 | 864 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -155,10 +155,10 @@ static int query_formats(AVFilterContext *ctx) |
155 | 155 |
AV_PIX_FMT_GBRP, |
156 | 156 |
AV_PIX_FMT_NONE |
157 | 157 |
}; |
158 |
- |
|
159 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
160 |
- |
|
161 |
- return 0; |
|
158 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
159 |
+ if (!fmts_list) |
|
160 |
+ return AVERROR(ENOMEM); |
|
161 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
162 | 162 |
} |
163 | 163 |
|
164 | 164 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -99,9 +99,10 @@ static int query_formats(AVFilterContext *ctx) |
99 | 99 |
AV_PIX_FMT_RGB24, AV_PIX_FMT_BGR24, |
100 | 100 |
AV_PIX_FMT_NONE |
101 | 101 |
}; |
102 |
- |
|
103 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
104 |
- return 0; |
|
102 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
103 |
+ if (!fmts_list) |
|
104 |
+ return AVERROR(ENOMEM); |
|
105 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
105 | 106 |
} |
106 | 107 |
|
107 | 108 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -253,10 +253,10 @@ static int query_formats(AVFilterContext *ctx) |
253 | 253 |
AV_PIX_FMT_YUV444P16, |
254 | 254 |
AV_PIX_FMT_NONE |
255 | 255 |
}; |
256 |
- |
|
257 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
258 |
- |
|
259 |
- return 0; |
|
256 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
257 |
+ if (!fmts_list) |
|
258 |
+ return AVERROR(ENOMEM); |
|
259 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
260 | 260 |
} |
261 | 261 |
|
262 | 262 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -462,8 +462,10 @@ HQX_FUNC(4) |
462 | 462 |
static int query_formats(AVFilterContext *ctx) |
463 | 463 |
{ |
464 | 464 |
static const enum AVPixelFormat pix_fmts[] = {AV_PIX_FMT_RGB32, AV_PIX_FMT_NONE}; |
465 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
466 |
- return 0; |
|
465 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
466 |
+ if (!fmts_list) |
|
467 |
+ return AVERROR(ENOMEM); |
|
468 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
467 | 469 |
} |
468 | 470 |
|
469 | 471 |
static int config_output(AVFilterLink *outlink) |
... | ... |
@@ -233,10 +233,10 @@ static int query_formats(AVFilterContext *ctx) |
233 | 233 |
AV_PIX_FMT_YUVA420P, |
234 | 234 |
AV_PIX_FMT_NONE |
235 | 235 |
}; |
236 |
- |
|
237 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
238 |
- |
|
239 |
- return 0; |
|
236 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
237 |
+ if (!fmts_list) |
|
238 |
+ return AVERROR(ENOMEM); |
|
239 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
240 | 240 |
} |
241 | 241 |
|
242 | 242 |
static int config_props(AVFilterLink *inlink) |
... | ... |
@@ -399,10 +399,10 @@ static int query_formats(AVFilterContext *ctx) |
399 | 399 |
AV_PIX_FMT_YUVA420P, |
400 | 400 |
AV_PIX_FMT_NONE |
401 | 401 |
}; |
402 |
- |
|
403 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
404 |
- |
|
405 |
- return 0; |
|
402 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
403 |
+ if (!fmts_list) |
|
404 |
+ return AVERROR(ENOMEM); |
|
405 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
406 | 406 |
} |
407 | 407 |
|
408 | 408 |
static int config_output(AVFilterLink *outlink) |
... | ... |
@@ -107,9 +107,10 @@ static int query_formats(AVFilterContext *ctx) |
107 | 107 |
AV_PIX_FMT_GBRP, AV_PIX_FMT_GBRAP, |
108 | 108 |
AV_PIX_FMT_NONE |
109 | 109 |
}; |
110 |
- |
|
111 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
112 |
- return 0; |
|
110 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
111 |
+ if (!fmts_list) |
|
112 |
+ return AVERROR(ENOMEM); |
|
113 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
113 | 114 |
} |
114 | 115 |
|
115 | 116 |
static av_cold void uninit(AVFilterContext *ctx) |
... | ... |
@@ -63,9 +63,10 @@ static int query_formats(AVFilterContext *ctx) |
63 | 63 |
static const enum AVPixelFormat pix_fmts[] = { |
64 | 64 |
AV_PIX_FMT_BGR24, AV_PIX_FMT_BGRA, AV_PIX_FMT_GRAY8, AV_PIX_FMT_NONE |
65 | 65 |
}; |
66 |
- |
|
67 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
68 |
- return 0; |
|
66 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
67 |
+ if (!fmts_list) |
|
68 |
+ return AVERROR(ENOMEM); |
|
69 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
69 | 70 |
} |
70 | 71 |
|
71 | 72 |
typedef struct OCVContext { |
... | ... |
@@ -130,9 +130,10 @@ static int query_formats(AVFilterContext *ctx) |
130 | 130 |
const enum AVPixelFormat *pix_fmts = s->is_rgb ? rgb_pix_fmts : |
131 | 131 |
s->is_yuv ? yuv_pix_fmts : |
132 | 132 |
all_pix_fmts; |
133 |
- |
|
134 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
135 |
- return 0; |
|
133 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
134 |
+ if (!fmts_list) |
|
135 |
+ return AVERROR(ENOMEM); |
|
136 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
136 | 137 |
} |
137 | 138 |
|
138 | 139 |
/** |
... | ... |
@@ -471,8 +471,10 @@ static int query_formats(AVFilterContext *ctx) |
471 | 471 |
AV_PIX_FMT_RGBA64, AV_PIX_FMT_BGRA64, |
472 | 472 |
AV_PIX_FMT_NONE |
473 | 473 |
}; |
474 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
475 |
- return 0; |
|
474 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
475 |
+ if (!fmts_list) |
|
476 |
+ return AVERROR(ENOMEM); |
|
477 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
476 | 478 |
} |
477 | 479 |
|
478 | 480 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -163,10 +163,10 @@ static int query_formats(AVFilterContext *ctx) |
163 | 163 |
static const enum PixelFormat pix_fmts[] = { |
164 | 164 |
AV_PIX_FMT_YUV420P, AV_PIX_FMT_NONE |
165 | 165 |
}; |
166 |
- |
|
167 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
168 |
- |
|
169 |
- return 0; |
|
166 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
167 |
+ if (!fmts_list) |
|
168 |
+ return AVERROR(ENOMEM); |
|
169 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
170 | 170 |
} |
171 | 171 |
|
172 | 172 |
static int filter_frame(AVFilterLink *inlink, AVFrame *inpic) |
... | ... |
@@ -158,10 +158,10 @@ static int query_formats(AVFilterContext *ctx) |
158 | 158 |
AV_PIX_FMT_YUVA420P, |
159 | 159 |
AV_PIX_FMT_NONE |
160 | 160 |
}; |
161 |
- |
|
162 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
163 |
- |
|
164 |
- return 0; |
|
161 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
162 |
+ if (!fmts_list) |
|
163 |
+ return AVERROR(ENOMEM); |
|
164 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
165 | 165 |
} |
166 | 166 |
|
167 | 167 |
static int config_input(AVFilterLink *inlink) |
... | ... |
@@ -267,8 +267,10 @@ static int query_formats(AVFilterContext *ctx) |
267 | 267 |
AV_PIX_FMT_YUVA420P, |
268 | 268 |
AV_PIX_FMT_NONE |
269 | 269 |
}; |
270 |
- ff_set_common_formats(ctx, ff_make_format_list(pix_fmts)); |
|
271 |
- return 0; |
|
270 |
+ AVFilterFormats *fmts_list = ff_make_format_list(pix_fmts); |
|
271 |
+ if (!fmts_list) |
|
272 |
+ return AVERROR(ENOMEM); |
|
273 |
+ return ff_set_common_formats(ctx, fmts_list); |
|
272 | 274 |
} |
273 | 275 |
|
274 | 276 |
static int config_input(AVFilterLink *inlink) |