Skip to content

Commit ef53255

Browse files
committed
MP4: Rename skip_unneeded to skip_atom
1 parent 9463c48 commit ef53255

File tree

5 files changed

+34
-26
lines changed

5 files changed

+34
-26
lines changed

lofty/src/mp4/ilst/read.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ use crate::id3::v1::constants::GENRES;
77
use crate::macros::{err, try_vec};
88
use crate::mp4::atom_info::{AtomInfo, ATOM_HEADER_LEN};
99
use crate::mp4::ilst::atom::AtomDataStorage;
10-
use crate::mp4::read::{skip_unneeded, AtomReader};
10+
use crate::mp4::read::{skip_atom, AtomReader};
1111
use crate::picture::{MimeType, Picture, PictureType};
1212
use crate::util::text::{utf16_decode_bytes, utf8_decode};
1313

@@ -37,14 +37,14 @@ where
3737
if let AtomIdent::Fourcc(ref fourcc) = atom.ident {
3838
match fourcc {
3939
b"free" | b"skip" => {
40-
skip_unneeded(&mut ilst_reader, atom.extended, atom.len)?;
40+
skip_atom(&mut ilst_reader, atom.extended, atom.len)?;
4141
continue;
4242
},
4343
b"covr" => {
4444
if parse_options.read_cover_art {
4545
handle_covr(&mut ilst_reader, parsing_mode, &mut tag, &atom)?;
4646
} else {
47-
skip_unneeded(&mut ilst_reader, atom.extended, atom.len)?;
47+
skip_atom(&mut ilst_reader, atom.extended, atom.len)?;
4848
}
4949

5050
continue;
@@ -248,7 +248,7 @@ where
248248
);
249249

250250
pos += next_atom.len;
251-
skip_unneeded(reader, next_atom.extended, next_atom.len)?;
251+
skip_atom(reader, next_atom.extended, next_atom.len)?;
252252
continue;
253253
}
254254

lofty/src/mp4/moov.rs

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use super::atom_info::{AtomIdent, AtomInfo};
22
use super::ilst::read::parse_ilst;
33
use super::ilst::Ilst;
4-
use super::read::{meta_is_full, nested_atom, skip_unneeded, AtomReader};
4+
use super::read::{meta_is_full, nested_atom, skip_atom, AtomReader};
55
use crate::config::ParseOptions;
66
use crate::error::Result;
77
use crate::macros::decode_err;
@@ -28,7 +28,7 @@ impl Moov {
2828
break;
2929
}
3030

31-
skip_unneeded(reader, atom.extended, atom.len)?;
31+
skip_atom(reader, atom.extended, atom.len)?;
3232
}
3333

3434
moov.ok_or_else(|| decode_err!(Mp4, "No \"moov\" atom found"))
@@ -49,7 +49,7 @@ impl Moov {
4949
if let Some(mdia) =
5050
nested_atom(reader, atom.len, b"mdia", parse_options.parsing_mode)?
5151
{
52-
skip_unneeded(reader, mdia.extended, mdia.len)?;
52+
skip_atom(reader, mdia.extended, mdia.len)?;
5353
traks.push(mdia);
5454
}
5555
},
@@ -69,13 +69,13 @@ impl Moov {
6969
ilst = Some(existing_ilst);
7070
}
7171
},
72-
_ => skip_unneeded(reader, atom.extended, atom.len)?,
72+
_ => skip_atom(reader, atom.extended, atom.len)?,
7373
}
7474

7575
continue;
7676
}
7777

78-
skip_unneeded(reader, atom.extended, atom.len)?
78+
skip_atom(reader, atom.extended, atom.len)?
7979
}
8080

8181
Ok(Self { traks, ilst })
@@ -106,7 +106,7 @@ where
106106
}
107107

108108
read += atom.len;
109-
skip_unneeded(reader, atom.extended, atom.len)?;
109+
skip_atom(reader, atom.extended, atom.len)?;
110110
}
111111

112112
if !found_meta {
@@ -138,7 +138,7 @@ where
138138
}
139139

140140
read += atom.len;
141-
skip_unneeded(reader, atom.extended, atom.len)?;
141+
skip_atom(reader, atom.extended, atom.len)?;
142142
}
143143

144144
if found_ilst {

lofty/src/mp4/properties.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
use super::atom_info::{AtomIdent, AtomInfo};
2-
use super::read::{nested_atom, skip_unneeded, AtomReader};
2+
use super::read::{nested_atom, skip_atom, AtomReader};
33
use crate::config::ParsingMode;
44
use crate::error::{LoftyError, Result};
55
use crate::macros::{decode_err, err, try_vec};
@@ -241,13 +241,13 @@ where
241241
if let AtomIdent::Fourcc(fourcc) = atom.ident {
242242
match &fourcc {
243243
b"mdhd" => {
244-
skip_unneeded(reader, atom.extended, atom.len)?;
244+
skip_atom(reader, atom.extended, atom.len)?;
245245
mdhd = Some(atom)
246246
},
247247
b"hdlr" => {
248248
if atom.len < 20 {
249249
log::warn!("Incomplete 'hdlr' atom, skipping");
250-
skip_unneeded(reader, atom.extended, atom.len)?;
250+
skip_atom(reader, atom.extended, atom.len)?;
251251
continue;
252252
}
253253

@@ -261,18 +261,18 @@ where
261261
audio_track = true
262262
}
263263

264-
skip_unneeded(reader, atom.extended, atom.len - 12)?;
264+
skip_atom(reader, atom.extended, atom.len - 12)?;
265265
},
266266
b"minf" => minf = Some(atom),
267267
_ => {
268-
skip_unneeded(reader, atom.extended, atom.len)?;
268+
skip_atom(reader, atom.extended, atom.len)?;
269269
},
270270
}
271271

272272
continue;
273273
}
274274

275-
skip_unneeded(reader, atom.extended, atom.len)?;
275+
skip_atom(reader, atom.extended, atom.len)?;
276276
}
277277
}
278278

@@ -391,7 +391,7 @@ where
391391
},
392392
b"stts" => stts = Some(read_stts(reader)?),
393393
_ => {
394-
skip_unneeded(reader, atom.extended, atom.len)?;
394+
skip_atom(reader, atom.extended, atom.len)?;
395395
},
396396
}
397397

@@ -436,15 +436,15 @@ where
436436
// Special case to detect encrypted files
437437
b"drms" => {
438438
properties.drm_protected = true;
439-
skip_unneeded(reader, atom.extended, atom.len)?;
439+
skip_atom(reader, atom.extended, atom.len)?;
440440
continue;
441441
},
442442
_ => {
443443
log::warn!(
444444
"Found unsupported sample entry: {:?}",
445445
fourcc.escape_ascii().to_string()
446446
);
447-
skip_unneeded(reader, atom.extended, atom.len)?;
447+
skip_atom(reader, atom.extended, atom.len)?;
448448
continue;
449449
},
450450
}
@@ -843,7 +843,7 @@ where
843843
return Ok(atom.len - 8);
844844
}
845845

846-
skip_unneeded(reader, atom.extended, atom.len)?;
846+
skip_atom(reader, atom.extended, atom.len)?;
847847
}
848848

849849
decode_err!(@BAIL Mp4, "Failed to find \"mdat\" atom");

lofty/src/mp4/read.rs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,15 @@ where
217217
})
218218
}
219219

220-
pub(super) fn skip_unneeded<R>(reader: &mut R, extended: bool, len: u64) -> Result<()>
220+
/// Seeks the reader to the end of the atom
221+
///
222+
/// This should be used immediately after [`AtomInfo::read`] to skip an unwanted atom.
223+
///
224+
/// NOTES:
225+
///
226+
/// * This makes the assumption that the reader is at the end of the atom's header.
227+
/// * This makes the assumption that the `len` is the *full atom length*, not just that of the content.
228+
pub(super) fn skip_atom<R>(reader: &mut R, extended: bool, len: u64) -> Result<()>
221229
where
222230
R: Read + Seek,
223231
{
@@ -261,7 +269,7 @@ where
261269
break;
262270
},
263271
_ => {
264-
skip_unneeded(reader, atom.extended, atom.len)?;
272+
skip_atom(reader, atom.extended, atom.len)?;
265273
len = len.saturating_sub(atom.len);
266274
},
267275
}
@@ -290,7 +298,7 @@ where
290298
break;
291299
};
292300

293-
skip_unneeded(reader, atom.extended, atom.len)?;
301+
skip_atom(reader, atom.extended, atom.len)?;
294302
len = len.saturating_sub(atom.len);
295303

296304
if let AtomIdent::Fourcc(ref fourcc) = atom.ident {

lofty/src/mp4/write.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::error::{LoftyError, Result};
33
use crate::io::{FileLike, Length, Truncate};
44
use crate::macros::err;
55
use crate::mp4::atom_info::{AtomIdent, AtomInfo, IDENTIFIER_LEN};
6-
use crate::mp4::read::{meta_is_full, skip_unneeded};
6+
use crate::mp4::read::{meta_is_full, skip_atom};
77

88
use std::cell::{RefCell, RefMut};
99
use std::io::{Cursor, Read, Seek, SeekFrom, Write};
@@ -53,7 +53,7 @@ impl ContextualAtom {
5353
*reader_len = reader_len.saturating_sub(info.len);
5454

5555
// We don't care about the atom's contents
56-
skip_unneeded(reader, info.extended, info.len)?;
56+
skip_atom(reader, info.extended, info.len)?;
5757
return Ok(Some(ContextualAtom {
5858
info,
5959
children: Vec::new(),

0 commit comments

Comments
 (0)