pub struct SourceBufferCore {
pub id: usize,
pub mime_type: String,
pub updating: bool,
pub buffered: TimeRanges,
pub mode: String,
pub timestamp_offset: f64,
pub append_window_start: f64,
pub append_window_end: f64,
pub samples: Vec<FragSample>,
pub demux: Fmp4Demuxer,
pub owner: usize,
}Expand description
個別トラックの SourceBuffer データ。
【2026-10-17】従来はバイト列を貯めて「100KB = 1 秒」と見なした buffered を返す仮実装だった。
fMP4 を Fmp4Demuxer で解析し、取り出したサンプルの表示時刻から buffered を作る。
Fields§
§id: usize§mime_type: String§updating: bool§buffered: TimeRanges§mode: String"segments"(既定)または "sequence"。
timestamp_offset: f64セグメント内のタイムスタンプに加算するオフセット(秒)。
append_window_start: f64取り込む表示時刻の下限(秒、既定 0.0)。
append_window_end: f64取り込む表示時刻の上限(秒、既定 +∞)。
samples: Vec<FragSample>解析済みのサンプル(復号順。トラック情報は demux.tracks)。
demux: Fmp4Demuxer§owner: usize所属する MediaSource の番号(JS 側の _ms_id。0 は未所属)。
Implementations§
Source§impl SourceBufferCore
impl SourceBufferCore
pub fn new(id: usize, mime_type: &str) -> Self
pub fn set_mode(&mut self, mode: &str) -> Result<(), MseError>
pub fn set_timestamp_offset(&mut self, offset: f64) -> Result<(), MseError>
pub fn set_append_window_start(&mut self, start: f64) -> Result<(), MseError>
pub fn set_append_window_end(&mut self, end: f64) -> Result<(), MseError>
Sourcepub fn change_type(&mut self, mime_type: &str) -> Result<(), MseError>
pub fn change_type(&mut self, mime_type: &str) -> Result<(), MseError>
changeType(type): 同一 SourceBuffer 上で後続セグメントの MIME タイプ・コーデックを切り替える。
Sourcepub fn video_dimensions(&self) -> Option<(u32, u32)>
pub fn video_dimensions(&self) -> Option<(u32, u32)>
初期化セグメント(moov)から得られた映像トラックの (width, height)。
Sourcepub fn append_buffer(&mut self, chunk: &[u8]) -> Result<(), MseError>
pub fn append_buffer(&mut self, chunk: &[u8]) -> Result<(), MseError>
チャンクの追記(appendBuffer)。初期化セグメントもメディアセグメントも、任意の区切りで渡せる。
Sourcefn update_buffered(&mut self)
fn update_buffered(&mut self)
buffered(秒): 最初のトラック(映像があれば映像)のサンプルの表示区間を併合したもの。
Sourcepub fn remove_range(&mut self, start: f64, end: f64)
pub fn remove_range(&mut self, start: f64, end: f64)
remove(start, end): 表示時刻が [start, end) 秒のサンプルを捨てる。
pub fn clear(&mut self)
Auto Trait Implementations§
impl Freeze for SourceBufferCore
impl RefUnwindSafe for SourceBufferCore
impl Send for SourceBufferCore
impl Sync for SourceBufferCore
impl Unpin for SourceBufferCore
impl UnsafeUnpin for SourceBufferCore
impl UnwindSafe for SourceBufferCore
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more