package netmanager.lib.playmanager;

import com.sun.jna.Structure;

public class PlayEnums {

	// 语言种类
	public static class ENUM_RENDER_TYPE extends Structure
	{
		// 智能数据渲染
		public static final int RENDER_TYPE_INTL = 0x63;
		// 动检数据渲染
		public static final int RENDER_TYPE_MOTION = 0x65;
	};
	
	// YUV 数据类型
	public static class ENUM_YUV_TYPE extends Structure
	{
		// UYVY类型的YUV数据
		public static final int TYPE_UYUV = 1;
		// 4:2:0类型YUV数据
		public static final int TYPE_IYUV = 3;
		// RGB32类型YUV数据
		public static final int TYPE_RGB32 = 7;
	};

	// 音频数据类型
	public static class ENUM_AUDIO_DATA_TYPE extends Structure
	{
		// 8位音频数据类型
		public static final int TYPE_AUDIO_DATA_8 = 100;
		// 16位音频数据类型
		public static final int TYPE_AUDIO_DATA_16 = 101;	
	};

	// 帧缓冲类型
	public static class ENUM_MEDIA_BUF_TYPE extends Structure
	{
		// 视频源缓冲
		public static final int TYPE_MEDIA_VIDEO_SRC_BUF = 1;
		// 音频源缓冲
		public static final int TYPE_MEDIA_AUDIO_SRC_BUF = 2;
		// 解码后视频数据缓冲
		public static final int TYPE_MEDIA_VIDEO_RENDER_BUF = 3;
		// 解码后音频数据缓冲
		public static final int TYPE_MEDIA_AUDIO_RENDER_BUF = 4;
	};

	// 多媒体帧类型
	public static class ENUM_MEDIA_FRAME_TYPE extends Structure
	{
		public static final int MEDIA_FRAME_TYPE_VIDEO = 1;		// 视频帧类型
		public static final int MEDIA_FRAME_TYPE_AUDIO = 2;		// 音频帧类型
		public static final int MEDIA_FARMA_TYPE_DATA = 3;		// 数据帧类型
	};

	// 帧子类型
	public static class ENUM_SUB_FRAME_TYPE extends Structure
	{
		public static final int SUB_FRAME_TYPE_VIDEO_I = 0;				// I帧
		public static final int SUB_FRAME_TYPE_VIDEO_P = 1;				// P帧
		public static final int SUB_FRAME_TYPE_VIDEO_B = 2;				// B帧
		public static final int SUB_FRAME_TYPE_VIDEO_S = 3;				// S帧
		
		public static final int SUB_FRAME_TYPE_VIDEO_MJPEG = 8;			// MJPEG
	};

	// 编码格式
	public static class ENUM_VIDEO_ENCODE_TYPE extends Structure
	{
		public static final int VIDEO_ENCODE_TYPE_UNKNOWN = 0x00;		// 未知视频编码格式
		public static final int VIDEO_ENCODE_TYPE_MPEG4 = 0x01;			// MPEG4 视频编码格式
		public static final int VIDEO_ENCODE_TYPE_HISI_H264 = 0x02;		// 海思H264视频编码格式
		public static final int VIDEO_ENCODE_TYPE_JPEG = 0x03;			// 标准JPEG视频编码格式
		
		public static final int VIDEO_ENCODE_TYPE_AVS = 0x07;			// 标准AVS视频编码格式
		public static final int VIDEO_ENCODE_TYPE_STD_H264 = 0x08;		// 标准H264视频编码格式
		public static final int VIDEO_ENCODE_TYPE_MPEG2 = 0x09;			// MPEG2视频编码格式
		
		public static final int VIDEO_ENCODE_TYPE_RY_H264 = 0x0D;		// 我司H264视频编码格式
		public static final int VIDEO_ENCODE_TYPE_RY_H265 = 0x0E;		// 我司H265视频编码格式
	};
	
	public static class ENUM_STREAM_PACKAGE_TYPE extends Structure
	{
		public static final int STREAM_PACKAGE_TYPE_UNKNOWN = 0x00;		// 未知码流
		public static final int STREAM_PACKAGE_TYPE_MPEG4 = 0x01;		// MPEG4
		
		public static final int STREAM_PACKAGE_TYPE_AUDIO = 0x06;		// 音频
		public static final int STREAM_PACKAGE_TYPE_PS = 0x07;			// PS（MPEG-2）
		
		public static final int STREAM_PACKAGE_TYPE_ASF = 0x09;			// ASF
		
		public static final int STREAM_PACKAGE_TYPE_TS = 0x0C;			// TS（MPEG-2）
		public static final int STREAM_PACKAGE_TYPE_SVC = 0x0D;			// SVC
		public static final int STREAM_PACKAGE_TYPE_AVI = 0x0E;			// AVI
		public static final int STREAM_PACKAGE_TYPE_MP4 = 0x0F;			// MP4
		public static final int STREAM_PACKAGE_TYPE_CGI = 0x10;			// CGI
		public static final int STREAM_PACKAGE_TYPE_WAV = 0x11;			// WAV音频
		public static final int STREAM_PACKAGE_TYPE_FLV = 0x12;			// FLV
		
		public static final int STREAM_PACKAGE_TYPE_RYMS = 0x13;		// 我司码流
		
		public static final int STREAM_PACKAGE_TYPE_MKV = 0x14;			// MKV
		public static final int STREAM_PACKAGE_TYPE_RTP = 0x15;			// RTP
		public static final int STREAM_PACKAGE_TYPE_RAW_MPEG4 = 0x16;	// MPEG4裸码流
		public static final int STREAM_PACKAGE_TYPE_RAW_H264 = 0x17;	// H264裸码流
		public static final int STREAM_PACKAGE_TYPE_RAW_H265 = 0x18;	// H265裸码流
		public static final int STREAM_PACKAGE_TYPE_WMV = 0x19;			// WMV
		public static final int STREAM_PACKAGE_TYPE_RAW_MPEG2 = 0x20;	// MPEG2裸码流
		public static final int STREAM_PACKAGE_TYPE_RAW_SVAC = 0x21;	// SVAC裸码流
		public static final int STREAM_PACKAGE_TYPE_MOV = 0x22;			// MOV
		public static final int STREAM_PACKAGE_TYPE_VOB = 0x23;			// VOB
	};
}
