ExternalVideoFrame
外部视频帧。
Dart
(explicitToJson: true, includeIfNull: false)
class ExternalVideoFrame {
const ExternalVideoFrame(
{this.type,
this.format,
this.buffer,
this.stride,
this.height,
this.cropLeft,
this.cropTop,
this.cropRight,
this.cropBottom,
this.rotation,
this.timestamp,
this.eglType,
this.textureId,
this.matrix,
this.metadataBuffer,
this.metadataSize,
this.alphaBuffer,
this.textureSliceIndex});
(name: 'type')
final VideoBufferType? type;
(name: 'format')
final VideoPixelFormat? format;
(name: 'buffer', ignore: true)
final Uint8List? buffer;
(name: 'stride')
final int? stride;
(name: 'height')
final int? height;
(name: 'cropLeft')
final int? cropLeft;
(name: 'cropTop')
final int? cropTop;
(name: 'cropRight')
final int? cropRight;
(name: 'cropBottom')
final int? cropBottom;
(name: 'rotation')
final int? rotation;
(name: 'timestamp')
final int? timestamp;
(name: 'eglType')
final EglContextType? eglType;
(name: 'textureId')
final int? textureId;
(name: 'matrix')
final List<double>? matrix;
(name: 'metadata_buffer', ignore: true)
final Uint8List? metadataBuffer;
(name: 'metadata_size')
final int? metadataSize;
(name: 'alphaBuffer', ignore: true)
final Uint8List? alphaBuffer;
(name: 'texture_slice_index')
final int? textureSliceIndex;
factory ExternalVideoFrame.fromJson(Map<String, dynamic> json) =>
_$ExternalVideoFrameFromJson(json);
Map<String, dynamic> toJson() => _$ExternalVideoFrameToJson(this);
}
type
视频类型。详见 VideoBufferType。
format
像素格式。详见 VideoPixelFormat。
buffer
视频缓冲区。
stride
传入视频帧的行间距,单位为像素而不是字节。对于 Texture,该值指的是 Texture 的宽度。
height
传入视频帧的高度。
eglContext
该参数仅适用于 Texture 格式的视频数据。
- 当使用 Khronos 定义的 OpenGL 接口 (javax.microedition.khronos.egl.*)时,需要将 eglContext 设置给这个字段。
- 当使用 Android 定义的 OpenGL 接口 (android.opengl.*)时,需要将 eglContext 设置给这个字段。
eglType
该参数仅适用于 Texture 格式的视频数据。指该视频帧的 Texture ID。
textureId
该参数仅适用于 Texture 格式的视频数据。为一个输入的 4x4 变换矩阵,典型值为一个单位矩阵。
matrix
该参数仅适用于 Texture 格式的视频数据。为一个输入的 4x4 变换矩阵,典型值为一个单位矩阵。
metadataBuffer
该参数仅适用于 Texture 格式的视频数据。指 MetaData 的数据缓冲区,默认值为
NULL
。metadataSize
该参数仅适用于 Texture 格式的视频数据。指 MetaData 的大小,默认值为
0
。textureSliceIndex
该参数仅适用于 Windows Texture 格式的视频数据。表示在
ID3D11Texture2D
数组中,被视频帧使用的某一个 ID3D11Texture2D
纹理对象的索引。cropLeft
原始数据相关字段。指定左边裁剪掉的像素数量。默认为 0。
该参数仅适用于原始视频数据。
cropTop
原始数据相关字段。指定顶边裁剪掉的像素数量。默认为 0。
该参数仅适用于原始视频数据。
cropRight
原始数据相关字段。指定右边裁剪掉的像素数量。默认为 0。
该参数仅适用于原始视频数据。
cropBottom
原始数据相关字段。指定底边裁剪掉的像素数量。默认为 0。
该参数仅适用于原始视频数据。
rotation
原始数据相关字段。指定是否对传入的视频组做顺时针旋转操作,可选值为 0, 90, 180, 270。默认为 0。
timestamp
传入的视频帧的时间戳,以毫秒为单位。不正确的时间戳会导致丢帧或者音视频不同步。