VideoMgmt_Thread_Single.c
1.6 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
/**************************************************
*
* 文件名:VideoMgmt的单线程处理模式
*
* **********************************************************/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include "JZsdkLib.h"
#include "BaseConfig.h"
#include "./VideoMgmt.h"
#include "../MediaParm.h"
#include "./VideoMgmt_Parm.h"
/************************
*
* 视频管理模块
* 单线程模式下的数据输入接口
*
* *************************/
T_JZsdkReturnCode VideoMgmt_Single_FrameIn(unsigned char *FrmaeData,unsigned int FrmaeDataLen)
{
//判断数据是否为空
if(FrmaeData == NULL)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_INVALID_PARAMETER;
}
//判断数据长度是否为空
if(FrmaeDataLen == 0)
{
return JZ_ERROR_SYSTEM_MODULE_CODE_FAILURE;
}
//进行数据后处理,即加入帧头,帧尾等
//如果视频为大疆H264型 或 JZH264型
if (VIDEOMGMT_VIDEO_TPYE == VIDEOMGMT_TPYE_DJIH264 || VIDEOMGMT_VIDEO_TPYE == VIDEOMGMT_TPYE_JZH264 )
{
unsigned char *data = (unsigned char *)malloc(FrmaeDataLen + VIDEO_FRAME_AUD_NO1_LEN);
memcpy(data, FrmaeData, FrmaeDataLen);
memcpy(data + FrmaeDataLen, FrameAudInfo_NO1, VIDEO_FRAME_AUD_NO1_LEN);
FrmaeDataLen = FrmaeDataLen + VIDEO_FRAME_AUD_NO1_LEN;
//将数据输入到流转函数中
VideoMgmt_VideoStreamToDeal(data,FrmaeDataLen);
free(data);
}
else
{
//将数据输入到流转函数中
VideoMgmt_VideoStreamToDeal(FrmaeData,FrmaeDataLen);
}
return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}