summaryrefslogtreecommitdiffstats
path: root/video_in_hal/hal_api/video_in_hal.h
diff options
context:
space:
mode:
Diffstat (limited to 'video_in_hal/hal_api/video_in_hal.h')
-rw-r--r--video_in_hal/hal_api/video_in_hal.h567
1 files changed, 567 insertions, 0 deletions
diff --git a/video_in_hal/hal_api/video_in_hal.h b/video_in_hal/hal_api/video_in_hal.h
new file mode 100644
index 00000000..20b45a04
--- /dev/null
+++ b/video_in_hal/hal_api/video_in_hal.h
@@ -0,0 +1,567 @@
+/*
+ * @copyright Copyright (c) 2017-2020 TOYOTA MOTOR CORPORATION.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef HAL_API_VIDEO_IN_HAL_H_
+#define HAL_API_VIDEO_IN_HAL_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * @file video_in_hal.h
+ * @brief API definition of the function to control video
+ */
+
+/** @addtogroup graphics_service
+ * @{
+ */
+/** @addtogroup video_in_hal
+ * @ingroup graphics_service
+ * @{
+ */
+
+
+/* Monitor state */
+#define VIH_DISP_MONITOR_ON (0) //!< \~english Monitor on
+#define VIH_DISP_MONITOR_OFF (1) //!< \~english Monitor Off
+
+/* Illumination */
+#define VIH_DISP_ILLUMI_INIT (0) //!< \~english Not configured
+#define VIH_DISP_ILLUMI_DAY (1) //!< \~english Day screen
+#define VIH_DISP_ILLUMI_NIGHT (2) //!< \~english Night screen
+#define VIH_DISP_ILLUMI_FOURCE_DAY (3) //!< \~english Force day screen
+#define VIH_DISP_ILLUMI_FOURCE_NIGHT (4) //!< \~english Force night screen
+
+/* Auto dimmer */
+#define VIH_DISP_AUTO_DIMMER_OFF (0) //!< \~english Auto dimmer off
+#define VIH_DISP_AUTO_DIMMER_ON (1) //!< \~english Auto dimmer on
+
+/* MUTE */
+#define VIH_DISP_MUTE_OFF (0) //!< \~english Mute off
+#define VIH_DISP_MUTE_ON (1) //!< \~english Mute on
+
+/* Back light */
+#define VIH_DISP_BACKLIGHT_OFF (0) //!< \~english Back light off
+#define VIH_DISP_BACKLIGHT_ON (1) //!< \~english Back light on
+
+/* Type of video source */
+#define VIH_VIDEO_SOURCE_R_CAMERA (0x00) //!< \~english Rear video camera
+#define VIH_VIDEO_SOURCE_F_CAMERA (0x01) //!< \~english Front video camera
+#define VIH_VIDEO_SOURCE_S_CAMERA (0x02) //!< \~english Side video camera
+#define VIH_VIDEO_SOURCE_STOP (0x03) //!< \~english Stop the video
+#define VIH_VIDEO_SOURCE_DVD (0x04) //!< \~english DVD video
+#define VIH_VIDEO_SOURCE_BD (0x05) //!< \~english BD video
+#define VIH_VIDEO_SOURCE_DTV (0x06) //!< \~english DTV(Built-in)
+#define VIH_VIDEO_SOURCE_EXT_DTV (0x07) //!< \~english DTV(External)
+#define VIH_VIDEO_SOURCE_SD_VIDEO (0x08) //!< \~english SD video
+#define VIH_VIDEO_SOURCE_VTR (0x09) //!< \~english VTR(Built-in)
+#define VIH_VIDEO_SOURCE_VTR2 (0x0A) //!< \~english VTR2(Built-in)
+#define VIH_VIDEO_SOURCE_EXT_VTR (0x0B) //!< \~english VTR(External)
+#define VIH_VIDEO_SOURCE_EXT_NAVI (0x0C) //!< \~english NAVI(External)
+#define VIH_VIDEO_SOURCE_EXT (0x0D) //!< \~english Extension box
+#define VIH_VIDEO_SOURCE__CWORD57__VIDEO (0x0E) //!< \~english _CWORD57_(Video)
+#define VIH_VIDEO_SOURCE__CWORD57__OUT (0x0F) //!< \~english _CWORD57_(Out)
+#define VIH_VIDEO_SOURCE__CWORD57__NAVI (0x10) //!< \~english _CWORD57_(Navi)
+#define VIH_VIDEO_SOURCE_MIRRORLINK (0x11) //!< \~english Mirror link
+#define VIH_VIDEO_SOURCE_USB_VIDEO (0x12) //!< \~english USB video
+#define VIH_VIDEO_SOURCE_MIRACAST (0x16) //!< \~english Miracast
+#define VIH_VIDEO_SOURCE__CWORD27_ (0x17) //!< \~english _CWORD111_
+#define VIH_VIDEO_SOURCE_SD_VIDEO_CPRM (0x18) //!< \~english SD source(CPRM)
+#define VIH_VIDEO_SOURCE_SD_VIDEO_AVCHD (0x19) //!< \~english SD source(AVCHD)
+#define VIH_VIDEO_SOURCE_DIAG_CAMERA (0x1A) //!< \~english Camera diagnosis
+#define VIH_VIDEO_SOURCE_BLANK (0xFE) //!< \~english Blank
+
+/* Type of TV system */
+#define VIH_VIDEO_TVTYPE_NONE (0) //!< \~english Not configured
+#define VIH_VIDEO_TVTYPE_NTSC (1) //!< \~english NTSC
+#define VIH_VIDEO_TVTYPE_PAL (2) //!< \~english PAL
+#define VIH_VIDEO_TVTYPE_SECAM (3) //!< \~english SECAM
+#define VIH_VIDEO_TVTYPE_AUTO (255) //!< \~english Auto
+
+/* de-interlace */
+#define VIH_VIDEO_INTERLACE_DEFAULT (0) //!< \~english Interlaced(Default)
+#define VIH_VIDEO_INTERLACE_REPLICATE (1) //!< \~english Interlaced(Reprica)
+#define VIH_VIDEO_INTERLACE_WEAVE (2) //!< \~english Interlaced(Weave)
+#define VIH_VIDEO_INTERLACE_BOB (3) //!< \~english Interlaced(Bob)
+#define VIH_VIDEO_INTERLACE_AUTO (4) //!< \~english Interlaces(Auto)
+#define VIH_VIDEO_INTERLACE_LINE (5) //!< \~english Interlaces(Line)
+
+/* Aspect */
+#define VIH_VIDEO_ASPECT_NORMAL (0) //!< \~english Normal
+#define VIH_VIDEO_ASPECT_WIDE (1) //!< \~english Wide
+#define VIH_VIDEO_ASPECT_FULL (2) //!< \~english Full
+#define VIH_VIDEO_ASPECT_ZOOM (3) //!< \~english Zoom
+
+/* Aspect Ratio */
+#define VIH_VIDEO_ASPECT_RATIO_DEFAULT (0) //!< \~english Default
+#define VIH_VIDEO_ASPECT_RATIO_4_3 (1) //!< \~english 4:3
+#define VIH_VIDEO_ASPECT_RATIO_16_9 (2) //!< \~english 16:9
+#define VIH_VIDEO_ASPECT_RATIO_4_3_LB (3) //!< \~english 4:3(Letter box)
+
+/* Enable or disable */
+#define VIH_ENABLE (1) //!< \~english Enable
+#define VIH_DISABLE (0) //!< \~english Disable
+
+/* Send information: Control module */
+#define VIH_DISP_SEQ_CTRL 0x0003 //!< \~english Sequence control
+#define VIH_DISP_VCAP1_CTRL 0x0005 //!< \~english Video capture1 control
+#define VIH_DISP_VCAP2_CTRL 0x0006 //!< \~english Video capture2 control
+
+/* Message ID: Put or delete diagnosis code */
+#define VIH_DISP_MAIN_IND_PUTDIAG (0x5200) //!< \~english Put diagnosis code
+#define VIH_DISP_MAIN_IND_DELDIAG (0x5201) //!< \~english Delete diagnosis code
+
+/**
+ * \~english Event ID
+ */
+typedef enum TagVideoInHalEventID {
+ VIH_EVENT_ID_SOURCE, //!< \~english Display source change
+ VIH_EVENT_ID_QUALITY, //!< \~english Set quality(display)
+ VIH_EVENT_ID_VIDEOQUALITY, //!< \~english Set quality(video)
+ VIH_EVENT_ID_ASPECT, //!< \~english Set aspect
+ VIH_EVENT_ID_MONITOR, //!< \~english Set monitor(display)
+ VIH_EVENT_ID_VIDEOVISIBLE, //!< \~english Set video visible(video)
+ VIH_EVENT_ID_MUTE, //!< \~english Set mute
+ VIH_EVENT_ID_BACKLIGHT, //!< \~english Set backlight
+ VIH_EVENT_ID_NUM_MAX
+} VIH_EVENTID;
+
+/**
+ * \~english Control ID
+ */
+typedef enum TagVideoInHalControlID {
+ VIH_CONTROL_ID_SOURCE, //!< \~english Display source change
+ VIH_CONTROL_ID_QUALITY, //!< \~english Set quality(display)
+ VIH_CONTROL_ID_VIDEOQUALITY, //!< \~english Set quality(video)
+ VIH_CONTROL_ID_ASPECT, //!< \~english Set aspect
+ VIH_CONTROL_ID_MONITOR, //!< \~english Set monitor(display)
+ VIH_CONTROL_ID_VIDEOVISIBLE, //!< \~english Set video visible(video)
+ VIH_CONTROL_ID_START_CAPTURE, //!< \~english Start capture
+ VIH_CONTROL_ID_STOP_CAPTURE, //!< \~english Stop capture
+ VIH_CONTROL_ID_TVTYPE, //!< \~english Set TV type
+ VIH_CONTROL_ID_DEINTERLACE, //!< \~english Set de-interlace
+ VIH_CONTROL_ID_VMUTE, //!< \~english Set mute
+ VIH_CONTROL_ID_BACKLIGHT, //!< \~english Set backlight
+ VIH_CONTROL_ID_NUM_MAX
+} VIH_CONTROLID;
+
+/**
+ * \~english Type of video device's return value
+ */
+typedef enum TagVideoInHalRet {
+ VIH_RET_SUCCESS, //!< \~english OK
+ VIH_RET_INVALID_PARAMETER, //!< \~english Invalid parameter
+ VIH_RET_INTERNAL_ERROR, //!< \~english Internal error
+ VIH_RET_NUM_MAX
+} VIH_RET;
+
+/**
+ * \~english context kind
+ */
+typedef enum TagVideoInHalContext {
+ VIH_CONTEXT_DISP = 0, //!< \~english Display
+ VIH_CONTEXT_VIDEO, //!< \~english Video
+ VIH_CONTEXT_NUM_MAX
+} VIH_CONTEXT;
+
+/**
+ * \~english Display ID
+ */
+typedef enum TagVideoInHalDispIdx {
+ VIH_DISP_IDX_MONITOR0, //!< \~english Monitor0 (Front monitor)
+ VIH_DISP_IDX_MONITOR1, //!< \~english Monitor1 (Rear monitor)
+ VIH_DISP_IDX_MONITOR2, //!< \~english Monitor2
+ VIH_DISP_IDX_MONITOR3, //!< \~english Monitor3
+ VIH_DISP_IDX_MONITOR4, //!< \~english Monitor4
+ VIH_DISP_IDX_MONITOR5, //!< \~english Monitor5
+ VIH_DISP_IDX_NUM_MAX
+} VIH_DISP_IDX;
+
+/**
+ * \~english Video ID
+ */
+typedef enum TagVideoInHalVideoOut {
+ VIH_VIDEO_OUT_MONITOR0 = 0, //!< \~english Monitor0 (Front monitor)
+ VIH_VIDEO_OUT_MONITOR1, //!< \~english Monitor1 (Rear monitor)
+ VIH_VIDEO_OUT_MONITOR2, //!< \~english Monitor2
+ VIH_VIDEO_OUT_MONITOR3, //!< \~english Monitor3
+ VIH_VIDEO_OUT_MONITOR4, //!< \~english Monitor4
+ VIH_VIDEO_OUT_MONITOR5, //!< \~english Monitor5
+ VIH_VIDEO_OUT_NONE, //!< \~english Monitor none
+ VIH_VIDEO_OUT_NUM_MAX
+} VIH_VIDEO_OUT;
+
+/**
+ * \~english Structure for display tone color
+ */
+typedef struct TagVideoInHalDispTone {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_DISPTONE;
+
+/**
+ * \~english Structure for display tone hue
+ */
+typedef struct TagVideoInHalDispHue {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_DISPHUE;
+
+/**
+ * \~english Structure for display tone contrast
+ */
+typedef struct TagVideoInHalDispContrast {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_DISPCONTRAST;
+
+/**
+ * \~english Structure for display tone brightness
+ */
+typedef struct TagVideoInHalDispBrightness {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_DISPBRIGHTNESS;
+
+/**
+ * \~english Structure for display image quality parameters
+ */
+typedef struct TagVideoInHalDispParamSetUp {
+ u_int8_t source; //!< \~english Source type for quality setting
+ u_int8_t reserved[3]; //!< \~english Reserved
+ VIH_DISPTONE tone; //!< \~english Tone
+ VIH_DISPHUE hue; //!< \~english Hue
+ VIH_DISPCONTRAST contrast; //!< \~english Contrast
+ VIH_DISPBRIGHTNESS brightness; //!< \~english Brightness
+} VIH_DISP_PARAM_SETUP;
+
+/**
+ * \~english Structure for display parameters
+ */
+typedef struct TagVideoInHalDispParam {
+ u_int8_t monitor; //!< \~english Monitor state
+ u_int8_t reserve[3]; //!< \~english Reserve
+ VIH_DISP_PARAM_SETUP setup; //!< \~english Quality setting
+ u_int8_t illumi; //!< \~english Illumination
+ u_int8_t dimmer; //!< \~english Auto dimmer
+ u_int8_t mute; //!< \~english Mute
+ u_int8_t backlight; //!< \~english Back light
+} VIH_DISPPARAM;
+
+/**
+ * \~english Structure for video tone color
+ */
+typedef struct TagVideoInHalVideoTone {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_VIDEOTONE;
+
+/**
+ * \~english Structure for video tone hue
+ */
+typedef struct TagVideoInHalVideoHue {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_VIDEOHUE;
+
+/**
+ * \~english Structure for video tone contrast
+ */
+typedef struct TagVideoInHalVideoContrast {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_VIDEOCONTRAST;
+
+/**
+ * \~english Structure for video tone brightness
+ */
+typedef struct TagVideoInHalVideoBrightness {
+ int16_t day; //!< \~english Day screen
+ int16_t night; //!< \~english Night screen
+ int16_t force_day; //!< \~english Force day screen
+ int16_t force_night; //!< \~english Force night screen
+} VIH_VIDEOBRIGHTNESS;
+
+/**
+ * \~english Structure for video image quality parameters
+ */
+typedef struct TagVideoInHalVideoParamSetUp {
+ u_int8_t source; //!< \~english Source type for quality setting
+ u_int8_t reserve[3]; //!< \~english reserve
+ VIH_VIDEOTONE tone; //!< \~english Tone
+ VIH_VIDEOHUE hue; //!< \~english Hue
+ VIH_VIDEOCONTRAST contrast; //!< \~english Contrast
+ VIH_VIDEOBRIGHTNESS brightness; //!< \~english Brightness
+} VIH_VIDEO_PARAM_SETUP;
+
+/**
+ * \~english Structure for video position and angle
+ */
+typedef struct TagVideoInHalVideoPos {
+ u_int32_t aspect_x; //!< \~english Display position x
+ u_int32_t aspect_y; //!< \~english Display position y
+ u_int32_t aspect_w; //!< \~english Display width
+ u_int32_t aspect_h; //!< \~english Display height
+} VIH_VIDEOPOS;
+
+/**
+ * \~english Structure for video parameters
+ */
+typedef struct TagVideoInHalVideoParam {
+ u_int8_t source; //!< \~english Video Source
+ u_int8_t type; //!< \~english TV type
+ u_int8_t interlace; //!< \~english De-interlace
+ u_int8_t aspect; //!< \~english Aspect Value
+ VIH_VIDEOPOS angle; //!< \~english Angle
+ VIH_VIDEO_PARAM_SETUP setup; //!< \~english Quality setting
+ u_int8_t monitor; //!< \~english Monitor
+ u_int8_t mute; //!< \~english Mute
+ u_int8_t aspect_ratio; //!< \~english Aspect ratio
+ u_int8_t reserve; //!< \~english Reserve
+ u_int32_t window_priority; //!< \~english Window priority
+} VIH_VIDEOPARAM;
+
+/**
+ * \~english Structure for display identify
+ */
+typedef struct TagVideoInHalDispVideoID {
+ VIH_CONTEXT kind; //!< \~english Context type
+ struct timespec tp; //!< \~english Context create time
+} VIH_DISPVIDEOID;
+
+/**
+ * \~english Structure for display information
+ */
+typedef struct TagVideoInHalDispVideoInfo {
+ VIH_DISPVIDEOID context_id; //!< \~english Context identify
+ u_int32_t dsp_idx; //!< \~english Display index
+ u_int32_t chgflg; //!< \~english Setting change flag
+} VIH_DISPVIDEOINFO;
+
+/**
+ * \~english Structure for display context
+ */
+typedef struct TagVideoInHalDispMngCtx {
+ VIH_DISPVIDEOINFO info; //!< \~english Display information
+ VIH_DISPPARAM disp_param[VIH_DISP_IDX_NUM_MAX]; //!< \~english Display parameter
+ VIH_VIDEOPARAM video_param[VIH_VIDEO_OUT_NUM_MAX]; //!< \~english Video parameter
+} VIH_DISPMNGCTX;
+
+/**
+ * \~english Structure for diagnosis code data
+ */
+typedef struct TagVideoInHalGRMainReqDiagData {
+ uint64_t err_id; //!< \~english Error ID
+ uint16_t videoinhal_code; //!< \~english Code
+ uint8_t reserve1[2]; //!< \~english Reserve
+} VIH_GR_MAIN_REQ_DIAGDATA;
+
+
+/**
+ * \ingroup SendDiagCodeCallBack
+ * \~english @par Brief
+ * Send diagnosis code call back.
+ * \~english @param [in] snd_info
+ * u_int16_t - Send information
+ * \~english @param [in] msg_id
+ * u_int32_t - Message ID
+ * \~english @param [in] diag_data
+ * VIH_GR_MAIN_REQ_DIAGDATA* - Diagnosis code data
+ * \~english @par
+ * u_int16_t snd_info
+ * \~english @code
+ * VIH_DISP_SEQ_CTRL 0x0003 // Sequence control
+ * VIH_DISP_VCAP1_CTRL 0x0005 // Video capture1 control
+ * VIH_DISP_VCAP2_CTRL 0x0006 // Video capture2 control
+ * @endcode
+ * \~english @par
+ * u_int32_t msg_id
+ * \~english @code
+ * VIH_DISP_MAIN_IND_PUTDIAG (0x5200) // Put diagnosis code
+ * VIH_DISP_MAIN_IND_DELDIAG (0x5201) // Delete diagnosis code
+ * @endcode
+ * \~english @par
+ * VIH_GR_MAIN_REQ_DIAGDATA struct
+ * \~english @code
+ * typedef struct TagVideoInHalGRMainReqDiagData
+ * {
+ * uint64_t err_id; // Error ID
+ * uint16_t videoinhal_code; // Videoinhal code
+ * uint8_t reserve1[2]; // Reserve
+ * } VIH_GR_MAIN_REQ_DIAGDATA;
+ * @endcode
+ * \~english @retval 0 : OK
+ * \~english @retval -1 : Invalid parameter
+ * \~english @par Detail
+ * - Notify diagnosis code request to graphics_service.
+ * \~english @par Prerequisite
+ * - None
+ * \~english @par Conditions of processing failure
+ * - When input parameter diag_data is NULL, return with error. [-1]
+ * \~english @par Classification
+ * Public
+ * \~english @par Type
+ * Sync
+ * \~english @see
+ * None
+ */
+typedef int (*SendDiagCodeCallBack)(u_int16_t snd_info, u_int32_t msg_id, VIH_GR_MAIN_REQ_DIAGDATA* diag_data);
+
+/**
+ * \ingroup InitVideo
+ * \~english @par Brief
+ * API to display device initialize.
+ * \~english @param [in] call_back
+ * SendDiagCodeCallBack - Send diagnosis trace code call back function
+ * \~english @retval VIH_RET_SUCCESS : OK
+ * \~english @retval VIH_RET_INVALID_PARAMETER : Invalid parameter
+ * \~english @par Detail
+ * - Display device initialize, init parameter and threads.
+ * - The API can only be used by 1 process.
+ * \~english @par Prerequisite
+ * - None
+ * \~english @par Conditions of processing failure
+ * - When display device driver can not be found, return with error. [VIH_RET_INVALID_PARAMETER]
+ * \~english @par Classification
+ * Public
+ * \~english @par Type
+ * Sync
+ * \~english @see
+ * None
+ */
+VIH_RET InitVideo(SendDiagCodeCallBack call_back);
+
+/**
+ * \ingroup ControlVideo
+ * \~english @par Brief
+ * API to Control display device.
+ * \~english @param [in] pctx
+ * VIH_DISPMNGCTX* - Point of parameter used by control display device
+ * \~english @param [in] event_id
+ * VIH_EVENTID - Event ID
+ * \~english @param [in] control_id
+ * VIH_CONTROLID - Control ID
+ * \~english @par
+ * VIH_DISPMNGCTX struct
+ * \~english @code
+ * typedef struct TagVideoInHalDispMngCtx
+ * {
+ * VIH_DISPVIDEOINFO info; // Information of display
+ * VIH_DISPPARAM disp_param[VIH_DISP_IDX_NUM_MAX]; // Paramter of diaplay
+ * VIH_VIDEOPARAM video_param[VIH_VIDEO_OUT_NUM_MAX]; // Paramter of video
+ * } VIH_DISPMNGCTX;
+ * @endcode
+ * \~english @par
+ * VIH_EVENTID enum
+ * \~english @code
+ * typedef enum TagVideoInHalEventID
+ * {
+ * VIH_EVENT_ID_SOURCE, // Display source change
+ * VIH_EVENT_ID_QUALITY, // Set quality(display)
+ * VIH_EVENT_ID_VIDEOQUALITY, // Set quality(video)
+ * VIH_EVENT_ID_ASPECT, // Set aspect
+ * VIH_EVENT_ID_MONITOR, // Set monitor(display)
+ * VIH_EVENT_ID_VIDEOVISIBLE, // Set video visible(video)
+ * VIH_EVENT_ID_MUTE, // Set mute
+ * VIH_EVENT_ID_BACKLIGHT, // Set backlight
+ * VIH_EVENT_ID_NUM_MAX
+ * } VIH_EVENTID;
+ * @endcode
+ * \~english @par
+ * VIH_CONTROLID enum
+ * \~english @code
+ * typedef enum TagVideoInHalControlID
+ * {
+ * VIH_CONTROL_ID_SOURCE, // Display source change
+ * VIH_CONTROL_ID_QUALITY, // Set quality(display)
+ * VIH_CONTROL_ID_VIDEOQUALITY, // Set quality(video)
+ * VIH_CONTROL_ID_ASPECT, // Set aspect
+ * VIH_CONTROL_ID_MONITOR, // Set monitor(display)
+ * VIH_CONTROL_ID_VIDEOVISIBLE, // Set video visible(video)
+ * VIH_CONTROL_ID_START_CAPTURE, // Start capture
+ * VIH_CONTROL_ID_STOP_CAPTURE, // Stop capture
+ * VIH_CONTROL_ID_TVTYPE, // Set TV type
+ * VIH_CONTROL_ID_DEINTERLACE, // Set de-interlace
+ * VIH_CONTROL_ID_VMUTE, // Set mute
+ * VIH_CONTROL_ID_BACKLIGHT, // Set backlight
+ * VIH_CONTROL_ID_NUM_MAX
+ * } VIH_CONTROLID;
+ * @endcode
+ * \~english @retval VIH_RET_SUCCESS : OK
+ * \~english @retval VIH_RET_INVALID_PARAMETER : Invalid parameter
+ * \~english @retval VIH_RET_INTERNAL_ERROR : Internal error
+ * \~english @par Detail
+ * - Control display device. Include display source, quality(display), quality(video), aspect , monitor, video visible, start capture, stop capture, mute, backlight, TV type, de-interlace.
+ * - The API can only be used by 1 process.
+ * \~english @par Prerequisite
+ * - Call InitVideo()
+ * \~english @par Conditions of processing failure
+ * - The point param is null [VIH_RET_INVALID_PARAMETER]
+ * - The display driver return error [VIH_RET_INTERNAL_ERROR]
+ * \~english @par Classification
+ * Public
+ * \~english @par Type
+ * Fire and Forget
+ * \~english @see
+ * None
+ */
+VIH_RET ControlVideo(VIH_DISPMNGCTX* pctx, VIH_EVENTID event_id, VIH_CONTROLID control_id);
+
+/**
+ * \ingroup TerminateVideo
+ * \~english @par Brief
+ * API to display device Terminate.
+ * \~english @param None
+ * \~english @retval VIH_RET_SUCCESS : OK
+ * \~english @par Detail
+ * - Display device Terminate, init parameter.
+ * - The API can only be used by 1 process.
+ * \~english @par Prerequisite
+ * - Call InitVideo().
+ * \~english @par Conditions of processing failure
+ * - None
+ * \~english @par Classification
+ * Public
+ * \~english @par Type
+ * Sync
+ * \~english @see
+ * None
+ */
+VIH_RET TerminateVideo();
+
+#ifdef __cplusplus
+}
+#endif
+
+/** @}*/ //!< end of video_in_hal
+/** @}*/ //!< end of graphics_service
+
+#endif // HAL_API_VIDEO_IN_HAL_H_