dji_liveview.h
5.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
/**
********************************************************************
* @file dji_liveview.h
* @brief This is the header file for "dji_liveview.c", defining the structure and
* (exported) function prototypes.
*
* @copyright (c) 2021 DJI. All rights reserved.
*
* All information contained herein is, and remains, the property of DJI.
* The intellectual and technical concepts contained herein are proprietary
* to DJI and may be covered by U.S. and foreign patents, patents in process,
* and protected by trade secret or copyright law. Dissemination of this
* information, including but not limited to data and other proprietary
* material(s) incorporated within the information, in any form, is strictly
* prohibited without the express written consent of DJI.
*
* If you receive this source code without DJI’s authorization, you may not
* further disseminate the information, and you must immediately remove the
* source code and notify DJI of its removal. DJI reserves the right to pursue
* legal actions against you for any loss(es) or damage(s) caused by your
* failure to do so.
*
*********************************************************************
*/
/* Define to prevent recursive inclusion -------------------------------------*/
#ifndef DJI_LIVEVIEW_H
#define DJI_LIVEVIEW_H
/* Includes ------------------------------------------------------------------*/
#include "dji_typedef.h"
#ifdef __cplusplus
extern "C" {
#endif
/* Exported constants --------------------------------------------------------*/
/* Exported types ------------------------------------------------------------*/
/**
* @brief Liveview camera mount position.
*/
typedef enum {
DJI_LIVEVIEW_CAMERA_POSITION_NO_1 = DJI_MOUNT_POSITION_PAYLOAD_PORT_NO1,
DJI_LIVEVIEW_CAMERA_POSITION_NO_2 = DJI_MOUNT_POSITION_PAYLOAD_PORT_NO2,
DJI_LIVEVIEW_CAMERA_POSITION_NO_3 = DJI_MOUNT_POSITION_PAYLOAD_PORT_NO3,
DJI_LIVEVIEW_CAMERA_POSITION_FPV = 7
} E_DjiLiveViewCameraPosition;
/**
* @brief Liveview camera stream source.
*/
typedef enum {
DJI_LIVEVIEW_CAMERA_SOURCE_DEFAULT = 0,
DJI_LIVEVIEW_CAMERA_SOURCE_H20_WIDE = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_H20_ZOOM = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_H20T_WIDE = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_H20T_ZOOM = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_H20T_IR = 3,
DJI_LIVEVIEW_CAMERA_SOURCE_H20N_WIDE = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_H20N_ZOOM = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_H20N_IR = 3,
DJI_LIVEVIEW_CAMERA_SOURCE_M30_ZOOM = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M30_WIDE = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_M30T_ZOOM = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M30T_WIDE = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_M30T_IR = 3,
DJI_LIVEVIEW_CAMERA_SOURCE_M3E_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M3T_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M3T_IR = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_M3D_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M3TD_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M3TD_IR = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_M4E_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M4T_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M4T_IR = 2,
DJI_LIVEVIEW_CAMERA_SOURCE_M4D_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M4TD_VIS = 1,
DJI_LIVEVIEW_CAMERA_SOURCE_M4TD_IR = 2,
} E_DjiLiveViewCameraSource;
/**
* @brief Liveview camera h264 stream callback.
*/
typedef void (*DjiLiveview_H264Callback)(E_DjiLiveViewCameraPosition position, const uint8_t *buf, uint32_t len);
/* Exported functions --------------------------------------------------------*/
/**
* @brief Initialize the liveview module.
* @note Must be called after DjiCore_Init.
* @return Execution result.
*/
T_DjiReturnCode DjiLiveview_Init(void);
/**
* @brief Deinitialize the liveview module.
* @return Execution result.
*/
T_DjiReturnCode DjiLiveview_Deinit(void);
/**
* @brief Start the FPV or camera H264 stream from the specified position.
* @param position: Camera position for the H264 stream output.
* @param source: sub-camera source for the H264 stream output.
* @param callback: Callback function in a callback thread when a new h264 frame is received
* @return Execution result.
*/
T_DjiReturnCode DjiLiveview_StartH264Stream(E_DjiLiveViewCameraPosition position, E_DjiLiveViewCameraSource source,
DjiLiveview_H264Callback callback);
/**
* @brief Stop the FPV or Camera H264 Stream from the specified position.
* @param position: Camera position for the H264 stream output.
* @param source: sub-camera source for the H264 stream output.
* @return Execution result.
*/
T_DjiReturnCode DjiLiveview_StopH264Stream(E_DjiLiveViewCameraPosition position, E_DjiLiveViewCameraSource source);
/**
* @brief Request the intraframe Frame of camera H264 stream from the specified position.
* @param position: Camera position for the H264 stream output.
* @param source: sub-camera source for the H264 stream output.
* @return Execution result.
*/
T_DjiReturnCode DjiLiveview_RequestIntraframeFrameData(E_DjiLiveViewCameraPosition position,
E_DjiLiveViewCameraSource source);
#ifdef __cplusplus
}
#endif
#endif // DJI_LIVEVIEW_H
/************************ (C) COPYRIGHT DJI Innovations *******END OF FILE******/