3.4.3 JDK API 说明
1.数据类型定义(data_type)
1.1 枚举类型: media_type
设备媒体类型枚举:
值 | 含义 |
---|---|
MEDIA_TYPE_CANT_STAT | 无法获取设备状态 |
MEDIA_TYPE_UNKNOWN | 未知 |
MEDIA_TYPE_VIDEO | 视频 |
MEDIA_TYPE_VBI | VBI(垂直消隐) |
MEDIA_TYPE_RADIO | 广播 |
MEDIA_TYPE_SDR | SDR(软件定义无线电) |
MEDIA_TYPE_TOUCH | 触摸输入 |
MEDIA_TYPE_SUBDEV | 子设备 |
MEDIA_TYPE_DVB_FRONTEND | 数字电视前端 |
MEDIA_TYPE_DVB_DEMUX | 数字电视解复用 |
MEDIA_TYPE_DVB_DVR | 数字电视录像 |
MEDIA_TYPE_DVB_NET | 数字电视网络 |
MEDIA_TYPE_DTV_CA | 数字电视条件访问 |
MEDIA_TYPE_MEDIA | 媒体设备 |
1.2 枚举类型: codec_type
表示当前设备或上下文是否为编码或解码:
值 | 含义 |
---|---|
NOT_CODEC | 非编解码 |
CODEC_DEC | 解码 |
CODEC_ENC | 编码 |
1.3 结构体:v4l2_ctx
V4L2 捕获及编码上下文结构体定义:
struct v4l2_ctx {
int fd; // 设备文件句柄
unsigned int width; // 视频宽度
unsigned int height; // 视频高度
unsigned int pixelformat; // 输入像素格式
unsigned int out_pixelformat; // 输出像素格式
int nplanes; // 输入平面数
int out_nplanes; // 输出平面数
struct buffer* cap_buffers; // 捕获缓冲区数组
struct buffer* out_buffers; // 输出缓冲区数组
__u32 bytesperline[VIDEO_MAX_PLANES]; // 各输入平面行字节数
__u32 out_bytesperline[VIDEO_MAX_PLANES]; // 各输出平面行字节数
FILE* file[2]; // 输入/输出文件指针
int verbose; // 日志详细等级
enum codec_type ctype; // 编码/解码类型
};