public MkvDataRawElement()

in src/main/java/com/aws/iot/edgeconnectorforkvs/videouploader/mkv/MkvDataRawElement.java [45:69]


    public MkvDataRawElement(ByteBuffer idAndSizeByteBuffer, @NonNull ByteBuffer dataByteBuffer) {
        super(idAndSizeByteBuffer);

        dataByteBuffer.rewind();
        data = new byte[dataByteBuffer.remaining()];
        try {
            dataByteBuffer.get(data);
        } catch (BufferUnderflowException ex) {
            log.error("Buffer Underflow Exception: " + ex.getMessage());
        }

        // MKV CodecID element's header is 0x86, so we check its length and its value here.
        if (this.getIdCopy().length == 1 && this.getIdCopy()[0] == (byte) 0x86) {
            // It's CodecID element. Remove any end of string character '\0' if any.
            int len = data.length;
            while (len > 0 && data[len - 1] == '\0') {
                len--;
            }
            if (len != data.length) {
                data = Arrays.copyOf(data, len);
            }
        }

        this.setDataLen(data.length);
    }