mirror of
https://github.com/Serial-ATA/lofty-rs
synced 2024-11-14 00:17:07 +00:00
MP4: Rename nested_atom
to find_child_atom
This commit is contained in:
parent
3afe6d251a
commit
f1fe219bed
4 changed files with 16 additions and 12 deletions
|
@ -6,7 +6,7 @@ use crate::file::FileType;
|
||||||
use crate::macros::{decode_err, err, try_vec};
|
use crate::macros::{decode_err, err, try_vec};
|
||||||
use crate::mp4::atom_info::{AtomIdent, AtomInfo, ATOM_HEADER_LEN, FOURCC_LEN};
|
use crate::mp4::atom_info::{AtomIdent, AtomInfo, ATOM_HEADER_LEN, FOURCC_LEN};
|
||||||
use crate::mp4::ilst::r#ref::AtomRef;
|
use crate::mp4::ilst::r#ref::AtomRef;
|
||||||
use crate::mp4::read::{atom_tree, meta_is_full, nested_atom, verify_mp4, AtomReader};
|
use crate::mp4::read::{atom_tree, find_child_atom, meta_is_full, verify_mp4, AtomReader};
|
||||||
use crate::mp4::write::{AtomWriter, AtomWriterCompanion, ContextualAtom};
|
use crate::mp4::write::{AtomWriter, AtomWriterCompanion, ContextualAtom};
|
||||||
use crate::mp4::AtomData;
|
use crate::mp4::AtomData;
|
||||||
use crate::picture::{MimeType, Picture};
|
use crate::picture::{MimeType, Picture};
|
||||||
|
@ -74,10 +74,10 @@ where
|
||||||
let ilst = build_ilst(&mut tag.atoms)?;
|
let ilst = build_ilst(&mut tag.atoms)?;
|
||||||
let remove_tag = ilst.is_empty();
|
let remove_tag = ilst.is_empty();
|
||||||
|
|
||||||
let udta = nested_atom(
|
let udta = find_child_atom(
|
||||||
&mut write_handle,
|
&mut write_handle,
|
||||||
moov_len,
|
moov_len,
|
||||||
b"udta",
|
*b"udta",
|
||||||
ParseOptions::DEFAULT_PARSING_MODE,
|
ParseOptions::DEFAULT_PARSING_MODE,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
@ -102,10 +102,10 @@ where
|
||||||
existing_udta_size = udta.len;
|
existing_udta_size = udta.len;
|
||||||
new_udta_size = existing_udta_size;
|
new_udta_size = existing_udta_size;
|
||||||
|
|
||||||
let meta = nested_atom(
|
let meta = find_child_atom(
|
||||||
&mut write_handle,
|
&mut write_handle,
|
||||||
udta.len,
|
udta.len,
|
||||||
b"meta",
|
*b"meta",
|
||||||
ParseOptions::DEFAULT_PARSING_MODE,
|
ParseOptions::DEFAULT_PARSING_MODE,
|
||||||
)?;
|
)?;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
use super::atom_info::{AtomIdent, AtomInfo};
|
use super::atom_info::{AtomIdent, AtomInfo};
|
||||||
use super::ilst::read::parse_ilst;
|
use super::ilst::read::parse_ilst;
|
||||||
use super::ilst::Ilst;
|
use super::ilst::Ilst;
|
||||||
use super::read::{meta_is_full, nested_atom, skip_atom, AtomReader};
|
use super::read::{find_child_atom, meta_is_full, skip_atom, AtomReader};
|
||||||
use crate::config::ParseOptions;
|
use crate::config::ParseOptions;
|
||||||
use crate::error::Result;
|
use crate::error::Result;
|
||||||
use crate::macros::decode_err;
|
use crate::macros::decode_err;
|
||||||
|
@ -47,7 +47,7 @@ impl Moov {
|
||||||
b"trak" if parse_options.read_properties => {
|
b"trak" if parse_options.read_properties => {
|
||||||
// All we need from here is trak.mdia
|
// All we need from here is trak.mdia
|
||||||
if let Some(mdia) =
|
if let Some(mdia) =
|
||||||
nested_atom(reader, atom.len, b"mdia", parse_options.parsing_mode)?
|
find_child_atom(reader, atom.len, *b"mdia", parse_options.parsing_mode)?
|
||||||
{
|
{
|
||||||
skip_atom(reader, mdia.extended, mdia.len)?;
|
skip_atom(reader, mdia.extended, mdia.len)?;
|
||||||
traks.push(mdia);
|
traks.push(mdia);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use super::atom_info::{AtomIdent, AtomInfo};
|
use super::atom_info::{AtomIdent, AtomInfo};
|
||||||
use super::read::{nested_atom, skip_atom, AtomReader};
|
use super::read::{find_child_atom, skip_atom, AtomReader};
|
||||||
use crate::config::ParsingMode;
|
use crate::config::ParsingMode;
|
||||||
use crate::error::{LoftyError, Result};
|
use crate::error::{LoftyError, Result};
|
||||||
use crate::macros::{decode_err, err, try_vec};
|
use crate::macros::{decode_err, err, try_vec};
|
||||||
|
@ -369,7 +369,7 @@ fn read_minf<R>(
|
||||||
where
|
where
|
||||||
R: Read + Seek,
|
R: Read + Seek,
|
||||||
{
|
{
|
||||||
let Some(stbl) = nested_atom(reader, len, b"stbl", parse_mode)? else {
|
let Some(stbl) = find_child_atom(reader, len, *b"stbl", parse_mode)? else {
|
||||||
return Ok(None);
|
return Ok(None);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -113,10 +113,14 @@ where
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(super) fn nested_atom<R>(
|
/// Finds the first child atom with the given fourcc
|
||||||
|
///
|
||||||
|
/// * `len` is the length of the parent atom
|
||||||
|
/// * `expected` is the fourcc of the child atom to find
|
||||||
|
pub(super) fn find_child_atom<R>(
|
||||||
reader: &mut R,
|
reader: &mut R,
|
||||||
mut len: u64,
|
mut len: u64,
|
||||||
expected: &[u8],
|
expected: [u8; 4],
|
||||||
parse_mode: ParsingMode,
|
parse_mode: ParsingMode,
|
||||||
) -> Result<Option<AtomInfo>>
|
) -> Result<Option<AtomInfo>>
|
||||||
where
|
where
|
||||||
|
@ -130,7 +134,7 @@ where
|
||||||
};
|
};
|
||||||
|
|
||||||
match atom.ident {
|
match atom.ident {
|
||||||
AtomIdent::Fourcc(ref fourcc) if fourcc == expected => {
|
AtomIdent::Fourcc(fourcc) if fourcc == expected => {
|
||||||
ret = Some(atom);
|
ret = Some(atom);
|
||||||
break;
|
break;
|
||||||
},
|
},
|
||||||
|
|
Loading…
Reference in a new issue