CloudflareStreamVideo constructor

CloudflareStreamVideo({
  1. String? id,
  2. DateTime? uploaded,
  3. int? size,
  4. Watermark? watermark,
  5. bool? requireSignedURLs,
  6. Map? meta,
  7. List<String>? allowedOrigins,
  8. int? maxDurationSeconds,
  9. DateTime? created,
  10. String? preview,
  11. DateTime? modified,
  12. VideoSize? input,
  13. String? thumbnail,
  14. String? animatedThumbnail,
  15. VideoStatus? status,
  16. double? duration,
  17. DateTime? uploadExpiry,
  18. double? thumbnailTimestampPct,
  19. VideoPlaybackInfo? playback,
  20. MediaNFT? nft,
  21. bool? readyToStream,
  22. String? liveInput,
  23. String? customAccountSubdomainUrl,
})

Implementation

CloudflareStreamVideo({
  String? id,
  DateTime? uploaded,
  int? size,
  this.watermark,
  bool? requireSignedURLs,
  this.meta,
  List<String>? allowedOrigins,
  this.maxDurationSeconds,
  DateTime? created,
  String? preview,
  DateTime? modified,
  VideoSize? input,
  String? thumbnail,
  String? animatedThumbnail,
  VideoStatus? status,
  double? duration,
  this.uploadExpiry,
  double? thumbnailTimestampPct,
  VideoPlaybackInfo? playback,
  this.nft,
  bool? readyToStream,
  this.liveInput,
  String? customAccountSubdomainUrl,
})  : id = id ??= '',
      customAccountSubdomainUrl = customAccountSubdomainUrl ??=
          customAccountSubdomainFromUrl(thumbnail),
      uploaded = uploaded ?? DateTime.now(),
      size = size ?? 0,
      requireSignedURLs = requireSignedURLs ?? false,
      allowedOrigins = allowedOrigins ?? [],
      created = created ?? DateTime.now(),
      preview = preview ??
          (id.isNotEmpty
              ? (customAccountSubdomainUrl != null
                  ? '$customAccountSubdomainUrl/$id/watch'
                  : '$watchVideoDeliveryUrl/$id')
              : ''),
      modified = modified ?? DateTime.now(),
      input = input ?? VideoSize(),
      thumbnail = thumbnail ??
          (id.isNotEmpty
              ? '${customAccountSubdomainUrl ?? videoDeliveryUrl}/$id/thumbnails/thumbnail.jpg'
              : ''),
      animatedThumbnail = (id.isNotEmpty
          ? '${customAccountSubdomainUrl ?? videoDeliveryUrl}/$id/thumbnails/thumbnail.gif'
          : ''),
      status = status ?? VideoStatus(),
      duration = duration ?? -1,
      thumbnailTimestampPct = thumbnailTimestampPct ?? 0,
      playback = playback ??
          (id.isNotEmpty
              ? VideoPlaybackInfo(
                  hls:
                      '${customAccountSubdomainUrl ?? videoDeliveryUrl}/$id/manifest/video.m3u8',
                  dash:
                      '${customAccountSubdomainUrl ?? videoDeliveryUrl}/$id/manifest/video.mpd',
                )
              : null),
      readyToStream = readyToStream ?? false;