Struct mp4parse::MetadataBox

source ·
pub struct MetadataBox {
Show 44 fields pub album: Option<TryString>, pub artist: Option<TryString>, pub album_artist: Option<TryString>, pub comment: Option<TryString>, pub year: Option<TryString>, pub title: Option<TryString>, pub genre: Option<Genre>, pub track_number: Option<u8>, pub disc_number: Option<u8>, pub total_tracks: Option<u8>, pub total_discs: Option<u8>, pub composer: Option<TryString>, pub encoder: Option<TryString>, pub encoded_by: Option<TryString>, pub beats_per_minute: Option<u8>, pub copyright: Option<TryString>, pub compilation: Option<bool>, pub advisory: Option<AdvisoryRating>, pub rating: Option<TryString>, pub grouping: Option<TryString>, pub media_type: Option<MediaType>, pub podcast: Option<bool>, pub category: Option<TryString>, pub keyword: Option<TryString>, pub podcast_url: Option<TryString>, pub podcast_guid: Option<TryString>, pub description: Option<TryString>, pub long_description: Option<TryString>, pub lyrics: Option<TryString>, pub tv_network_name: Option<TryString>, pub tv_show_name: Option<TryString>, pub tv_episode_name: Option<TryString>, pub tv_episode_number: Option<u8>, pub tv_season: Option<u8>, pub purchase_date: Option<TryString>, pub gapless_playback: Option<bool>, pub cover_art: Option<TryVec<TryVec<u8>>>, pub owner: Option<TryString>, pub hd_video: Option<bool>, pub sort_name: Option<TryString>, pub sort_album: Option<TryString>, pub sort_artist: Option<TryString>, pub sort_album_artist: Option<TryString>, pub sort_composer: Option<TryString>,
}
Expand description

Represents the contents of ‘ilst’ atoms within a metadata box ‘meta’, parsed as iTunes metadata using the conventional tags.

Fields§

§album: Option<TryString>

The album name, ‘©alb’

§artist: Option<TryString>

The artist name ‘©art’ or ‘©ART’

§album_artist: Option<TryString>

The album artist ‘aART’

§comment: Option<TryString>

Track comments ‘©cmt’

§year: Option<TryString>

The date or year field ‘©day’

This is stored as an arbitrary string, and may not necessarily be in a valid date format.

§title: Option<TryString>

The track title ‘©nam’

§genre: Option<Genre>

The track genre ‘©gen’ or ‘gnre’.

§track_number: Option<u8>

The track number ‘trkn’.

§disc_number: Option<u8>

The disc number ‘disk’

§total_tracks: Option<u8>

The total number of tracks on the disc, stored in ‘trkn’

§total_discs: Option<u8>

The total number of discs in the album, stored in ‘disk’

§composer: Option<TryString>

The composer of the track ‘©wrt’

§encoder: Option<TryString>

The encoder used to create this track ‘©too’

§encoded_by: Option<TryString>

The encoded-by settingo this track ‘©enc’

§beats_per_minute: Option<u8>

The tempo or BPM of the track ‘tmpo’

§copyright: Option<TryString>

Copyright information of the track ‘cprt’

§compilation: Option<bool>

Whether or not this track is part of a compilation ‘cpil’

§advisory: Option<AdvisoryRating>

The advisory rating of this track ‘rtng’

§rating: Option<TryString>

The personal rating of this track, ‘rate’.

This is stored in the box as string data, but the format is an integer percentage from 0 - 100, where 100 is displayed as 5 stars out of 5.

§grouping: Option<TryString>

The grouping this track belongs to ‘©grp’

§media_type: Option<MediaType>

The media type of this track ‘stik’

§podcast: Option<bool>

Whether or not this track is a podcast ‘pcst’

§category: Option<TryString>

The category of ths track ‘catg’

§keyword: Option<TryString>

The podcast keyword ‘keyw’

§podcast_url: Option<TryString>

The podcast url ‘purl’

§podcast_guid: Option<TryString>

The podcast episode GUID ‘egid’

§description: Option<TryString>

The description of the track ‘desc’

§long_description: Option<TryString>

The long description of the track ‘ldes’.

Unlike other string fields, the long description field can be longer than 256 characters.

§lyrics: Option<TryString>

The lyrics of the track ‘©lyr’.

Unlike other string fields, the lyrics field can be longer than 256 characters.

§tv_network_name: Option<TryString>

The name of the TV network this track aired on ‘tvnn’.

§tv_show_name: Option<TryString>

The name of the TV Show for this track ‘tvsh’.

§tv_episode_name: Option<TryString>

The name of the TV Episode for this track ‘tven’.

§tv_episode_number: Option<u8>

The number of the TV Episode for this track ‘tves’.

§tv_season: Option<u8>

The season of the TV Episode of this track ‘tvsn’.

§purchase_date: Option<TryString>

The date this track was purchased ‘purd’.

§gapless_playback: Option<bool>

Whether or not this track supports gapless playback ‘pgap’

§cover_art: Option<TryVec<TryVec<u8>>>

Any cover artwork attached to this track ‘covr’

‘covr’ is unique in that it may contain multiple ‘data’ sub-entries, each an image file. Here, each subentry’s raw binary data is exposed, which may contain image data in JPEG or PNG format.

§owner: Option<TryString>

The owner of the track ‘ownr’

§hd_video: Option<bool>

Whether or not this track is HD Video ‘hdvd’

§sort_name: Option<TryString>

The name of the track to sort by ‘sonm’

§sort_album: Option<TryString>

The name of the album to sort by ‘soal’

§sort_artist: Option<TryString>

The name of the artist to sort by ‘soar’

§sort_album_artist: Option<TryString>

The name of the album artist to sort by ‘soaa’

§sort_composer: Option<TryString>

The name of the composer to sort by ‘soco’

Trait Implementations§

source§

impl Debug for MetadataBox

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Default for MetadataBox

source§

fn default() -> MetadataBox

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.