PushVideoFrame function

int PushVideoFrame(
  1. String params,
  2. Uint8List data,
  3. List<double>? transformMatrix
)

Implementation

int PushVideoFrame(
    String params, Uint8List data, List<double>? transformMatrix) {
  final Pointer<Uint8> dataPtr = calloc<Uint8>(data.length);
  dataPtr.asTypedList(data.length).setAll(0, data);

  Pointer<Double>? matrixPtr;
  if (transformMatrix != null) {
    matrixPtr = calloc<Double>(transformMatrix.length);
    for (var i = 0; i < transformMatrix.length; i++) {
      matrixPtr[i] = transformMatrix[i];
    }
  }

  try {
    if (matrixPtr != null) {
      return _bindings.PushVideoFrame(
          params.toNativeUtf8().cast(), dataPtr, matrixPtr);
    } else {
      return _bindings.PushVideoFrame(
          params.toNativeUtf8().cast(), dataPtr, nullptr);
    }
  } finally {
    calloc.free(dataPtr);
    if (matrixPtr != null) {
      calloc.free(matrixPtr);
    }
  }
}