com.drew.metadata.mov.QuickTimeDirectory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of metadata-extractor Show documentation
Show all versions of metadata-extractor Show documentation
Java library for extracting EXIF, IPTC, XMP, ICC and other metadata from image and video files.
/*
* 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;
import com.drew.lang.annotations.NotNull;
import com.drew.metadata.Directory;
import java.util.HashMap;
/**
* @author Payton Garland
*/
public class QuickTimeDirectory extends Directory {
// Movie Header Atom (https://developer.apple.com/library/content/documentation/QuickTime/QTFF/QTFFChap2/qtff2.html#//apple_ref/doc/uid/TP40000939-CH204-56313)
public static final int TAG_CREATION_TIME = 0x0100;
public static final int TAG_MODIFICATION_TIME = 0x0101;
public static final int TAG_TIME_SCALE = 0x0102;
public static final int TAG_DURATION = 0x0103;
public static final int TAG_DURATION_SECONDS = 0x0104;
public static final int TAG_PREFERRED_RATE = 0x0105;
public static final int TAG_PREFERRED_VOLUME = 0x0106;
public static final int TAG_PREVIEW_TIME = 0x0107;
public static final int TAG_PREVIEW_DURATION = 0x0108;
public static final int TAG_POSTER_TIME = 0x0109;
public static final int TAG_SELECTION_TIME = 0x010A;
public static final int TAG_SELECTION_DURATION = 0x010B;
public static final int TAG_CURRENT_TIME = 0x010C;
public static final int TAG_NEXT_TRACK_ID = 0x010D;
public static final int TAG_ROTATION = 0x010E;
public static final int TAG_MEDIA_TIME_SCALE = 0x0306;
public static final int TAG_MAJOR_BRAND = 0x1000;
public static final int TAG_MINOR_VERSION = 0x1001;
public static final int TAG_COMPATIBLE_BRANDS = 0x1002;
public static final int TAG_CANON_THUMBNAIL_DT = 0x2000;
public static final int TAG_ADOBE_XMP = 0x3000;
@NotNull
private static final HashMap _tagNameMap = new HashMap();
static {
_tagNameMap.put(TAG_MAJOR_BRAND, "Major Brand");
_tagNameMap.put(TAG_MINOR_VERSION, "Minor Version");
_tagNameMap.put(TAG_COMPATIBLE_BRANDS, "Compatible Brands");
_tagNameMap.put(TAG_CREATION_TIME, "Creation Time");
_tagNameMap.put(TAG_MODIFICATION_TIME, "Modification Time");
_tagNameMap.put(TAG_TIME_SCALE, "Media Time Scale");
_tagNameMap.put(TAG_DURATION, "Duration");
_tagNameMap.put(TAG_DURATION_SECONDS, "Duration in Seconds");
_tagNameMap.put(TAG_PREFERRED_RATE, "Preferred Rate");
_tagNameMap.put(TAG_PREFERRED_VOLUME, "Preferred Volume");
_tagNameMap.put(TAG_PREVIEW_TIME, "Preview Time");
_tagNameMap.put(TAG_PREVIEW_DURATION, "Preview Duration");
_tagNameMap.put(TAG_POSTER_TIME, "Poster Time");
_tagNameMap.put(TAG_SELECTION_TIME, "Selection Time");
_tagNameMap.put(TAG_SELECTION_DURATION, "Selection Duration");
_tagNameMap.put(TAG_CURRENT_TIME, "Current Time");
_tagNameMap.put(TAG_NEXT_TRACK_ID, "Next Track ID");
_tagNameMap.put(TAG_ROTATION, "Rotation");
_tagNameMap.put(TAG_MEDIA_TIME_SCALE, "Media Time Scale");
_tagNameMap.put(TAG_CANON_THUMBNAIL_DT, "Canon Thumbnail DateTime");
_tagNameMap.put(TAG_ADOBE_XMP, "Adobe Bridge XMP");
}
public QuickTimeDirectory()
{
this.setDescriptor(new QuickTimeDescriptor(this));
}
@Override
@NotNull
public String getName()
{
return "QuickTime";
}
@Override
@NotNull
protected HashMap getTagNameMap()
{
return _tagNameMap;
}
}