00001
00006 #ifndef PDV_INTERLACE_H
00007 #define PDV_INTERLACE_H
00008
00009 #ifdef __cplusplus
00010 extern "C" {
00011 #endif
00012
00013
00014
00015 #define PROCESS_ALL 0
00016 #define PROCESS_SINGLE 1
00017 #define PROCESS_NONE 2
00018
00019 typedef struct _EdtPostProc EdtPostProc;
00020
00021 typedef int (*post_process_f)(void *src,
00022 int width,
00023 int height,
00024 void *dest,
00025 EdtPostProc *pCtrl);
00026
00027 struct _EdtPostProc {
00028
00029 int func_type;
00030
00031
00032
00033
00034
00035
00036
00037 int src_type;
00038 int dest_type;
00039
00040
00041 post_process_f process;
00042
00043
00044 int (*defaultInit)(EdtDev *pDev, struct _EdtPostProc *pProc);
00045
00046 int (*doinplace)();
00047
00048
00049 int process_mode;
00050
00051
00052 int src_depth;
00053 int dest_depth;
00054
00055 int order;
00056 int shrink;
00057 int offset;
00058
00059
00060 int frame_height;
00061
00062
00063 int interlace;
00064
00065
00066 char dll_name[256];
00067
00068 void *dll_handle;
00069
00070 int nTaps;
00071 PdvInterleaveTap taps[MAX_INTLV_TAPS];
00072
00073 } ;
00074
00075
00076 EDTAPI void edt_set_post_process(EdtDev *edt_p, EdtPostProc *pProcessor);
00077
00078 EDTAPI void edt_set_process_mode(EdtDev *edt_p, int mode);
00079
00080 EDTAPI EdtPostProc * edt_get_default_processor(EdtDev *edt_p,
00081 int src_type,
00082 int dest_type,
00083 int func_type);
00084
00085 EDTAPI EdtPostProc * pdv_setup_postproc(PdvDev *pdv_p,
00086 PdvDependent *dd_p,
00087 EdtPostProc *pInCtrl);
00088
00089 EDTAPI int deIntlv_buffers(EdtPostProc *pCtrl,
00090 void *src_p, void *dest_p,
00091 int width, int height);
00092
00093
00094 EDTAPI int
00095 pdv_set_postproc(EdtPostProc *pCtrl,
00096 int depth,
00097 int extdepth,
00098 int frame_height,
00099 int interlace,
00100 int image_offset,
00101 int order,
00102 int n_intlv_taps,
00103 PdvInterleaveTap *taps
00104 );
00105
00106 EDTAPI EdtPostProc *
00107 pdv_lookup_postproc(int interlace,
00108 int src_depth,
00109 int depth
00110 );
00111
00112
00113
00114
00115 EDTAPI int
00116 pdv_unload_postproc_module(EdtPostProc *pCtrl);
00117
00118 EDTAPI int
00119 pdv_load_postproc_module(EdtPostProc *pCtrl,
00120 char *name, int srcdepth, int destdepth);
00121
00122 EDTAPI void
00123 pdv_set_full_bayer_parameters(int nSourceDepth,
00124 double scale[3],
00125 double gamma,
00126 int nBlackOffset,
00127 int bRedRowFirst,
00128 int bGreenPixelFirst,
00129 int quality,
00130 int bias,
00131 int gradientcolor);
00132
00133 #ifdef __cplusplus
00134 }
00135 #endif
00136
00137
00138 #endif