MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / check_script

Function check_script

libavfilter/tests/drawvg.c:231–294  ·  view source on GitHub ↗

Compile and run a script.

Source from the content-addressed store, hash-verified

229
230// Compile and run a script.
231static void check_script(int is_file, const char* source) {
232 int ret;
233
234 AVDictionary *metadata = NULL;
235
236 struct VGSEvalState state;
237 struct VGSParser parser;
238 struct VGSProgram program;
239
240 struct _cairo cairo_ctx = { 0, 0 };
241
242 if (is_file) {
243 uint8_t *s = NULL;
244
245 printf("\n--- %s: %s\n", __func__, av_basename(source));
246
247 ret = ff_load_textfile(NULL, source, &s, NULL);
248 if (ret != 0) {
249 printf("Failed to read %s: %d\n", source, ret);
250 return;
251 }
252
253 source = s;
254 } else {
255 printf("\n--- %s: %s\n", __func__, source);
256 }
257
258 ret = av_dict_parse_string(&metadata, "m.a=1:m.b=2", "=", ":", 0);
259 av_assert0(ret == 0);
260
261 vgs_parser_init(&parser, source);
262
263 ret = vgs_parse(NULL, &parser, &program, 0);
264
265 int init_ret = vgs_eval_state_init(&state, &program, NULL, NULL);
266 av_assert0(init_ret == 0);
267
268 for (int i = 0; i < VAR_COUNT; i++)
269 state.vars[i] = 1 << i;
270
271 vgs_parser_free(&parser);
272
273 if (ret != 0) {
274 printf("%s: vgs_parse = %d\n", __func__, ret);
275 goto exit;
276 }
277
278 state.metadata = metadata;
279 state.cairo_ctx = &cairo_ctx;
280
281 ret = vgs_eval(&state, &program, 0);
282 vgs_eval_state_free(&state);
283
284 if (ret != 0)
285 printf("%s: vgs_eval = %d\n", __func__, ret);
286
287exit:
288 av_dict_free(&metadata);

Callers 1

mainFunction · 0.85

Calls 12

av_basenameFunction · 0.85
ff_load_textfileFunction · 0.85
av_dict_parse_stringFunction · 0.85
vgs_parser_initFunction · 0.85
vgs_parseFunction · 0.85
vgs_eval_state_initFunction · 0.85
vgs_parser_freeFunction · 0.85
vgs_evalFunction · 0.85
vgs_eval_state_freeFunction · 0.85
av_dict_freeFunction · 0.85
vgs_freeFunction · 0.85
av_freeFunction · 0.50

Tested by

no test coverage detected