in src/main/java/com/aws/iot/edgeconnectorforkvs/videouploader/mkv/MkvDataRawElement.java [29:53]
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);
}