Expand description
W3C Media Source Extensions (MSE) 仕様準拠コアモジュール
MediaSource、SourceBuffer、SourceBufferList、TimeRanges の状態機械および
ストリーミング動画チャンク(fMP4 / WebM)のバッファリング管理を提供する。
ハードウェア非依存の純粋ロジックであり、ホストテスト環境でも高速・安全に検証可能。
Structs§
- Media
Source Core - MediaSource の純粋コア実装
- Playback
Status - 再生スレッドが書き、JS(
currentTime/paused/ended/getVideoPlaybackQuality)と 描画ループ(timeupdate/endedイベント)が読む再生状態。 【2026-10-17】従来のcurrentTime等は内部属性を返すだけで、実際の再生と無関係だった。 - Source
Buffer Core - 個別トラックの SourceBuffer データ。
【2026-10-17】従来はバイト列を貯めて「100KB = 1 秒」と見なした buffered を返す仮実装だった。
fMP4 を
Fmp4Demuxerで解析し、取り出したサンプルの表示時刻から buffered を作る。 - Time
Range - 再生時間範囲(TimeRanges)
- Time
Ranges
Enums§
- Media
Request - JS の
<video>.play()/.pause()からホスト(描画ループ)への再生要求。 【2026-10-17】従来のplay()は内部属性を書き換えるだけで、実際の再生は始まらなかった。 - Media
Source Ready State - 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を取り出す。 映像再生と並行して音声を小分けにストリーミング供給するために使う。