All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.mp4parser.boxes.microsoft.TfxdBox Maven / Gradle / Ivy

Go to download

A generic parser and writer for all ISO 14496 based files (MP4, Quicktime, DCF, PDCF, ...)

There is a newer version: 1.9.56
Show newest version
package org.mp4parser.boxes.microsoft;

import org.mp4parser.support.AbstractFullBox;
import org.mp4parser.tools.IsoTypeReader;
import org.mp4parser.tools.IsoTypeWriter;

import java.nio.ByteBuffer;

/**
 * 

4cc = "uuid", 6d1d9b05-42d5-44e6-80e2-141daff757b2

* The syntax of the fields defined in this section, specified in ABNF [RFC5234], is as follows: * TfxdBox = TfxdBoxLength TfxdBoxType [TfxdBoxLongLength] TfxdBoxUUID TfxdBoxFields * TfxdBoxChildren * TfxdBoxType = "u" "u" "i" "d" * TfxdBoxLength = BoxLength * TfxdBoxLongLength = LongBoxLength * TfxdBoxUUID = %x6D %x1D %x9B %x05 %x42 %xD5 %x44 %xE6 * %x80 %xE2 %x14 %x1D %xAF %xF7 %x57 %xB2 * TfxdBoxFields = TfxdBoxVersion * TfxdBoxFlags * TfxdBoxDataFields32 / TfxdBoxDataFields64 * TfxdBoxVersion = %x00 / %x01 * TfxdBoxFlags = 24*24 RESERVED_BIT * TfxdBoxDataFields32 = FragmentAbsoluteTime32 * FragmentDuration32 * TfxdBoxDataFields64 = FragmentAbsoluteTime64 * FragmentDuration64 * FragmentAbsoluteTime64 = UNSIGNED_INT32 * FragmentDuration64 = UNSIGNED_INT32 * FragmentAbsoluteTime64 = UNSIGNED_INT64 * FragmentDuration64 = UNSIGNED_INT64 * TfxdBoxChildren = *( VendorExtensionUUIDBox ) */ //@ExtendedUserType(uuid = "6d1d9b05-42d5-44e6-80e2-141daff757b2") public class TfxdBox extends AbstractFullBox { public long fragmentAbsoluteTime; public long fragmentAbsoluteDuration; public TfxdBox() { super("uuid"); } @Override public byte[] getUserType() { return new byte[]{(byte) 0x6d, (byte) 0x1d, (byte) 0x9b, (byte) 0x05, (byte) 0x42, (byte) 0xd5, (byte) 0x44, (byte) 0xe6, (byte) 0x80, (byte) 0xe2, 0x14, (byte) 0x1d, (byte) 0xaf, (byte) 0xf7, (byte) 0x57, (byte) 0xb2}; } @Override protected long getContentSize() { return getVersion() == 0x01 ? 20 : 12; } @Override public void _parseDetails(ByteBuffer content) { parseVersionAndFlags(content); if (getVersion() == 0x01) { fragmentAbsoluteTime = IsoTypeReader.readUInt64(content); fragmentAbsoluteDuration = IsoTypeReader.readUInt64(content); } else { fragmentAbsoluteTime = IsoTypeReader.readUInt32(content); fragmentAbsoluteDuration = IsoTypeReader.readUInt32(content); } } @Override protected void getContent(ByteBuffer byteBuffer) { writeVersionAndFlags(byteBuffer); if (getVersion() == 0x01) { IsoTypeWriter.writeUInt64(byteBuffer, fragmentAbsoluteTime); IsoTypeWriter.writeUInt64(byteBuffer, fragmentAbsoluteDuration); } else { IsoTypeWriter.writeUInt32(byteBuffer, fragmentAbsoluteTime); IsoTypeWriter.writeUInt32(byteBuffer, fragmentAbsoluteDuration); } } public long getFragmentAbsoluteTime() { return fragmentAbsoluteTime; } public long getFragmentAbsoluteDuration() { return fragmentAbsoluteDuration; } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy