Skip to main content

Module mse

Module mse 

Source
Expand description

W3C Media Source Extensions (MSE) 仕様準拠コアモジュール

MediaSource、SourceBuffer、SourceBufferList、TimeRanges の状態機械および ストリーミング動画チャンク(fMP4 / WebM)のバッファリング管理を提供する。 ハードウェア非依存の純粋ロジックであり、ホストテスト環境でも高速・安全に検証可能。

Structs§

MediaSourceCore
MediaSource の純粋コア実装
PlaybackStatus
再生スレッドが書き、JS(currentTime/paused/ended/getVideoPlaybackQuality)と 描画ループ(timeupdate/ended イベント)が読む再生状態。 【2026-10-17】従来の currentTime 等は内部属性を返すだけで、実際の再生と無関係だった。
SourceBufferCore
個別トラックの SourceBuffer データ。 【2026-10-17】従来はバイト列を貯めて「100KB = 1 秒」と見なした buffered を返す仮実装だった。 fMP4 を Fmp4Demuxer で解析し、取り出したサンプルの表示時刻から buffered を作る。
TimeRange
再生時間範囲(TimeRanges)
TimeRanges

Enums§

MediaRequest
JS の <video>.play() / .pause() からホスト(描画ループ)への再生要求。 【2026-10-17】従来の play() は内部属性を書き換えるだけで、実際の再生は始まらなかった。
MediaSourceReadyState
MediaSource のライフサイクル状態
MseError
MSE エラー

Statics§

MEDIA_REQUEST
最新の要求 1 つ(描画ループが take する)。
PLAYBACK
SEEK_REQUEST
video.currentTime = t(秒)によるシーク要求。再生スレッドが取り出す。

Functions§

scale_pcm_samples
デコード済み 16-bit PCM サンプル列に音量(0.0〜1.0)とミュート状態を適用する。
select_audio_samples_in_window
音声トラックのサンプル列から、after_dts より後かつ pts_sec <= max_pts_sec の範囲にある 最大 max_frames 個のサンプル payload と最後の dts を取り出す。 映像再生と並行して音声を小分けにストリーミング供給するために使う。