3 #include <common/memory/safe_ptr.h>
\r
5 #include <core/video_format.h>
\r
6 #include <core/producer/frame/pixel_format.h>
\r
10 #include <libavutil/pixfmt.h>
\r
14 struct AVFormatContext;
\r
20 struct pixel_format_desc;
\r
22 struct frame_factory;
\r
28 static const PixelFormat CASPAR_PIX_FMT_LUMA = PIX_FMT_MONOBLACK; // Just hijack some unual pixel format.
\r
30 core::field_mode::type get_mode(AVFrame& frame);
\r
31 core::pixel_format::type get_pixel_format(PixelFormat pix_fmt);
\r
32 core::pixel_format_desc get_pixel_format_desc(PixelFormat pix_fmt, size_t width, size_t height);
\r
33 int make_alpha_format(int format); // NOTE: Be careful about CASPAR_PIX_FMT_LUMA, change it to PIX_FMT_GRAY8 if you want to use the frame inside some ffmpeg function.
\r
34 safe_ptr<core::write_frame> make_write_frame(const void* tag, const safe_ptr<AVFrame>& decoded_frame, const safe_ptr<core::frame_factory>& frame_factory, int hints);
\r
36 void fix_meta_data(AVFormatContext& context);
\r