pub struct BlockGroup {
pub crc32: Option<Crc32>,
pub void: Option<Void>,
pub block: Block,
pub block_additions: Option<BlockAdditions>,
pub block_duration: Option<BlockDuration>,
pub reference_priority: ReferencePriority,
pub reference_block: Vec<ReferenceBlock>,
pub codec_state: Option<CodecState>,
pub discard_padding: Option<DiscardPadding>,
}Expand description
Basic container of information containing a single Block and information specific to that Block.
Fields§
§crc32: Option<Crc32>Optional CRC-32 element for integrity checking.
void: Option<Void>void element, useful for reserving space during writing.
block: BlockBlock containing the actual data to be rendered and a timestamp relative to the Cluster Timestamp; see basics on Block Structure.
block_additions: Option<BlockAdditions>Contain additional binary data to complete the main one; see Codec BlockAdditions section of Matroska codec RFC for more information. An EBML parser that has no knowledge of the Block structure could still see and use/skip these data.
block_duration: Option<BlockDuration>The duration of the Block, expressed in Track Ticks; see timestamp-ticks. The BlockDuration Element can be useful at the end of a Track to define the duration of the last frame (as there is no subsequent Block available), or when there is a break in a track like for subtitle tracks. When not written and with no DefaultDuration, the value is assumed to be the difference between the timestamp of this Block and the timestamp of the next Block in “display” order (not coding order). BlockDuration MUST be set if the associated TrackEntry stores a DefaultDuration value.
reference_priority: ReferencePriorityThis frame is referenced and has the specified cache priority. In cache only a frame of the same or higher priority can replace this frame. A value of 0 means the frame is not referenced.
reference_block: Vec<ReferenceBlock>A timestamp value, relative to the timestamp of the Block in this BlockGroup, expressed in Track Ticks; see timestamp-ticks. This is used to reference other frames necessary to decode this frame. The relative value SHOULD correspond to a valid Block this Block depends on. Historically Matroska Writer didn’t write the actual Block(s) this Block depends on, but some Block in the past. The value “0” MAY also be used to signify this Block cannot be decoded on its own, but without knownledge of which Block is necessary. In this case, other ReferenceBlock MUST NOT be found in the same BlockGroup. If the BlockGroup doesn’t have any ReferenceBlock element, then the Block it contains can be decoded without using any other Block data.
codec_state: Option<CodecState>The new codec state to use. Data interpretation is private to the codec. This information SHOULD always be referenced by a seek entry.
discard_padding: Option<DiscardPadding>Duration of the silent data added to the Block, expressed in Matroska Ticks – i.e., in nanoseconds; see timestamp-ticks (padding at the end of the Block for positive value, at the beginning of the Block for negative value). The duration of DiscardPadding is not calculated in the duration of the TrackEntry and SHOULD be discarded during playback.
Trait Implementations§
Source§impl Clone for BlockGroup
impl Clone for BlockGroup
Source§fn clone(&self) -> BlockGroup
fn clone(&self) -> BlockGroup
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for BlockGroup
impl Debug for BlockGroup
Source§impl Default for BlockGroup
impl Default for BlockGroup
Source§fn default() -> BlockGroup
fn default() -> BlockGroup
Source§impl Element for BlockGroup
impl Element for BlockGroup
Source§fn decode_body(buf: &mut &[u8]) -> Result<Self>
fn decode_body(buf: &mut &[u8]) -> Result<Self>
Source§fn encode_body<B: BufMut>(&self, buf: &mut B) -> Result<()>
fn encode_body<B: BufMut>(&self, buf: &mut B) -> Result<()>
Source§const HAS_DEFAULT_VALUE: bool = false
const HAS_DEFAULT_VALUE: bool = false
Source§impl From<BlockGroup> for ClusterBlock
impl From<BlockGroup> for ClusterBlock
Source§fn from(b: BlockGroup) -> Self
fn from(b: BlockGroup) -> Self
Source§impl PartialEq for BlockGroup
impl PartialEq for BlockGroup
impl Eq for BlockGroup
impl StructuralPartialEq for BlockGroup
Auto Trait Implementations§
impl Freeze for BlockGroup
impl RefUnwindSafe for BlockGroup
impl Send for BlockGroup
impl Sync for BlockGroup
impl Unpin for BlockGroup
impl UnwindSafe for BlockGroup
Blanket Implementations§
Source§impl<T> AsyncReadElement for Twhere
T: Element,
impl<T> AsyncReadElement for Twhere
T: Element,
Source§impl<T> AsyncReadFrom for Twhere
T: Element,
impl<T> AsyncReadFrom for Twhere
T: Element,
Source§impl<T> AsyncWriteElement for Twhere
T: Element,
impl<T> AsyncWriteElement for Twhere
T: Element,
Source§fn async_write_element<W: AsyncWrite + Unpin>(
&self,
header: &Header,
w: &mut W,
) -> impl Future<Output = Result<()>>
fn async_write_element<W: AsyncWrite + Unpin>( &self, header: &Header, w: &mut W, ) -> impl Future<Output = Result<()>>
tokio only.Source§impl<T> AsyncWriteTo for Twhere
T: Encode,
impl<T> AsyncWriteTo for Twhere
T: Encode,
Source§async fn async_write_to<W>(&self, w: &mut W) -> Result<(), Error>where
W: AsyncWrite + Unpin,
async fn async_write_to<W>(&self, w: &mut W) -> Result<(), Error>where
W: AsyncWrite + Unpin,
tokio only.