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

Function sws_getCachedContext

libswscale/utils.c:2356–2407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2354}
2355
2356SwsContext *sws_getCachedContext(SwsContext *prev, int srcW,
2357 int srcH, enum AVPixelFormat srcFormat,
2358 int dstW, int dstH,
2359 enum AVPixelFormat dstFormat, int flags,
2360 SwsFilter *srcFilter,
2361 SwsFilter *dstFilter,
2362 const double *param)
2363{
2364 SwsContext *sws;
2365 static const double default_param[2] = { SWS_PARAM_DEFAULT,
2366 SWS_PARAM_DEFAULT };
2367
2368 if (!param)
2369 param = default_param;
2370
2371 if (prev && (prev->src_w == srcW &&
2372 prev->src_h == srcH &&
2373 prev->src_format == srcFormat &&
2374 prev->dst_w == dstW &&
2375 prev->dst_h == dstH &&
2376 prev->dst_format == dstFormat &&
2377 prev->flags == flags &&
2378 prev->scaler_params[0] == param[0] &&
2379 prev->scaler_params[1] == param[1])) {
2380 return prev;
2381 }
2382
2383 if (!(sws = sws_alloc_context())) {
2384 sws_free_context(&prev);
2385 return NULL;
2386 }
2387
2388 if (prev) {
2389 av_opt_copy(sws, prev);
2390 sws_free_context(&prev);
2391 }
2392
2393 sws->src_w = srcW;
2394 sws->src_h = srcH;
2395 sws->src_format = srcFormat;
2396 sws->dst_w = dstW;
2397 sws->dst_h = dstH;
2398 sws->dst_format = dstFormat;
2399 sws->flags = flags;
2400 sws->scaler_params[0] = param[0];
2401 sws->scaler_params[1] = param[1];
2402
2403 if (sws_init_context(sws, srcFilter, dstFilter) < 0)
2404 sws_free_context(&sws);
2405
2406 return sws;
2407}
2408
2409int ff_range_add(RangeList *rl, unsigned int start, unsigned int len)
2410{

Callers 2

video_image_displayFunction · 0.85
alloc_sws_contextFunction · 0.85

Calls 4

sws_alloc_contextFunction · 0.85
sws_free_contextFunction · 0.85
av_opt_copyFunction · 0.85
sws_init_contextFunction · 0.85

Tested by

no test coverage detected