pdv_interlace.h

Go to the documentation of this file.
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 /* disable */
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         /* swinterlace type */
00029         int func_type; 
00030 
00031         /* types are limited to
00032            EDT_TYPE_BYTE
00033            EDT_TYPE_USHORT
00034            EDT_TYPE_BGR
00035            EDT_TYPE_BGRA
00036            */
00037         int src_type;
00038         int dest_type;
00039 
00040         /* pointer to actual processing function */
00041         post_process_f process;
00042 
00043         /* use the pdev (dd_p) to initialize */
00044         int (*defaultInit)(EdtDev *pDev, struct _EdtPostProc *pProc);
00045 
00046         int (*doinplace)();
00047 
00048         /* do for a single frame, or multiples */
00049         int process_mode; 
00050 
00051         /* extra stuff  usually defined in config file */
00052         int src_depth;
00053         int dest_depth;
00054 
00055         int order;
00056         int shrink;
00057         int offset;
00058 
00059         /* actual frame height in multi-frame buffers */
00060         int frame_height;
00061 
00062         /* offset for the odd field in interlaced frames */
00063         int interlace;
00064 
00065         /* file name of dynamically loaded routine */
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 /* Loads external process library */
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

Generated on 19 Jun 2015 by  doxygen 1.4.7