class TrackReferenceTypeBox extends AbstractBox {

    long[] trackIds = new long[0];

    // ‘hint’  the referenced track(s) contain the original media for this hint track
    // ‘cdsc‘  this track describes the referenced track.
    // 'hind'  this track depends on the referenced hint track, i.e., it should only be used if the referenced hint track is used.
    // 'vdep'  this track contains auxiliary depth video information for the referenced video track
    // 'vplx'  this track contains auxiliary parallax video information for the referenced video track

    public TrackReferenceTypeBox(String type) {
        super(type);
    }

    @Override
    protected long getContentSize() {
        return trackIds.length * 4;
    }

    @Override
    protected void getContent(ByteBuffer byteBuffer) {
        for (long trackId : trackIds) {
            IsoTypeWriter.writeUInt32(byteBuffer, trackId);
        }
    }

    @Override
    protected void _parseDetails(ByteBuffer content) {<FILL_FUNCTION_BODY>}

    public long[] getTrackIds() {
        return trackIds;
    }

    public void setTrackIds(long[] trackIds) {
        this.trackIds = trackIds;
    }
}

        while (content.remaining() >= 4) {
            trackIds = Mp4Arrays.copyOfAndAppend(trackIds, new long[]{IsoTypeReader.readUInt32(content)});
        }

    
<methods>public void getBox(java.nio.channels.WritableByteChannel) throws java.io.IOException,public long getSize() ,public java.lang.String getType() ,public byte[] getUserType() ,public boolean isParsed() ,public void parse(java.nio.channels.ReadableByteChannel, java.nio.ByteBuffer, long, org.mp4parser.BoxParser) throws java.io.IOException,public final synchronized void parseDetails() <variables>private static org.slf4j.Logger LOG,protected java.nio.ByteBuffer content,private java.nio.ByteBuffer deadBytes,boolean isParsed,protected java.lang.String type,private byte[] userType