VideoMgmt_Thread_Single.c 1.6 KB
/**************************************************
 * 
 *    文件名: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;
}