return 0;\r
}\r
\r
+static int query_formats_410(AVFilterContext *ctx)\r
+{\r
+ static const int pix_fmts[] = {PIX_FMT_YUV410P, PIX_FMT_NONE};\r
+ avfilter_set_common_pixel_formats(ctx, avfilter_make_format_list(pix_fmts));\r
+ return 0;\r
+}\r
+\r
struct filter::implementation\r
{\r
std::wstring filters_;\r
\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
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