public static ByteBuffer getByteBufferFromStream()

in functions/source/amazon-chime-recordandtranscribe/src/main/java/com/amazonaws/kvstranscribestreaming/utils/KVSUtils.java [52:75]


    public static ByteBuffer getByteBufferFromStream(StreamingMkvReader streamingMkvReader,
                                                     FragmentMetadataVisitor fragmentVisitor,
                                                     KVSTransactionIdTagProcessor tagProcessor) throws MkvElementVisitException {

        if (!tagProcessor.shouldStopProcessing()) {
            while (streamingMkvReader.mightHaveNext()) {
                Optional<MkvElement> mkvElementOptional = streamingMkvReader.nextIfAvailable();
                if (mkvElementOptional.isPresent()) {

                    MkvElement mkvElement = mkvElementOptional.get();
                    mkvElement.accept(fragmentVisitor);

                    if (MkvTypeInfos.SIMPLEBLOCK.equals(mkvElement.getElementMetaData().getTypeInfo())) {
                        MkvDataElement dataElement = (MkvDataElement) mkvElement;
                        Frame frame = ((MkvValue<Frame>) dataElement.getValueCopy()).getVal();
                        ByteBuffer audioBuffer = frame.getFrameData();
                        return audioBuffer;
                    }
                }
            }
        }

        return ByteBuffer.allocate(0);
    }