bool try_make_gray(const safe_ptr<AVFrame>& frame)\r
{\r
auto pix_fmt = get_pixel_format(static_cast<PixelFormat>(frame->format));\r
- if(pix_fmt != core::pixel_format::invalid)\r
+ if(pix_fmt == PIX_FMT_RGBA || pix_fmt == PIX_FMT_BGRA)\r
frame->format = PIX_FMT_GRAY8;\r
\r
return pix_fmt != core::pixel_format::invalid;\r
const auto height = decoded_frame->height;\r
auto desc = get_pixel_format_desc(static_cast<PixelFormat>(decoded_frame->format), width, height);\r
\r
+ // TODO: Can't handle YUV as alpha\r
+ if(hints & core::frame_producer::ALPHA_HINT && (desc.pix_fmt == core::pixel_format::ycbcr || desc.pix_fmt == core::pixel_format::ycbcra))\r
+ desc.pix_fmt = core::pixel_format::invalid;\r
+\r
if(desc.pix_fmt == core::pixel_format::invalid)\r
{\r
auto pix_fmt = static_cast<PixelFormat>(decoded_frame->format);\r