Skip to content

Commit 0be82f7

Browse files
committed
MP4: Add AtomReader::read_u24
1 parent b05bf2c commit 0be82f7

File tree

3 files changed

+7
-2
lines changed

3 files changed

+7
-2
lines changed

lofty/src/mp4/ilst/write.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -767,7 +767,7 @@ fn write_data(flags: u32, data: &[u8], writer: &mut AtomWriterCompanion<'_>) ->
767767
// Version
768768
writer.write_u8(0)?;
769769

770-
writer.write_uint::<BigEndian>(u64::from(flags), 3)?;
770+
writer.write_u24::<BigEndian>(u32::from(flags))?;
771771

772772
// Locale
773773
writer.write_all(&[0; 4])?;

lofty/src/mp4/properties.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -652,7 +652,7 @@ where
652652
// 15 means the sample rate is stored in the next 24 bits
653653
0x0F => {
654654
let sample_rate;
655-
let explicit_sample_rate = stsd.read_u24::<BigEndian>()?;
655+
let explicit_sample_rate = stsd.read_u24()?;
656656
if extended_object_type {
657657
sample_rate = explicit_sample_rate >> 1;
658658
channel_conf = ((explicit_sample_rate >> 4) & 0x0F) as u8;

lofty/src/mp4/read.rs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,11 @@ where
5454
self.reader.read_u16::<BigEndian>()
5555
}
5656

57+
pub(super) fn read_u24(&mut self) -> std::io::Result<u32> {
58+
self.remaining_size = self.remaining_size.saturating_sub(3);
59+
self.reader.read_u24::<BigEndian>()
60+
}
61+
5762
pub(super) fn read_u32(&mut self) -> std::io::Result<u32> {
5863
self.remaining_size = self.remaining_size.saturating_sub(4);
5964
self.reader.read_u32::<BigEndian>()

0 commit comments

Comments
 (0)