X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;ds=sidebyside;f=core%2Fvideo_format.h;h=58634a827ba742f361900a434051e3ab9fde9418;hb=01d8a61541548cf535791be39d233799eefc4187;hp=2c7ba699ababac0cdfa910f48b0a8339438579dc;hpb=d100d17e81ed61c7638b681989cfdab5276430db;p=casparcg diff --git a/core/video_format.h b/core/video_format.h index 2c7ba699a..58634a827 100644 --- a/core/video_format.h +++ b/core/video_format.h @@ -51,16 +51,30 @@ struct video_format }; }; -struct video_mode +struct field_mode { enum type { - progressive, - lower, - upper, - count, - invalid + empty = 0, + lower = 1, + upper = 2, + progressive = 3 // NOTE: progressive == lower | upper; }; + + static std::wstring print(field_mode::type value) + { + switch(value) + { + case progressive: + return L"progressive"; + case lower: + return L"lower"; + case upper: + return L"upper"; + default: + return L"invalid"; + } + } }; struct video_format_desc @@ -69,7 +83,9 @@ struct video_format_desc size_t width; // output frame width size_t height; // output frame height - video_mode::type mode; // progressive, interlaced upper field first, interlaced lower field first + size_t square_width; + size_t square_height; + field_mode::type field_mode; // progressive, interlaced upper field first, interlaced lower field first double fps; // actual framerate, e.g. i50 = 25 fps, p50 = 50 fps size_t time_scale; size_t duration; @@ -77,6 +93,10 @@ struct video_format_desc size_t size; // output frame size in bytes std::wstring name; // name of output format + size_t audio_sample_rate; + size_t audio_channels; + size_t audio_samples_per_frame; + static const video_format_desc& get(video_format::type format); static const video_format_desc& get(const std::wstring& name); };