package com.iailab.netsdk.lib.structure;
|
|
import com.iailab.netsdk.lib.NetSDKLib;
|
|
/**
|
* @author 291189
|
* @version 1.0
|
* @description
|
* @date 2023/11/18 15:10
|
*/
|
public class NET_VIDEOENC_OPT extends NetSDKLib.SdkStructure{
|
/*视频参数*/
|
/**
|
* 视频使能;1:打开,0:关闭
|
*/
|
public byte byVideoEnable;
|
/**
|
* 码流控制;参照常量"码流控制"定义
|
*/
|
public byte byBitRateControl;
|
/**
|
* 帧率
|
*/
|
public byte byFramesPerSec;
|
/**
|
* 编码模式;参照常量"编码模式"定义
|
*/
|
public byte byEncodeMode;
|
/**
|
* 分辨率;参照常量"分辨率"定义
|
*/
|
public byte byImageSize;
|
/**
|
* 将byImageQlty进行扩展,若byImageQlty为0,抓图配置的ImgQlty为10/30/50/60/80/100六个值,码流配置的ImgQlty值为1-6,兼容之前的1-6档次,若///ImgQltyType为1,则ImgQlty范围为0~100
|
*/
|
public byte byImageQltyData;
|
|
// public byte byImageQlty:7;
|
|
// public byte byImageQltyType:1;
|
|
public short wLimitStream; /// 限码流参数
|
|
/* 音频参数 */
|
|
/**
|
* 音频使能;1:打开,0:关闭
|
*/
|
public byte byAudioEnable;
|
|
/**
|
* 音频编码类型: 0:G711A,1:PCM,2:G711U,3:AMR,4:AAC
|
*/
|
public byte wFormatTag;
|
/**
|
* 声道数
|
*/
|
public short nChannels;
|
/**
|
* 采样深度
|
*/
|
public short wBitsPerSample;
|
/**
|
* 音频叠加使能
|
*/
|
public byte bAudioOverlay;
|
/**
|
* H.264 Profile等级(当编码模式为H264时此参数值有效),参照枚举类型EM_H264_PROFILE_RANK,传0,兼容以前,表示该字段无效,不需要考虑级别。
|
*/
|
public byte bH264ProfileRank;
|
/**
|
* 采样率
|
*/
|
public int nSamplesPerSec;
|
/**
|
* I帧间隔帧数量,描述两个I帧之间的P帧个数,0-149
|
*/
|
public byte bIFrameInterval;
|
/**
|
* NSP
|
*/
|
public byte bScanMode;
|
|
public byte bReserved_3;
|
|
public byte bReserved_4;
|
|
public byte getByImageQlty(){
|
byte a=0;
|
byte b=7;
|
return getAnd(byImageQltyData,a,b);
|
}
|
|
public byte getByImageQltyType(){
|
byte a=7;
|
byte b=7+1;
|
return getAnd(byImageQltyData,a,b);
|
}
|
|
/**
|
* 按位与
|
* @param date 原始数据
|
* @param start 需要偏移的位数
|
* @param end 与的位数
|
* @return
|
*/
|
private byte getAnd(byte date,byte start,byte end){
|
|
return (byte) (date>>start&getOr(start,end));
|
}
|
|
/**
|
* 按位与的位数
|
* @param start 开始与的位数
|
* @param end 结束与的位数
|
* @return
|
*/
|
private byte getOr(byte start,byte end){
|
byte result=0;
|
for (int i = 0; i < end-start; i++) {
|
result|=(1<<i);
|
}
|
return result;
|
}
|
}
|