| 2354 | } |
| 2355 | |
| 2356 | SwsContext *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 | |
| 2409 | int ff_range_add(RangeList *rl, unsigned int start, unsigned int len) |
| 2410 | { |
no test coverage detected