package com.netsdk.lib.structure; import com.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<