
com.drew.metadata.mov.metadata.QuickTimeMetadataDirectory Maven / Gradle / Ivy
/*
* Copyright 2002-2019 Drew Noakes and contributors
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
* More information about this project is available at:
*
* https://drewnoakes.com/code/exif/
* https://github.com/drewnoakes/metadata-extractor
*/
package com.drew.metadata.mov.metadata;
import com.drew.lang.annotations.NotNull;
import com.drew.metadata.mov.QuickTimeDirectory;
import java.util.HashMap;
/**
* @author Payton Garland
*/
public class QuickTimeMetadataDirectory extends QuickTimeDirectory
{
// User Data Types Holder (0x0400 - 0x04FF)
// https://sno.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html#Meta
// User Metadata Types Holder (0x0500 - 0x05FF)
// https://developer.apple.com/library/content/documentation/QuickTime/QTFF/Metadata/Metadata.html#//apple_ref/doc/uid/TP40000939-CH1-SW43
// https://sno.phy.queensu.ca/~phil/exiftool/TagNames/QuickTime.html#Meta
public static final int TAG_ALBUM = 0x0500;
public static final int TAG_ARTIST = 0x0501;
public static final int TAG_ARTWORK = 0x0502;
public static final int TAG_AUTHOR = 0x0503;
public static final int TAG_COMMENT = 0x0504;
public static final int TAG_COPYRIGHT = 0x0505;
public static final int TAG_CREATION_DATE = 0x0506;
public static final int TAG_DESCRIPTION = 0x0507;
public static final int TAG_DIRECTOR = 0x0508;
public static final int TAG_TITLE = 0x0509;
public static final int TAG_GENRE = 0x050A;
public static final int TAG_INFORMATION = 0x050B;
public static final int TAG_KEYWORDS = 0x050C;
public static final int TAG_LOCATION_ISO6709 = 0x050D;
public static final int TAG_PRODUCER = 0x050E;
public static final int TAG_PUBLISHER = 0x050F;
public static final int TAG_SOFTWARE = 0x0510;
public static final int TAG_YEAR = 0x0511;
public static final int TAG_COLLECTION_USER = 0x0512;
public static final int TAG_RATING_USER = 0x0513;
public static final int TAG_LOCATION_NAME = 0x0514;
public static final int TAG_LOCATION_BODY = 0x0515;
public static final int TAG_LOCATION_NOTE = 0x0516;
public static final int TAG_LOCATION_ROLE = 0x0517;
public static final int TAG_LOCATION_DATE = 0x0518;
public static final int TAG_DIRECTION_FACING = 0x0519;
public static final int TAG_DIRECTION_MOTION = 0x051A;
public static final int TAG_DISPLAY_NAME = 0x051B;
public static final int TAG_CONTENT_IDENTIFIER = 0x051C;
public static final int TAG_MAKE = 0x051D;
public static final int TAG_MODEL = 0x051E;
public static final int TAG_ORIGINATING_SIGNATURE = 0x051F;
public static final int TAG_PIXEL_DENSITY = 0x0520;
public QuickTimeMetadataDirectory()
{
this.setDescriptor(new QuickTimeMetadataDescriptor(this));
}
@NotNull
private static final HashMap _tagNameMap = new HashMap();
@NotNull
static final HashMap _tagIntegerMap = new HashMap();
static
{
_tagIntegerMap.put("com.apple.quicktime.album", TAG_ALBUM);
_tagIntegerMap.put("com.apple.quicktime.artist", TAG_ARTIST);
_tagIntegerMap.put("com.apple.quicktime.artwork", TAG_ARTWORK);
_tagIntegerMap.put("com.apple.quicktime.author", TAG_AUTHOR);
_tagIntegerMap.put("com.apple.quicktime.comment", TAG_COMMENT);
_tagIntegerMap.put("com.apple.quicktime.copyright", TAG_COPYRIGHT);
_tagIntegerMap.put("com.apple.quicktime.creationdate", TAG_CREATION_DATE);
_tagIntegerMap.put("com.apple.quicktime.description", TAG_DESCRIPTION);
_tagIntegerMap.put("com.apple.quicktime.director", TAG_DIRECTOR);
_tagIntegerMap.put("com.apple.quicktime.title", TAG_TITLE);
_tagIntegerMap.put("com.apple.quicktime.genre", TAG_GENRE);
_tagIntegerMap.put("com.apple.quicktime.information", TAG_INFORMATION);
_tagIntegerMap.put("com.apple.quicktime.keywords", TAG_KEYWORDS);
_tagIntegerMap.put("com.apple.quicktime.location.ISO6709", TAG_LOCATION_ISO6709);
_tagIntegerMap.put("com.apple.quicktime.producer", TAG_PRODUCER);
_tagIntegerMap.put("com.apple.quicktime.publisher", TAG_PUBLISHER);
_tagIntegerMap.put("com.apple.quicktime.software", TAG_SOFTWARE);
_tagIntegerMap.put("com.apple.quicktime.year", TAG_YEAR);
_tagIntegerMap.put("com.apple.quicktime.collection.user", TAG_COLLECTION_USER);
_tagIntegerMap.put("com.apple.quicktime.rating.user", TAG_RATING_USER);
_tagIntegerMap.put("com.apple.quicktime.location.name", TAG_LOCATION_NAME);
_tagIntegerMap.put("com.apple.quicktime.location.body", TAG_LOCATION_BODY);
_tagIntegerMap.put("com.apple.quicktime.location.note", TAG_LOCATION_NOTE);
_tagIntegerMap.put("com.apple.quicktime.location.role", TAG_LOCATION_ROLE);
_tagIntegerMap.put("com.apple.quicktime.location.date", TAG_LOCATION_DATE);
_tagIntegerMap.put("com.apple.quicktime.direction.facing", TAG_DIRECTION_FACING);
_tagIntegerMap.put("com.apple.quicktime.direction.motion", TAG_DIRECTION_MOTION);
_tagIntegerMap.put("com.apple.quicktime.displayname", TAG_DISPLAY_NAME);
_tagIntegerMap.put("com.apple.quicktime.content.identifier", TAG_CONTENT_IDENTIFIER);
_tagIntegerMap.put("com.apple.quicktime.make", TAG_MAKE);
_tagIntegerMap.put("com.apple.quicktime.model", TAG_MODEL);
_tagIntegerMap.put("com.apple.photos.originating.signature", TAG_ORIGINATING_SIGNATURE);
_tagIntegerMap.put("com.apple.quicktime.pixeldensity", TAG_PIXEL_DENSITY);
_tagIntegerMap.put("----", 0x0400);
_tagIntegerMap.put("@PST", 0x0401);
_tagIntegerMap.put("@ppi", 0x0402);
_tagIntegerMap.put("@pti", 0x0403);
_tagIntegerMap.put("@sti", 0x0404);
_tagIntegerMap.put("AACR", 0x0405);
_tagIntegerMap.put("CDEK", 0x0406);
_tagIntegerMap.put("CDET", 0x0407);
_tagIntegerMap.put("GUID", 0x0408);
_tagIntegerMap.put("VERS", 0x0409);
_tagIntegerMap.put("aART", 0x040A);
_tagIntegerMap.put("akID", 0x040B);
_tagIntegerMap.put("albm", 0x040C);
_tagIntegerMap.put("apID", 0x040D);
_tagIntegerMap.put("atID", 0x040E);
_tagIntegerMap.put("auth", 0x040F);
_tagIntegerMap.put("catg", 0x0410);
_tagIntegerMap.put("cnID", 0x0411);
_tagIntegerMap.put("covr", 0x0412);
_tagIntegerMap.put("cpil", 0x0413);
_tagIntegerMap.put("cprt", 0x0414);
_tagIntegerMap.put("desc", 0x0415);
_tagIntegerMap.put("disk", 0x0416);
_tagIntegerMap.put("dscp", 0x0417);
_tagIntegerMap.put("egid", 0x0418);
_tagIntegerMap.put("geID", 0x0419);
_tagIntegerMap.put("gnre", 0x041A);
_tagIntegerMap.put("grup", 0x041B);
_tagIntegerMap.put("gshh", 0x041C);
_tagIntegerMap.put("gspm", 0x041D);
_tagIntegerMap.put("gspu", 0x041E);
_tagIntegerMap.put("gssd", 0x041F);
_tagIntegerMap.put("gsst", 0x0420);
_tagIntegerMap.put("gstd", 0x0421);
_tagIntegerMap.put("hdvd", 0x0422);
_tagIntegerMap.put("itnu", 0x0423);
_tagIntegerMap.put("keyw", 0x0424);
_tagIntegerMap.put("ldes", 0x0425);
_tagIntegerMap.put("pcst", 0x0426);
_tagIntegerMap.put("perf", 0x0427);
_tagIntegerMap.put("pgap", 0x0428);
_tagIntegerMap.put("plID", 0x0429);
_tagIntegerMap.put("prID", 0x042A);
_tagIntegerMap.put("purd", 0x042B);
_tagIntegerMap.put("purl", 0x042C);
_tagIntegerMap.put("rate", 0x042D);
_tagIntegerMap.put("rldt", 0x042E);
_tagIntegerMap.put("rtng", 0x042F);
_tagIntegerMap.put("sfID", 0x0430);
_tagIntegerMap.put("soaa", 0x0431);
_tagIntegerMap.put("soal", 0x0432);
_tagIntegerMap.put("soar", 0x0433);
_tagIntegerMap.put("soco", 0x0434);
_tagIntegerMap.put("sonm", 0x0435);
_tagIntegerMap.put("sosn", 0x0436);
_tagIntegerMap.put("stik", 0x0437);
_tagIntegerMap.put("titl", 0x0438);
_tagIntegerMap.put("tmpo", 0x0439);
_tagIntegerMap.put("trkn", 0x043A);
_tagIntegerMap.put("tven", 0x043B);
_tagIntegerMap.put("tves", 0x043C);
_tagIntegerMap.put("tvnn", 0x043D);
_tagIntegerMap.put("tvsh", 0x043E);
_tagIntegerMap.put("tvsn", 0x043F);
_tagIntegerMap.put("yrrc", 0x0440);
_tagIntegerMap.put("�ART", 0x0441);
_tagIntegerMap.put("�alb", 0x0442);
_tagIntegerMap.put("�cmt", 0x0443);
_tagIntegerMap.put("�com", 0x0444);
_tagIntegerMap.put("�cpy", 0x0445);
_tagIntegerMap.put("�day", 0x0446);
_tagIntegerMap.put("�des", 0x0447);
_tagIntegerMap.put("�enc", 0x0448);
_tagIntegerMap.put("�gen", 0x0449);
_tagIntegerMap.put("�grp", 0x044A);
_tagIntegerMap.put("�lyr", 0x044B);
_tagIntegerMap.put("�nam", 0x044C);
_tagIntegerMap.put("�nrt", 0x044D);
_tagIntegerMap.put("�pub", 0x044E);
_tagIntegerMap.put("�too", 0x044F);
_tagIntegerMap.put("�trk", 0x0450);
_tagIntegerMap.put("�wrt", 0x0451);
_tagNameMap.put(TAG_ALBUM, "Album");
_tagNameMap.put(TAG_ARTIST, "Artist");
_tagNameMap.put(TAG_ARTWORK, "Artwork");
_tagNameMap.put(TAG_AUTHOR, "Author");
_tagNameMap.put(TAG_COMMENT, "Comment");
_tagNameMap.put(TAG_COPYRIGHT, "Copyright");
_tagNameMap.put(TAG_CREATION_DATE, "Creation Date");
_tagNameMap.put(TAG_DESCRIPTION, "Description");
_tagNameMap.put(TAG_DIRECTOR, "Director");
_tagNameMap.put(TAG_TITLE, "Title");
_tagNameMap.put(TAG_GENRE, "Genre");
_tagNameMap.put(TAG_INFORMATION, "Information");
_tagNameMap.put(TAG_KEYWORDS, "Keywords");
_tagNameMap.put(TAG_LOCATION_ISO6709, "ISO 6709");
_tagNameMap.put(TAG_PRODUCER, "Producer");
_tagNameMap.put(TAG_PUBLISHER, "Publisher");
_tagNameMap.put(TAG_SOFTWARE, "Software");
_tagNameMap.put(TAG_YEAR, "Year");
_tagNameMap.put(TAG_COLLECTION_USER, "Collection User");
_tagNameMap.put(TAG_RATING_USER, "Rating User");
_tagNameMap.put(TAG_LOCATION_NAME, "Location Name");
_tagNameMap.put(TAG_LOCATION_BODY, "Location Body");
_tagNameMap.put(TAG_LOCATION_NOTE, "Location Note");
_tagNameMap.put(TAG_LOCATION_ROLE, "Location Role");
_tagNameMap.put(TAG_LOCATION_DATE, "Location Date");
_tagNameMap.put(TAG_DIRECTION_FACING, "Direction Facing");
_tagNameMap.put(TAG_DIRECTION_MOTION, "Direction Motion");
_tagNameMap.put(TAG_DISPLAY_NAME, "Display Name");
_tagNameMap.put(TAG_CONTENT_IDENTIFIER, "Content Identifier");
_tagNameMap.put(TAG_MAKE, "Make");
_tagNameMap.put(TAG_MODEL, "Model");
_tagNameMap.put(TAG_ORIGINATING_SIGNATURE, "Originating Signature");
_tagNameMap.put(TAG_PIXEL_DENSITY, "Pixel Density");
_tagNameMap.put(0x0400, "iTunes Info");
_tagNameMap.put(0x0401, "Parent Short Title");
_tagNameMap.put(0x0402, "Parent Product ID");
_tagNameMap.put(0x0403, "Parent Title");
_tagNameMap.put(0x0404, "Short Title");
_tagNameMap.put(0x0405, "Unknown_AACR?");
_tagNameMap.put(0x0406, "Unknown_CDEK?");
_tagNameMap.put(0x0407, "Unknown_CDET?");
_tagNameMap.put(0x0408, "GUID");
_tagNameMap.put(0x0409, "Product Version");
_tagNameMap.put(0x040A, "Album Artist");
_tagNameMap.put(0x040B, "Apple Store Account Type");
_tagNameMap.put(0x040C, "Album");
_tagNameMap.put(0x040D, "Apple Store Account");
_tagNameMap.put(0x040E, "Album Title ID");
_tagNameMap.put(0x040F, "Author");
_tagNameMap.put(0x0410, "Category");
_tagNameMap.put(0x0411, "Apple Store Catalog ID");
_tagNameMap.put(0x0412, "Cover Art");
_tagNameMap.put(0x0413, "Compilation");
_tagNameMap.put(0x0414, "Copyright");
_tagNameMap.put(0x0415, "Description");
_tagNameMap.put(0x0416, "Disk Number");
_tagNameMap.put(0x0417, "Description");
_tagNameMap.put(0x0418, "Episode Global Unique ID");
_tagNameMap.put(0x0419, "Genre ID");
_tagNameMap.put(0x041A, "Genre");
_tagNameMap.put(0x041B, "Grouping");
_tagNameMap.put(0x041C, "Google Host Header");
_tagNameMap.put(0x041D, "Google Ping Message");
_tagNameMap.put(0x041E, "Google Ping URL");
_tagNameMap.put(0x041F, "Google Source Data");
_tagNameMap.put(0x0420, "Google Start Time");
_tagNameMap.put(0x0421, "Google Track Duration");
_tagNameMap.put(0x0422, "HD Video");
_tagNameMap.put(0x0423, "iTunes U");
_tagNameMap.put(0x0424, "Keyword");
_tagNameMap.put(0x0425, "Long Description");
_tagNameMap.put(0x0426, "Podcast");
_tagNameMap.put(0x0427, "Performer");
_tagNameMap.put(0x0428, "Play Gap");
_tagNameMap.put(0x0429, "Play List ID");
_tagNameMap.put(0x042A, "Product ID");
_tagNameMap.put(0x042B, "Purchase Date");
_tagNameMap.put(0x042C, "Podcast URL");
_tagNameMap.put(0x042D, "Rating Percent");
_tagNameMap.put(0x042E, "Release Date");
_tagNameMap.put(0x042F, "Rating");
_tagNameMap.put(0x0430, "Apple Store Country");
_tagNameMap.put(0x0431, "Sort Album Artist");
_tagNameMap.put(0x0432, "Sort Album");
_tagNameMap.put(0x0433, "Sort Artist");
_tagNameMap.put(0x0434, "Sort Composer");
_tagNameMap.put(0x0435, "Sort Name");
_tagNameMap.put(0x0436, "Sort Show");
_tagNameMap.put(0x0437, "Media Type");
_tagNameMap.put(0x0438, "Title");
_tagNameMap.put(0x0439, "Beats Per Minute");
_tagNameMap.put(0x043A, "Track Number");
_tagNameMap.put(0x043B, "TV Episode ID");
_tagNameMap.put(0x043C, "TV Episode");
_tagNameMap.put(0x043D, "TV Network Name");
_tagNameMap.put(0x043E, "TV Show");
_tagNameMap.put(0x043F, "TV Season");
_tagNameMap.put(0x0440, "Year");
_tagNameMap.put(0x0441, "Artist");
_tagNameMap.put(0x0442, "Album");
_tagNameMap.put(0x0443, "Comment");
_tagNameMap.put(0x0444, "Composer");
_tagNameMap.put(0x0445, "Copyright");
_tagNameMap.put(0x0446, "Content Create Date");
_tagNameMap.put(0x0447, "Description");
_tagNameMap.put(0x0448, "Encoded By");
_tagNameMap.put(0x0449, "Genre");
_tagNameMap.put(0x044A, "Grouping");
_tagNameMap.put(0x044B, "Lyrics");
_tagNameMap.put(0x044C, "Title");
_tagNameMap.put(0x044D, "Narrator");
_tagNameMap.put(0x044E, "Publisher");
_tagNameMap.put(0x044F, "Encoder");
_tagNameMap.put(0x0450, "Track");
_tagNameMap.put(0x0451, "Composer");
}
@Override
@NotNull
public String getName()
{
return "QuickTime Metadata";
}
@Override
@NotNull
protected HashMap getTagNameMap()
{
return _tagNameMap;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy