MediaProc.c 3.0 KB
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <pthread.h>
#include <unistd.h>

#include "JZsdkLib.h"
#include "version_choose.h"
#include "BaseConfig.h"

#include "./VideoMgmt/VideoMgmt.h"
#include "./MultProc/MultProc.h"
#include "./MediaParm.h"
#include "./Camera/Camera.h"
#include "./Camera/Kt_Irc/Kt_Irc.h"

//单线程方案
static T_JZsdkReturnCode MediaProc_SingleThreading()
{
    //如果是150S相机 150T相机
    if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T)
    {
        //1、相机初始化
        Camera_Init(0,FIRST_WIDTH, FIRST_HEIGHT, FIRST_FRAME_NUM);

        //2、转码模块初始化
        VideoStreamTransCode_Init();
    }
}

//多线程方案
static T_JZsdkReturnCode MediaProc_MultiThreading()
{
    //如果是150S相机 150T相机
    if (DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T)
    {
        //1、启动视频流缓冲区模块
        VideoMgmt_init_buffer(&VideoMgmt_FirstVideo_index);

        //2、相机初始化
        Camera_Init(1,FIRST_WIDTH, FIRST_HEIGHT, FIRST_FRAME_NUM);

        //3、启用推流模块
        VideoMgmt_VideoStreamFlow_Init(FIRST_FRAME_NUM, &VideoMgmt_FirstVideo_index, VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST);

        //转码模块
        VideoStreamTransCode_Init();
   
        VideoMgmt_VideoStreamFlowIndex(VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST); //默认推送光学摄像头
    }

    //如果是昆腾相机  红外+光学 则红外为1号,光学为2号
    if (DEVICE_VERSION == JZ_C1)
    {
        //1、启动视频流缓冲区模块
        VideoMgmt_init_buffer(&VideoMgmt_FirstVideo_index);
        VideoMgmt_init_buffer(&VideoMgmt_FirstRaw_index);

        VideoMgmt_init_buffer(&VideoMgmt_SecondVideo_index);
        VideoMgmt_init_buffer(&VideoMgmt_SecondRaw_index);

        //2、初始化编解码处理模块
        JZsdk_Kt_IrcMMP_Init(FIRST_WIDTH ,FIRST_HEIGHT, 25, 5 ,SECOND_WIDTH ,SECOND_HEIGHT, 30, 15);

        //3、相机初始化
        JZsdk_Kt_Irc_Camera_Init();

        //4、启用推流模块
        VideoMgmt_VideoStreamFlow_Init(25, &VideoMgmt_FirstVideo_index, VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST);
        VideoMgmt_VideoStreamFlow_Init(30, &VideoMgmt_SecondVideo_index, VIDEOMGMT_STREAMING_FLOW_INDEX_SECOND);

        //转码模块
        VideoStreamTransCode_Init();

        //5、打开默认选项
        VideoMgmt_VideoStreamFlowIndex(VIDEOMGMT_STREAMING_FLOW_INDEX_FIRST); //默认推送红外摄像头  后续改成 红外+光学 的组合画面
        JZsdk_Kt_Irc_ShutterSwitch(JZ_FLAGCODE_ON);

        //6、修改部分参数
        int value = 8;
        Camera_param(JZ_FLAGCODE_SET, CAMERA_PSEUDO_COLOR, &value);
        value = 1;
        Camera_param(JZ_FLAGCODE_SET, CAMERA_PIXEL_PSEUDO_COLOR_MODE, &value);
    }
    
}

//视频流模块初始化
T_JZsdkReturnCode MediaProc_Init()
{

#if DEVICE_VERSION == JZ_H150S || DEVICE_VERSION == JZ_H150T
    MediaProc_SingleThreading();
# elif DEVICE_VERSION == JZ_C1
    MediaProc_MultiThreading(); 
#endif
    
    return JZ_ERROR_SYSTEM_MODULE_CODE_SUCCESS;
}