AG903ライブラリリファレンス
内容インデックスホーム
前へ上へ次へ
vidmgr.h

VID Manager Header

VID Manager Layer.

none

AXELL CORPORATION

2017_02_22 初版 

2017_10_26 Ver2.0

1: 9: 10: 14: 15: #ifndef VIDMGR_H 16: #define VIDMGR_H 17: 18: 19: #ifdef __cplusplus 20: extern "C" { 21: #endif 22: 23: #include <stdint.h> 24: #include <stdbool.h> 25: #include "AG903_errno.h" 26: 27: 28: #define AG903_VID_MGR_MAX_IN_PORTS (2) 29: 30: #define AG903_VID_MGR_MAX_OUT_PORTS (4) 31: 32: 33: #define AG903_VID_MGR_INPUT_HANDLE_ID (0xB1234BBB) 34: 35: #define AG903_VID_MGR_OUTPUT_HANDLE_ID (0xB5678BBB) 36: 37: 38: #define AG903_VID_MGR_INPUT_HANDLE (0) 39: 40: #define AG903_VID_MGR_OUTPUT_HANDLE (1) 41: 42: 43: #define AG903_VID_MGR_24BIT_TO_CH0 (0) 44: 45: #define AG903_VID_MGR_8BITCH0_TO_CH0 (1) 46: 47: #define AG903_VID_MGR_8BITCH1_TO_CH1 (2) 48: 49: #define AG903_VID_MGR_8BITCH01_TO_CH01 (3) 50: 51: #define AG903_VID_MGR_8BITCH0_TO_CH0123 (4) 52: 53: 54: #define AG903_VID_MGR_IO_SIGNAL_INPUT (0) 55: 56: #define AG903_VID_MGR_IO_SIGNAL_OUTPUT (1) 57: 58: 59: #define AG903_VID_MGR_IO_VSYNC_POL_MINUS (0) 60: 61: #define AG903_VID_MGR_IO_VSYNC_POL_PLUS (1) 62: 63: #define AG903_VID_MGR_IO_HSYNC_POL_MINUS (0) 64: 65: #define AG903_VID_MGR_IO_HSYNC_POL_PLUS (1) 66: 67: 68: #define AG903_VID_MGR_IN_DE_POL_MINUS (0) 69: 70: #define AG903_VID_MGR_IN_DE_POL_PLUS (1) 71: 72: 73: #define AG903_VID_MGR_IN_FIELD_POL_MINUS (0) 74: 75: #define AG903_VID_MGR_IN_FIELD_POL_PLUS (1) 76: 77: 78: #define AG903_VID_MGR_IN_CLK_POL_MINUS (0) 79: 80: #define AG903_VID_MGR_IN_CLK_POL_PLUS (1) 81: 82: 83: #define AG903_VID_MGR_MAX_OUT_HORIZONTAL_PULSE_WIDTH (4096) 84: 85: 86: #define AG903_VID_MGR_MAX_OUT_HORIZONTAL_FRONT_PORCH (4096) 87: 88: 89: #define AG903_VID_MGR_MAX_OUT_HORIZONTAL_BACK_PORCH (4096) 90: 91: 92: #define AG903_VID_MGR_MAX_OUT_HORIZONTAL_FRAME_SIZE (4096) 93: 94: 95: #define AG903_VID_MGR_MAX_OUT_VERTICAL_PULSE_WIDTH (4096) 96: 97: 98: #define AG903_VID_MGR_MAX_OUT_VERTICAL_FRONT_PORCH (4096) 99: 100: 101: #define AG903_VID_MGR_MAX_OUT_VERTICAL_BACK_PORCH (4096) 102: 103: 104: #define AG903_VID_MGR_MAX_OUT_VERTICAL_FRAME_SIZE (4096) 105: 106: 107: #define AG903_VID_MGR_TDM_NONE (0) 108: 109: #define AG903_VID_MGR_TDM_FIT_BLANK_SIGNAL (1) 110: 111: #define AG903_VID_MGR_TDM_FIT_TRS_SIGNAL (2) 112: 113: 114: #define AG903_VID_MGR_TRS_EFP_ZERO (0) 115: 116: #define AG903_VID_MGR_TRS_EFP_ONE (1) 117: 118: #define AG903_VID_MGR_TRS_OFP_ZERO (0) 119: 120: #define AG903_VID_MGR_TRS_OFP_ONE (1) 121: 122: 123: #define AG903_VID_MGR_MAX_TRS_VFP (4096) 124: 125: 126: #define AG903_VID_MGR_TRS_HREF_EAV (0) 127: 128: #define AG903_VID_MGR_TRS_HREF_SAV (1) 129: 130: 131: #define AG903_VID_MGR_MAX_TRS_HFP (4095) 132: 133: 134: #define AG903_VID_MGR_MAX_SD_VERTICAL_CYCLE (8192) 135: 136: #define AG903_VID_MGR_MAX_SD_HORIZONTAL_CYCLE (8192) 137: 138: 141: typedef struct _AG903_VidMgrInputHandle { 142: uint32_t id; 143: _Bool is_dirty; 144: uint32_t port_no; 145: uint32_t sync_signal; 146: uint32_t inout_vsync_pol; 147: uint32_t inout_hsync_pol; 148: uint32_t in_de_pol; 149: uint32_t in_field_pol; 150: uint32_t in_clk_pol; 151: uint32_t h_pulse_width; 152: uint32_t h_front_porch; 153: uint32_t h_back_porch; 154: uint32_t h_frame_size; 155: uint32_t v_pulse_width; 156: uint32_t v_front_porch; 157: uint32_t v_back_porch; 158: uint32_t v_frame_size; 159: } AG903_VidMgrInputHandle; 160: 161: 164: typedef struct _AG903_VidMgrOutputHandle { 165: uint32_t id; 166: _Bool is_dirty; 167: uint32_t port_no; 168: uint32_t tdm; 169: _Bool delay; 170: _Bool trs_dec_enable; 171: uint32_t trs_efp; 172: uint32_t trs_ofp; 173: uint32_t trs_vfp; 174: uint32_t trs_href; 175: uint32_t trs_hfp; 176: uint32_t v_max; 177: uint32_t h_max; 178: } AG903_VidMgrOutputHandle; 179: 180: 181: int32_t AG903_VidMgrEnable(_Bool enable); 182: int32_t AG903_VidMgrSetInputFormat(uint32_t format); 183: int32_t AG903_VidMgrGetInputHandle(int32_t *ports, int32_t num_ports, AG903_VidMgrInputHandle **handles); 184: int32_t AG903_VidMgrReleaseInputHandle(AG903_VidMgrInputHandle *handle); 185: int32_t AG903_VidMgrGetOutputHandle(int32_t *ports, int32_t num_ports, AG903_VidMgrOutputHandle **handles); 186: int32_t AG903_VidMgrReleaseOutputHandle(AG903_VidMgrOutputHandle *handle); 187: int32_t AG903_VidMgrCommitSetting(void); 188: int32_t AG903_VidMgrCheckHandleValidation(void *handle, int32_t handle_type); 189: int32_t AG903_VidMgrSetIOSignal(AG903_VidMgrInputHandle *handle, uint32_t inout); 190: int32_t AG903_VidMgrSetIOMode(AG903_VidMgrInputHandle *handle, uint32_t v_pol, uint32_t h_pol, uint32_t d_pol, uint32_t f_pol, uint32_t c_pol); 191: int32_t AG903_VidMgrSetIOParameter(AG903_VidMgrInputHandle *handle, uint32_t h_pw, uint32_t h_fp, uint32_t h_bp, uint32_t h_fs, uint32_t v_pw, uint32_t v_fp, uint32_t v_bp, uint32_t v_fs); 192: int32_t AG903_VidMgrGetIODotClk(AG903_VidMgrInputHandle *handle, uint32_t *cwt); 193: int32_t AG903_VidMgrSetCaptureTDMMode(AG903_VidMgrOutputHandle *handle, uint32_t tdm); 194: int32_t AG903_VidMgrEnableCaptureDelay(AG903_VidMgrOutputHandle *handle, _Bool delay); 195: int32_t AG903_VidMgrEnableTRSDecode(AG903_VidMgrOutputHandle *handle, _Bool trs_dec); 196: int32_t AG903_VidMgrSetTRSParameter(AG903_VidMgrOutputHandle *handle, uint32_t efp, uint32_t ofp, uint32_t vfp, uint32_t href, uint32_t hfp); 197: int32_t AG903_VidMgrSetDetectionCycle(AG903_VidMgrOutputHandle *handle, uint32_t v_max, uint32_t h_max); 198: int32_t AG903_VidMgrGetOutputState(AG903_VidMgrOutputHandle *handle, uint32_t *blk_val, uint32_t *trs_val, uint32_t *v_blank, uint32_t *h_blank, uint32_t *tdm_ch); 199: 200: 201: #ifdef __cplusplus 202: } 203: #endif 204: 205: 206: #endif
名前 
説明 
入力フォーマット 24bit(RGB888、YCbCr444)Ch0出力 
入力フォーマット 8bit Ch0入力(YCbCr422)Ch0出力 
入力フォーマット 8bit Ch0入力 4chピクセルTDM(YCbCr422)Ch0-3出力 
入力フォーマット 8bit Ch0、1入力(YCbCr422)Ch0、1出力 
入力フォーマット 8bit Ch1入力(YCbCr422)Ch1出力 
入力クロックの極性が負論理 
入力クロックの極性が正論理 
入力DEの極性が負論理 
入力DEの極性が正論理 
入力FIELDの極性が負論理 
入力FIELDの極性が正論理 
入力ポートハンドル 
デジタルビデオ入力ポートハンドルを識別するユニークなID 
入出力HSYNCの極性が負論理 
入出力HSYNCの極性が正論理 
同期信号入力 
同期信号出力 
入出力VSYNCの極性が負論理 
入出力VSYNCの極性が正論理 
デジタルビデオ入力ポート数 
水平バックポーチの最大値 
水平フレームサイズの最大値 
水平フロントポーチの最大値 
水平同期信号パルス幅の最大値 
デジタルビデオ出力ポート数 
垂直バックポーチの最大値 
垂直フレームサイズの最大値 
垂直フロントポーチの最大値 
垂直同期信号パルス幅の最大値 
水平同期の最大サイクル数の最大値 
垂直同期の最大サイクル数の最大値 
SAV/EAVからHSYNC立ち上がりまでのサイクル数の最大値 
ブランク期間開始のSAV/EAVからVSYNC立ち上がりFIELD値反映までのサイクル数の最大値 
出力ポートハンドル 
デジタルビデオ出力ポートハンドルを識別するユニークなID 
TDM動作モード BLANK信号のチャネル情報と出力チャンネルを合わせる 
TDM動作モード TRS信号のチャネル情報と出力チャンネルを合わせる 
TDM動作モード 出力チャンネルを合わせる機能を無効 
インタレースモードでEvenフレームのVFPに+1する 
インタレースモードでEvenフレームのVFPに+1しない 
EAVを基準にHSYNCを生成 
SAVを基準にHSYNCを生成 
インタレースモードでOddフレームのVFPに+1する 
インタレースモードでOddフレームのVFPに+1しない 
 
名前 
説明 
 
デジタルビデオ入力ポートハンドル 
 
デジタルビデオ出力ポートハンドル 
 
デジタルビデオ入力ポートハンドル 
 
デジタルビデオ出力ポートハンドル 
Copyright (c) 2017-2025 Axell Corporation. All rights reserved.