mirror of
https://github.com/Serial-ATA/lofty-rs
synced 2024-09-20 06:11:57 +00:00
MP4: Add AtomReader::read_u24
This commit is contained in:
parent
b05bf2c6c6
commit
0be82f7264
3 changed files with 7 additions and 2 deletions
|
@ -767,7 +767,7 @@ fn write_data(flags: u32, data: &[u8], writer: &mut AtomWriterCompanion<'_>) ->
|
|||
// Version
|
||||
writer.write_u8(0)?;
|
||||
|
||||
writer.write_uint::<BigEndian>(u64::from(flags), 3)?;
|
||||
writer.write_u24::<BigEndian>(u32::from(flags))?;
|
||||
|
||||
// Locale
|
||||
writer.write_all(&[0; 4])?;
|
||||
|
|
|
@ -652,7 +652,7 @@ where
|
|||
// 15 means the sample rate is stored in the next 24 bits
|
||||
0x0F => {
|
||||
let sample_rate;
|
||||
let explicit_sample_rate = stsd.read_u24::<BigEndian>()?;
|
||||
let explicit_sample_rate = stsd.read_u24()?;
|
||||
if extended_object_type {
|
||||
sample_rate = explicit_sample_rate >> 1;
|
||||
channel_conf = ((explicit_sample_rate >> 4) & 0x0F) as u8;
|
||||
|
|
|
@ -54,6 +54,11 @@ where
|
|||
self.reader.read_u16::<BigEndian>()
|
||||
}
|
||||
|
||||
pub(super) fn read_u24(&mut self) -> std::io::Result<u32> {
|
||||
self.remaining_size = self.remaining_size.saturating_sub(3);
|
||||
self.reader.read_u24::<BigEndian>()
|
||||
}
|
||||
|
||||
pub(super) fn read_u32(&mut self) -> std::io::Result<u32> {
|
||||
self.remaining_size = self.remaining_size.saturating_sub(4);
|
||||
self.reader.read_u32::<BigEndian>()
|
||||
|
|
Loading…
Reference in a new issue