FlacMetadataReader
@UnstableApi
class FlacMetadataReader
Reads and peeks FLAC stream metadata elements according to RFC 9639.
Summary
Nested types |
|---|
|
Holds a |
Public functions |
|
|---|---|
java-static Boolean |
checkAndPeekStreamMarker(input: ExtractorInput!)Peeks the FLAC stream marker. |
java-static Int |
getFrameStartMarker(input: ExtractorInput!)Returns the frame start marker, consisting of the 2 first bytes of the first frame. |
java-static Metadata? |
peekId3Metadata(Peeks ID3 Data. |
java-static Metadata? |
readId3Metadata(Reads ID3 Data. |
java-static Boolean |
readMetadataBlock(Reads one FLAC metadata block. |
java-static FlacStreamMetadata.SeekTable! |
Reads a FLAC seek table metadata block. |
java-static Unit |
readStreamMarker(input: ExtractorInput!)Reads the FLAC stream marker. |
Public functions
checkAndPeekStreamMarker
java-static fun checkAndPeekStreamMarker(input: ExtractorInput!): Boolean
Peeks the FLAC stream marker.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to peek the stream marker from. |
| Returns | |
|---|---|
Boolean |
Whether the data peeked is the FLAC stream marker. |
| Throws | |
|---|---|
java.io.IOException |
If peeking from the input fails. In this case, the peek position is left unchanged. |
getFrameStartMarker
java-static fun getFrameStartMarker(input: ExtractorInput!): Int
Returns the frame start marker, consisting of the 2 first bytes of the first frame.
The read position of input is left unchanged and the peek position is aligned with the read position.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to get the start marker from (starting from the read position). |
| Returns | |
|---|---|
Int |
The frame start marker (which must be the same for all the frames in the stream). |
| Throws | |
|---|---|
androidx.media3.common.ParserException |
If an error occurs parsing the frame start marker. |
java.io.IOException |
If peeking from the input fails. |
peekId3Metadata
java-static fun peekId3Metadata(
input: ExtractorInput!,
parseData: Boolean,
ignoreArtwork: Boolean
): Metadata?
Peeks ID3 Data.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to peek the ID3 data from. |
parseData: Boolean |
Whether to parse the ID3 frames. |
ignoreArtwork: Boolean |
Whether to ignore artwork metadata. |
| Returns | |
|---|---|
Metadata? |
The parsed ID3 data, or |
| Throws | |
|---|---|
java.io.IOException |
If peeking from the input fails. In this case, there is no guarantee on the peek position. |
readId3Metadata
java-static fun readId3Metadata(
input: ExtractorInput!,
parseData: Boolean,
ignoreArtwork: Boolean
): Metadata?
Reads ID3 Data.
If no exception is thrown, the peek position of input is aligned with the read position.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to read the ID3 data from. |
parseData: Boolean |
Whether to parse the ID3 frames. |
ignoreArtwork: Boolean |
Whether to ignore artwork metadata. |
| Returns | |
|---|---|
Metadata? |
The parsed ID3 data, or |
| Throws | |
|---|---|
java.io.IOException |
If reading from the input fails. In this case, the read position is left unchanged and there is no guarantee on the peek position. |
readMetadataBlock
java-static fun readMetadataBlock(
input: ExtractorInput!,
metadataHolder: FlacMetadataReader.FlacStreamMetadataHolder!,
ignoreArtwork: Boolean
): Boolean
Reads one FLAC metadata block.
If no exception is thrown, the peek position of input is aligned with the read position.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to read the metadata block from (header included). |
metadataHolder: FlacMetadataReader.FlacStreamMetadataHolder! |
A holder for the metadata read. If the stream info block (which must be the first metadata block) is read, the holder contains a new instance representing the stream info data. If the block read is a Vorbis comment block or a picture block, the holder contains a copy of the existing stream metadata with the corresponding metadata added. Otherwise, the metadata in the holder is unchanged. |
ignoreArtwork: Boolean |
Whether to ignore artwork metadata blocks. |
| Returns | |
|---|---|
Boolean |
Whether the block read is the last metadata block. |
| Throws | |
|---|---|
java.lang.IllegalArgumentException |
If the block read is not a stream info block and the metadata in |
java.io.IOException |
If reading from the input fails. In this case, the read position will be at the start of a metadata block and there is no guarantee on the peek position. |
readSeekTableMetadataBlock
java-static fun readSeekTableMetadataBlock(data: ParsableByteArray!): FlacStreamMetadata.SeekTable!
Reads a FLAC seek table metadata block.
The position of data is moved to the byte following the seek table metadata block (placeholder points included).
| Parameters | |
|---|---|
data: ParsableByteArray! |
The array to read the data from, whose position must correspond to the seek table metadata block (header included). |
| Returns | |
|---|---|
FlacStreamMetadata.SeekTable! |
The seek table, without the placeholder points. |
readStreamMarker
java-static fun readStreamMarker(input: ExtractorInput!): Unit
Reads the FLAC stream marker.
| Parameters | |
|---|---|
input: ExtractorInput! |
Input stream to read the stream marker from. |
| Throws | |
|---|---|
androidx.media3.common.ParserException |
If an error occurs parsing the stream marker. In this case, the position of |
java.io.IOException |
If reading from the input fails. In this case, the position is left unchanged. |