Add pgs color type setting
[xy_vsfilter.git] / src / filters / transform / vsfilter / IDirectVobSubXy.h
blob9b3d310961f896b7527c0dbc520430fc555830e3
1 #pragma once
3 #include "../BaseVideoFilter/BaseVideoFilter.h"
5 #ifdef __cplusplus
6 extern "C" {
7 #endif
8 namespace DirectVobSubXyOptions
10 enum//int
12 INT_COLOR_SPACE = 0,
13 INT_YUV_RANGE,
14 INT_OVERLAY_CACHE_MAX_ITEM_NUM,
15 INT_SCAN_LINE_DATA_CACHE_MAX_ITEM_NUM,
16 INT_PATH_DATA_CACHE_MAX_ITEM_NUM,
17 INT_OVERLAY_NO_BLUR_CACHE_MAX_ITEM_NUM,
19 INT_BITMAP_MRU_CACHE_ITEM_NUM,
20 INT_CLIPPER_MRU_CACHE_ITEM_NUM,
22 INT_TEXT_INFO_CACHE_ITEM_NUM,
23 INT_ASS_TAG_LIST_CACHE_ITEM_NUM,
25 INT_SUBPIXEL_VARIANCE_CACHE_ITEM_NUM,
27 INT_SUBPIXEL_POS_LEVEL,
29 INT_LAYOUT_SIZE_OPT,//see @LayoutSizeOpt
30 INT_COUNT
32 enum//bool
34 BOOL_FOLLOW_UPSTREAM_PREFERRED_ORDER,
35 BOOL_HIDE_TRAY_ICON,
36 BOOL_COUNT
38 enum//SIZE
40 SIZE_ORIGINAL_VIDEO,
41 SIZE_ASS_PLAY_RESOLUTION,
42 SIZE_USER_SPECIFIED_LAYOUT_SIZE,
43 SIZE_LAYOUT_WITH,//read only
44 SIZE_COUNT
46 enum//string
48 STRING_LOAD_EXT_LIST,
49 STRING_PGS_YUV_RANGE,//TV,PC,GUESS(default)
50 STRING_PGS_YUV_MATRIX,//BT601,BT709,GUESS(default)
51 STRING_COUNT
53 enum
55 //[ColorSpaceOpt1...ColorSpaceOptN]
56 //size=N
57 BIN_OUTPUT_COLOR_FORMAT,
58 BIN_INPUT_COLOR_FORMAT,
60 //struct CachesInfo
61 //size = 1
62 BIN_CACHES_INFO,
64 //struct XyFlyWeightInfo
65 //size = 1
66 BIN_XY_FLY_WEIGHT_INFO,
68 BIN_COUNT
70 struct ColorSpaceOpt
72 int color_space;
73 bool selected;
75 struct CachesInfo
77 std::size_t path_cache_cur_item_num, path_cache_query_count,path_cache_hit_count,
78 scanline_cache2_cur_item_num, scanline_cache2_query_count,scanline_cache2_hit_count,
79 non_blur_cache_cur_item_num, non_blur_cache_query_count,non_blur_cache_hit_count,
80 overlay_cache_cur_item_num, overlay_cache_query_count,overlay_cache_hit_count,
81 bitmap_cache_cur_item_num, bitmap_cache_query_count, bitmap_cache_hit_count,
83 interpolate_cache_cur_item_num, interpolate_cache_query_count,interpolate_cache_hit_count,
84 text_info_cache_cur_item_num, text_info_cache_query_count, text_info_cache_hit_count,
85 word_info_cache_cur_item_num, word_info_cache_query_count, word_info_cache_hit_count,
87 scanline_cache_cur_item_num, scanline_cache_query_count,scanline_cache_hit_count,
88 overlay_key_cache_cur_item_num, overlay_key_cache_query_count, overlay_key_cache_hit_count,
89 clipper_cache_cur_item_num, clipper_cache_query_count, clipper_cache_hit_count;
92 struct CacheInfo
94 std::size_t cur_item_num, query_count, hit_count;
96 struct XyFlyWeightInfo
98 CacheInfo xy_fw_string_w;
99 CacheInfo xy_fw_grouped_draw_items_hash_key;
101 enum LayoutSizeOpt
103 LAYOUT_SIZE_OPT_FOLLOW_ORIGINAL_VIDEO_SIZE,
104 LAYOUT_SIZE_OPT_USER_SPECIFIED,
105 LAYOUT_SIZE_OPT_COUNT
109 [uuid("85E5D6F9-BEFB-4E01-B047-758359CDF9AB")]
110 interface IDirectVobSubXy : public IUnknown
112 STDMETHOD(XyGetBool )(int field, bool *value) = 0;
113 STDMETHOD(XyGetInt )(int field, int *value) = 0;
114 STDMETHOD(XyGetSize )(int field, SIZE *value) = 0;
115 STDMETHOD(XyGetRect )(int field, RECT *value) = 0;
116 STDMETHOD(XyGetUlonglong)(int field, ULONGLONG *value) = 0;
117 STDMETHOD(XyGetDouble )(int field, double *value) = 0;
118 STDMETHOD(XyGetString )(int field, LPWSTR *value, int *chars) = 0;
119 STDMETHOD(XyGetBin )(int field, LPVOID *value, int *size ) = 0;
121 STDMETHOD(XySetBool )(int field, bool value) = 0;
122 STDMETHOD(XySetInt )(int field, int value) = 0;
123 STDMETHOD(XySetSize )(int field, SIZE value) = 0;
124 STDMETHOD(XySetRect )(int field, RECT value) = 0;
125 STDMETHOD(XySetUlonglong)(int field, ULONGLONG value) = 0;
126 STDMETHOD(XySetDouble )(int field, double value) = 0;
127 STDMETHOD(XySetString )(int field, LPWSTR value, int chars) = 0;
128 STDMETHOD(XySetBin )(int field, LPVOID value, int size ) = 0;
131 #ifdef __cplusplus
133 #endif