use crate::flv::{FLV_HEADER_LENGTH, PREVIOUS_TAG_SIZE_LENGTH};
#[derive(Debug)]
pub struct FlvHeader {
pub(crate) flags: u8, }
impl FlvHeader {
pub fn as_bytes(&self) -> [u8; FLV_HEADER_LENGTH] {
[
0x46, 0x4C, 0x56, 1, self.flags, 0x00, 0x00, 0x00, 0x09, ]
}
pub fn as_bytes_with_previous_tag_size(
&self,
) -> [u8; FLV_HEADER_LENGTH + PREVIOUS_TAG_SIZE_LENGTH] {
let mut bytes = [0u8; FLV_HEADER_LENGTH + PREVIOUS_TAG_SIZE_LENGTH];
bytes[0..FLV_HEADER_LENGTH].copy_from_slice(&self.as_bytes());
bytes
}
pub fn flags(&self) -> u8 {
self.flags
}
pub fn has_audio(&self) -> bool {
(self.flags & 0x04) != 0
}
pub fn has_video(&self) -> bool {
(self.flags & 0x01) != 0
}
}