Skip to main content

Crate kino_core

Crate kino_core 

Source
Expand description

Kino Core - Video Player Library for Kino

This crate provides the core functionality for video playback:

  • HLS manifest parsing and segment management
  • DASH MPD parsing and adaptation
  • Adaptive bitrate (ABR) algorithms
  • Buffer management with prefetching
  • Analytics event emission
  • DRM license acquisition (optional)

§Architecture

┌─────────────────────────────────────────────────────────────────┐
│                      Kino Core                            │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  ┌──────────────┐  ┌──────────────┐  ┌──────────────┐          │
│  │   Manifest   │  │    Buffer    │  │     ABR      │          │
│  │    Parser    │  │   Manager    │  │   Engine     │          │
│  └──────┬───────┘  └──────┬───────┘  └──────┬───────┘          │
│         │                 │                 │                   │
│         └─────────────────┼─────────────────┘                   │
│                           │                                     │
│                    ┌──────┴──────┐                              │
│                    │   Player    │                              │
│                    │   Session   │                              │
│                    └──────┬──────┘                              │
│                           │                                     │
│  ┌──────────────┐  ┌──────┴──────┐  ┌──────────────┐           │
│  │   Analytics  │  │    Event    │  │     DRM      │           │
│  │   Emitter    │  │     Bus     │  │   Manager    │           │
│  └──────────────┘  └─────────────┘  └──────────────┘           │
└─────────────────────────────────────────────────────────────────┘

Re-exports§

pub use error::Error;
pub use error::Result;
pub use manifest::ManifestParser;
pub use manifest::HlsParser;
pub use manifest::DashParser;
pub use buffer::BufferManager;
pub use abr::AbrEngine;
pub use abr::AbrAlgorithm;
pub use session::PlayerSession;
pub use analytics::AnalyticsEvent;
pub use analytics::AnalyticsEmitter;
pub use branding::KinoColors;
pub use branding::KinoTheme;
pub use branding::JsTheme;
pub use branding::CssVariables;
pub use drm::DrmConfig;
pub use drm::DrmManager;
pub use drm::DrmSession;
pub use drm::PsshBox;
pub use captions::WebVttParser;
pub use captions::SrtParser;
pub use types::*;

Modules§

abr
Adaptive Bitrate (ABR) Engine
analytics
Analytics event emission
branding
Kino Branding - Official Purple Squirrel Media color palette
buffer
Buffer management for video playback
captions
Caption parsing - WebVTT and SRT parser
drm
DRM - Digital Rights Management module
error
Error types for Kino Core
manifest
Manifest parsing for HLS and DASH
session
Player Session - Main orchestrator for playback
types
Core types for Kino

Constants§

VERSION
Library version

Functions§

init
Initialize the player library with default configuration