JZ_h150s_h150t.c
3.9 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
134
135
136
137
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include <pthread.h>
#include "JZsdk_Hal.h"
#include "Megaphone/Megaphone.h"
#include "AudioDeal/AudioDeal.h"
#include "Gimbal/Gimbal.h"
#include "MediaProc/MediaProc.h"
typedef struct T_H150S_Info
{
JZsdk_CameraInfo *CamereInfo;
}T_H150S_Info;
static T_H150S_Info g_H150S_Info;
#define JZ_H150S_OPT_WIDTH 1920
#define JZ_H150S_OPT_HEIGHT 1080
#define JZ_H150S_OPT_FRAMERATE 25
#define JZ_H150S_OPT_INDEX VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST
#define JZ_H150S_OPT_DEV_PATH ("/dev/video0")
#define JZ_H150S_OPT_PIXEL V4L2_PIX_FMT_H264
#define JZ_H150S_OPT_BRIGHTNESS (80) //亮度,该摄像头亮度范围为 1-255 默认128
#define JZ_H150S_OPT_CONTRAST (155) //对比度,摄像头对比度范围为 1-255 默认128
#define JZ_H150S_OPT_SATURATION (128) //饱和度 摄像头饱和度范围为 1-255 默认128
static T_JZsdkReturnCode JZ_h150s_h150t_PushFrame(int CameraIndex,unsigned char *data, int data_len)
{
int currentIndex = VideoMgmt_GetVideoStreamFlowIndexNum(); //获取当前视频流索引
//无视频流
if (currentIndex == 0)
{
//不推送视频
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
//相机
if (currentIndex == JZ_H150S_OPT_INDEX && CameraIndex == JZ_H150S_OPT_INDEX)
{
//推送数据到流转模块
VideoMgmt_Single_FrameIn(data, data_len);
}
}
static T_JZsdkReturnCode JZ_h150s_h150t_Opt_deal(unsigned char *buf, int len)
{
JZ_h150s_h150t_PushFrame(VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST, buf, len);
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}
/****************************
*
* h150s h150t 初始化
*
* mode psdk为psdk模式 uart为串口模式
*
* ****************************/
T_JZsdkReturnCode JZ_h150s_h150t_init(int mode)
{
T_JZsdkReturnCode ret;
//音频库初始化
AudioDeal_Init();
if (mode == APP_UART)
{
//串口设备1初始化
int value[1];
value[0] = UART_DEV1_BITRATE;
JZsdk_HalPort_Init(UART_DEV_1, value);
}
//h150t额外开启4g
if (DEVICE_VERSION == JZ_H150T)
{
//4g设备初始化
int value[1];
value[0] = COMM_4G_UART_BITRATE;
JZsdk_HalPort_Init(UART_4G, value);
}
if (mode == APP_UART)
{
//网口初始化
JZsdk_NetWork_Init();
}
//喊话器初始化
Megaphone_Init();
//云台初始化
Gimbal_Init(JZ_MODULE_CONTROL_WAY_INDEPENDENT);
//视频流模块初始化
T_JZsdkVideoMgmtHandler VideoMgmtHandler = {
.SetNextFrame_IDR = NULL,
};
VideoMgmt_Init(VideoMgmtHandler);
//相机初始化
g_H150S_Info.CamereInfo = (JZsdk_CameraInfo *)malloc(sizeof(JZsdk_CameraInfo));
if (g_H150S_Info.CamereInfo == NULL)
{
JZSDK_LOG_ERROR("malloc error");
}
memset(g_H150S_Info.CamereInfo, 0, sizeof(JZsdk_CameraInfo));
g_H150S_Info.CamereInfo->width = JZ_H150S_OPT_WIDTH;
g_H150S_Info.CamereInfo->height = JZ_H150S_OPT_HEIGHT;
g_H150S_Info.CamereInfo->FrameNum = JZ_H150S_OPT_FRAMERATE;
g_H150S_Info.CamereInfo->CameraFormat = JZ_H150S_OPT_PIXEL;
memcpy(g_H150S_Info.CamereInfo->CmeraDevPath, JZ_H150S_OPT_DEV_PATH, strlen(JZ_H150S_OPT_DEV_PATH));
g_H150S_Info.CamereInfo->ThreadMode = JZSDK_SINGLE_THREAD;
g_H150S_Info.CamereInfo->SingleDataOutput = JZ_h150s_h150t_Opt_deal;
g_H150S_Info.CamereInfo->CameraParam.Brightness = JZ_H150S_OPT_BRIGHTNESS;
g_H150S_Info.CamereInfo->CameraParam.Contrast = JZ_H150S_OPT_CONTRAST;
g_H150S_Info.CamereInfo->CameraParam.Saturation = JZ_H150S_OPT_SATURATION;
ret = Camera_Init(g_H150S_Info.CamereInfo);
if (ret != JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS)
{
JZSDK_LOG_ERROR("光学相机启动失败");
}
VideoMgmt_VideoStreamFlowIndex(JZ_H150S_OPT_INDEX);
JZSDK_LOG_INFO("Module Init success");
}