\r
BOOST_FOREACH(auto filter_ctx, boost::make_iterator_range(graph_->filters, graph_->filters + graph_->filter_count) | yadif_filter)\r
{\r
- // Don't trust libavfilter format choice.\r
+ // Don't trust that libavfilter chooses optimal format.\r
filter_ctx->filter->query_formats = [&]() -> int (*)(AVFilterContext*)\r
{\r
switch(frame->format)\r
{\r
- case PIX_FMT_YUV410P: return query_formats_410;\r
- case PIX_FMT_YUV411P: return query_formats_411;\r
- case PIX_FMT_YUV420P: return query_formats_420;\r
- case PIX_FMT_YUV422P: return query_formats_422;\r
- case PIX_FMT_YUV444P: return query_formats_444;\r
- case PIX_FMT_YUVA420P: return query_formats_420a;\r
- case PIX_FMT_UYVY422: return query_formats_422;\r
- case PIX_FMT_YUYV422: return query_formats_422;\r
- case PIX_FMT_UYYVYY411: return query_formats_411;\r
- case PIX_FMT_YUV420P10: return query_formats_420;\r
- case PIX_FMT_YUV422P10: return query_formats_422;\r
- case PIX_FMT_YUV444P10: return query_formats_444;\r
- case PIX_FMT_YUV420P16: return query_formats_420;\r
- case PIX_FMT_YUV422P16: return query_formats_422;\r
- case PIX_FMT_YUV444P16: return query_formats_444;\r
- case PIX_FMT_YUV420P9: return query_formats_420;\r
- case PIX_FMT_YUV422P9: return query_formats_422;\r
- case PIX_FMT_YUV444P9: return query_formats_444;\r
- case PIX_FMT_BGR24: return query_formats_444;\r
- case PIX_FMT_RGB24: return query_formats_444;\r
- case PIX_FMT_BGRA: return query_formats_420a;\r
- case PIX_FMT_RGBA: return query_formats_420a;\r
- case PIX_FMT_ABGR: return query_formats_420a;\r
- case PIX_FMT_ARGB: return query_formats_420a;\r
- default: return filter_ctx->filter->query_formats;\r
+ case PIX_FMT_YUV444P16: \r
+ case PIX_FMT_YUV444P10: \r
+ case PIX_FMT_YUV444P9: \r
+ case PIX_FMT_YUV444P: \r
+ case PIX_FMT_BGR24: \r
+ case PIX_FMT_RGB24: \r
+ return query_formats_444;\r
+ case PIX_FMT_YUV422P16: \r
+ case PIX_FMT_YUV422P10: \r
+ case PIX_FMT_YUV422P9: \r
+ case PIX_FMT_YUV422P: \r
+ case PIX_FMT_UYVY422: \r
+ case PIX_FMT_YUYV422: \r
+ return query_formats_422;\r
+ case PIX_FMT_YUV420P16: \r
+ case PIX_FMT_YUV420P10: \r
+ case PIX_FMT_YUV420P9: \r
+ case PIX_FMT_YUV420P: \r
+ return query_formats_420;\r
+ case PIX_FMT_YUVA420P: \r
+ case PIX_FMT_BGRA: \r
+ case PIX_FMT_RGBA: \r
+ case PIX_FMT_ABGR: \r
+ case PIX_FMT_ARGB: \r
+ return query_formats_420a;\r
+ case PIX_FMT_UYYVYY411: \r
+ case PIX_FMT_YUV411P: \r
+ return query_formats_411;\r
+ case PIX_FMT_YUV410P: \r
+ return query_formats_410;\r
+ default: \r
+ return filter_ctx->filter->query_formats;\r
}\r
}();\r
}\r