FLAC
1.4.3
Free Lossless Audio Codec
|
Classes | |
struct | FLAC__EntropyCodingMethod_PartitionedRiceContents |
struct | FLAC__EntropyCodingMethod_PartitionedRice |
struct | FLAC__EntropyCodingMethod |
struct | FLAC__Subframe_Constant |
struct | FLAC__Subframe_Verbatim |
struct | FLAC__Subframe_Fixed |
struct | FLAC__Subframe_LPC |
struct | FLAC__Subframe |
struct | FLAC__FrameHeader |
struct | FLAC__FrameFooter |
struct | FLAC__Frame |
struct | FLAC__StreamMetadata_StreamInfo |
struct | FLAC__StreamMetadata_Padding |
struct | FLAC__StreamMetadata_Application |
struct | FLAC__StreamMetadata_SeekPoint |
struct | FLAC__StreamMetadata_SeekTable |
struct | FLAC__StreamMetadata_VorbisComment_Entry |
struct | FLAC__StreamMetadata_VorbisComment |
struct | FLAC__StreamMetadata_CueSheet_Index |
struct | FLAC__StreamMetadata_CueSheet_Track |
struct | FLAC__StreamMetadata_CueSheet |
struct | FLAC__StreamMetadata_Picture |
struct | FLAC__StreamMetadata_Unknown |
struct | FLAC__StreamMetadata |
Macros | |
#define | FLAC__MAX_METADATA_TYPE_CODE (126u) |
#define | FLAC__MIN_BLOCK_SIZE (16u) |
#define | FLAC__MAX_BLOCK_SIZE (65535u) |
#define | FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u) |
#define | FLAC__MAX_CHANNELS (8u) |
#define | FLAC__MIN_BITS_PER_SAMPLE (4u) |
#define | FLAC__MAX_BITS_PER_SAMPLE (32u) |
#define | FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (32u) |
#define | FLAC__MAX_SAMPLE_RATE (1048575u) |
#define | FLAC__MAX_LPC_ORDER (32u) |
#define | FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u) |
#define | FLAC__MIN_QLP_COEFF_PRECISION (5u) |
#define | FLAC__MAX_QLP_COEFF_PRECISION (15u) |
#define | FLAC__MAX_FIXED_ORDER (4u) |
#define | FLAC__MAX_RICE_PARTITION_ORDER (15u) |
#define | FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u) |
#define | FLAC__STREAM_SYNC_LENGTH (4u) |
#define | FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u) |
#define | FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u) |
#define | FLAC__STREAM_METADATA_HEADER_LENGTH (4u) |
Typedefs | |
typedef struct FLAC__StreamMetadata | FLAC__StreamMetadata |
Functions | |
FLAC__bool | FLAC__format_sample_rate_is_valid (uint32_t sample_rate) |
FLAC__bool | FLAC__format_blocksize_is_subset (uint32_t blocksize, uint32_t sample_rate) |
FLAC__bool | FLAC__format_sample_rate_is_subset (uint32_t sample_rate) |
FLAC__bool | FLAC__format_vorbiscomment_entry_name_is_legal (const char *name) |
FLAC__bool | FLAC__format_vorbiscomment_entry_value_is_legal (const FLAC__byte *value, uint32_t length) |
FLAC__bool | FLAC__format_vorbiscomment_entry_is_legal (const FLAC__byte *entry, uint32_t length) |
FLAC__bool | FLAC__format_seektable_is_legal (const FLAC__StreamMetadata_SeekTable *seek_table) |
uint32_t | FLAC__format_seektable_sort (FLAC__StreamMetadata_SeekTable *seek_table) |
FLAC__bool | FLAC__format_cuesheet_is_legal (const FLAC__StreamMetadata_CueSheet *cue_sheet, FLAC__bool check_cd_da_subset, const char **violation) |
FLAC__bool | FLAC__format_picture_is_legal (const FLAC__StreamMetadata_Picture *picture, const char **violation) |
This module contains structure definitions for the representation of FLAC format components in memory. These are the basic structures used by the rest of the interfaces.
First, you should be familiar with the FLAC format. Many of the values here follow directly from the specification. As a user of libFLAC, the interesting parts really are the structures that describe the frame header and metadata blocks.
The format structures here are very primitive, designed to store information in an efficient way. Reading information from the structures is easy but creating or modifying them directly is more complex. For the most part, as a user of a library, editing is not necessary; however, for metadata blocks it is, so there are convenience functions provided in the metadata module to simplify the manipulation of metadata blocks.
#define FLAC__MAX_METADATA_TYPE_CODE (126u) |
The largest legal metadata type code.
#define FLAC__MIN_BLOCK_SIZE (16u) |
The minimum block size, in samples, permitted by the format.
#define FLAC__MAX_BLOCK_SIZE (65535u) |
The maximum block size, in samples, permitted by the format.
#define FLAC__SUBSET_MAX_BLOCK_SIZE_48000HZ (4608u) |
The maximum block size, in samples, permitted by the FLAC subset for sample rates up to 48kHz.
#define FLAC__MAX_CHANNELS (8u) |
The maximum number of channels permitted by the format.
#define FLAC__MIN_BITS_PER_SAMPLE (4u) |
The minimum sample resolution permitted by the format.
#define FLAC__MAX_BITS_PER_SAMPLE (32u) |
The maximum sample resolution permitted by the format.
#define FLAC__REFERENCE_CODEC_MAX_BITS_PER_SAMPLE (32u) |
The maximum sample resolution permitted by libFLAC.
FLAC__MAX_BITS_PER_SAMPLE is the limit of the FLAC format. However, the reference encoder/decoder used to be limited to 24 bits. This value was used to signal that limit.
#define FLAC__MAX_SAMPLE_RATE (1048575u) |
The maximum sample rate permitted by the format. The value is ((2 ^ 20) - 1)
#define FLAC__MAX_LPC_ORDER (32u) |
The maximum LPC order permitted by the format.
#define FLAC__SUBSET_MAX_LPC_ORDER_48000HZ (12u) |
The maximum LPC order permitted by the FLAC subset for sample rates up to 48kHz.
#define FLAC__MIN_QLP_COEFF_PRECISION (5u) |
The minimum quantized linear predictor coefficient precision permitted by the format.
#define FLAC__MAX_QLP_COEFF_PRECISION (15u) |
The maximum quantized linear predictor coefficient precision permitted by the format.
#define FLAC__MAX_FIXED_ORDER (4u) |
The maximum order of the fixed predictors permitted by the format.
#define FLAC__MAX_RICE_PARTITION_ORDER (15u) |
The maximum Rice partition order permitted by the format.
#define FLAC__SUBSET_MAX_RICE_PARTITION_ORDER (8u) |
The maximum Rice partition order permitted by the FLAC Subset.
#define FLAC__STREAM_SYNC_LENGTH (4u) |
The length of the FLAC signature in bytes.
#define FLAC__STREAM_METADATA_STREAMINFO_LENGTH (34u) |
The total stream length of the STREAMINFO block in bytes.
#define FLAC__STREAM_METADATA_SEEKPOINT_LENGTH (18u) |
The total stream length of a seek point in bytes.
#define FLAC__STREAM_METADATA_HEADER_LENGTH (4u) |
The total stream length of a metadata block header in bytes.
typedef struct FLAC__StreamMetadata FLAC__StreamMetadata |
FLAC metadata block structure. (c.f. format specification)
An enumeration of the available entropy coding methods.
enum FLAC__SubframeType |
enum FLAC__MetadataType |
An enumeration of the available metadata block types.
Enumerator | |
---|---|
FLAC__METADATA_TYPE_STREAMINFO | STREAMINFO block |
FLAC__METADATA_TYPE_PADDING | PADDING block |
FLAC__METADATA_TYPE_APPLICATION | APPLICATION block |
FLAC__METADATA_TYPE_SEEKTABLE | SEEKTABLE block |
FLAC__METADATA_TYPE_VORBIS_COMMENT | VORBISCOMMENT block (a.k.a. FLAC tags) |
FLAC__METADATA_TYPE_CUESHEET | CUESHEET block |
FLAC__METADATA_TYPE_PICTURE | PICTURE block |
FLAC__METADATA_TYPE_UNDEFINED | marker to denote beginning of undefined type range; this number will increase as new metadata types are added |
FLAC__MAX_METADATA_TYPE | No type will ever be greater than this. There is not enough room in the protocol block. |
An enumeration of the PICTURE types (see FLAC__StreamMetadataPicture and id3 v2.4 APIC tag).
FLAC__bool FLAC__format_sample_rate_is_valid | ( | uint32_t | sample_rate | ) |
Tests that a sample rate is valid for FLAC.
sample_rate | The sample rate to test for compliance. |
FLAC__bool | true if the given sample rate conforms to the specification, else false . |
FLAC__bool FLAC__format_blocksize_is_subset | ( | uint32_t | blocksize, |
uint32_t | sample_rate | ||
) |
Tests that a blocksize at the given sample rate is valid for the FLAC subset.
blocksize | The blocksize to test for compliance. |
sample_rate | The sample rate is needed, since the valid subset blocksize depends on the sample rate. |
FLAC__bool | true if the given blocksize conforms to the specification for the subset at the given sample rate, else false . |
FLAC__bool FLAC__format_sample_rate_is_subset | ( | uint32_t | sample_rate | ) |
Tests that a sample rate is valid for the FLAC subset. The subset rules for valid sample rates are slightly more complex since the rate has to be expressible completely in the frame header.
sample_rate | The sample rate to test for compliance. |
FLAC__bool | true if the given sample rate conforms to the specification for the subset, else false . |
FLAC__bool FLAC__format_vorbiscomment_entry_name_is_legal | ( | const char * | name | ) |
Check a Vorbis comment entry name to see if it conforms to the Vorbis comment specification.
Vorbis comment names must be composed only of characters from [0x20-0x3C,0x3E-0x7D].
name | A NUL-terminated string to be checked. |
FLAC__bool | false if entry name is illegal, else true . |
FLAC__bool FLAC__format_vorbiscomment_entry_value_is_legal | ( | const FLAC__byte * | value, |
uint32_t | length | ||
) |
Check a Vorbis comment entry value to see if it conforms to the Vorbis comment specification.
Vorbis comment values must be valid UTF-8 sequences.
value | A string to be checked. |
length | A the length of value in bytes. May be (uint32_t)(-1) to indicate that value is a plain UTF-8 NUL-terminated string. |
FLAC__bool | false if entry name is illegal, else true . |
FLAC__bool FLAC__format_vorbiscomment_entry_is_legal | ( | const FLAC__byte * | entry, |
uint32_t | length | ||
) |
Check a Vorbis comment entry to see if it conforms to the Vorbis comment specification.
Vorbis comment entries must be of the form 'name=value', and 'name' and 'value' must be legal according to FLAC__format_vorbiscomment_entry_name_is_legal() and FLAC__format_vorbiscomment_entry_value_is_legal() respectively.
entry | An entry to be checked. |
length | The length of entry in bytes. |
FLAC__bool | false if entry name is illegal, else true . |
FLAC__bool FLAC__format_seektable_is_legal | ( | const FLAC__StreamMetadata_SeekTable * | seek_table | ) |
Check a seek table to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the seek table.
seek_table | A pointer to a seek table to be checked. |
FLAC__bool | false if seek table is illegal, else true . |
uint32_t FLAC__format_seektable_sort | ( | FLAC__StreamMetadata_SeekTable * | seek_table | ) |
Sort a seek table's seek points according to the format specification. This includes a "unique-ification" step to remove duplicates, i.e. seek points with identical sample_number values. Duplicate seek points are converted into placeholder points and sorted to the end of the table.
seek_table | A pointer to a seek table to be sorted. |
uint32_t | The number of duplicate seek points converted into placeholders. |
FLAC__bool FLAC__format_cuesheet_is_legal | ( | const FLAC__StreamMetadata_CueSheet * | cue_sheet, |
FLAC__bool | check_cd_da_subset, | ||
const char ** | violation | ||
) |
Check a cue sheet to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the cue sheet.
cue_sheet | A pointer to an existing cue sheet to be checked. |
check_cd_da_subset | If true , check CUESHEET against more stringent requirements for a CD-DA (audio) disc. |
violation | Address of a pointer to a string. If there is a violation, a pointer to a string explanation of the violation will be returned here. violation may be NULL if you don't need the returned string. Do not free the returned string; it will always point to static data. |
FLAC__bool | false if cue sheet is illegal, else true . |
FLAC__bool FLAC__format_picture_is_legal | ( | const FLAC__StreamMetadata_Picture * | picture, |
const char ** | violation | ||
) |
Check picture data to see if it conforms to the FLAC specification. See the format specification for limits on the contents of the PICTURE block.
picture | A pointer to existing picture data to be checked. |
violation | Address of a pointer to a string. If there is a violation, a pointer to a string explanation of the violation will be returned here. violation may be NULL if you don't need the returned string. Do not free the returned string; it will always point to static data. |
FLAC__bool | false if picture data is illegal, else true . |
|
extern |
The version string of the release, stamped onto the libraries and binaries.
|
extern |
The vendor string inserted by the encoder into the VORBIS_COMMENT block. This is a NUL-terminated ASCII string; when inserted into the VORBIS_COMMENT the trailing null is stripped.
|
extern |
The byte string representation of the beginning of a FLAC stream.
|
extern |
The 32-bit integer big-endian representation of the beginning of a FLAC stream.
|
extern |
The length of the FLAC signature in bits.
|
extern |
Maps a FLAC__EntropyCodingMethodType to a C string.
Using a FLAC__EntropyCodingMethodType as the index to this array will give the string equivalent. The contents should not be modified.
uint32_t* FLAC__EntropyCodingMethod_PartitionedRiceContents::parameters |
The Rice parameters for each context.
uint32_t* FLAC__EntropyCodingMethod_PartitionedRiceContents::raw_bits |
Widths for escape-coded partitions. Will be non-zero for escaped partitions and zero for unescaped partitions.
uint32_t FLAC__EntropyCodingMethod_PartitionedRiceContents::capacity_by_order |
The capacity of the parameters and raw_bits arrays specified as an order, i.e. the number of array elements allocated is 2 ^ capacity_by_order.
uint32_t FLAC__EntropyCodingMethod_PartitionedRice::order |
The partition order, i.e. # of contexts = 2 ^ order.
const FLAC__EntropyCodingMethod_PartitionedRiceContents* FLAC__EntropyCodingMethod_PartitionedRice::contents |
The context's Rice parameters and/or raw bits.
|
extern |
== 4 (bits)
|
extern |
== 4 (bits)
|
extern |
== 5 (bits)
|
extern |
== 5 (bits)
|
extern |
== (1<<FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE_PARAMETER_LEN)-1
|
extern |
== (1<<FLAC__ENTROPY_CODING_METHOD_PARTITIONED_RICE2_PARAMETER_LEN)-1
|
extern |
== 2 (bits)
|
extern |
Maps a FLAC__SubframeType to a C string.
Using a FLAC__SubframeType as the index to this array will give the string equivalent. The contents should not be modified.
FLAC__int64 FLAC__Subframe_Constant::value |
The constant signal value.
const FLAC__int32* FLAC__Subframe_Verbatim::int32 |
A FLAC__int32 pointer to verbatim signal.
const { ... } ::int32 |
A FLAC__int32 pointer to verbatim signal.
const FLAC__int64* FLAC__Subframe_Verbatim::int64 |
A FLAC__int64 pointer to verbatim signal.
const { ... } ::int64 |
A FLAC__int64 pointer to verbatim signal.
FLAC__EntropyCodingMethod FLAC__Subframe_Fixed::entropy_coding_method |
The residual coding method.
uint32_t FLAC__Subframe_Fixed::order |
The polynomial order.
FLAC__int64 FLAC__Subframe_Fixed::warmup[FLAC__MAX_FIXED_ORDER] |
Warmup samples to prime the predictor, length == order.
const FLAC__int32* FLAC__Subframe_Fixed::residual |
The residual signal, length == (blocksize minus order) samples.
FLAC__EntropyCodingMethod FLAC__Subframe_LPC::entropy_coding_method |
The residual coding method.
uint32_t FLAC__Subframe_LPC::order |
The FIR order.
uint32_t FLAC__Subframe_LPC::qlp_coeff_precision |
Quantized FIR filter coefficient precision in bits.
int FLAC__Subframe_LPC::quantization_level |
The qlp coeff shift needed.
FLAC__int32 FLAC__Subframe_LPC::qlp_coeff[FLAC__MAX_LPC_ORDER] |
FIR filter coefficients.
FLAC__int64 FLAC__Subframe_LPC::warmup[FLAC__MAX_LPC_ORDER] |
Warmup samples to prime the predictor, length == order.
const FLAC__int32* FLAC__Subframe_LPC::residual |
The residual signal, length == (blocksize minus order) samples.
|
extern |
== 4 (bits)
|
extern |
== 5 (bits)
|
extern |
== 1 (bit)
This used to be a zero-padding bit (hence the name FLAC__SUBFRAME_ZERO_PAD_LEN) but is now a reserved bit. It still has a mandatory value of 0
but in the future may take on the value 0
or 1
to mean something else.
|
extern |
== 6 (bits)
|
extern |
== 1 (bit)
|
extern |
= 0x00
|
extern |
= 0x02
|
extern |
= 0x10
|
extern |
= 0x40
|
extern |
Maps a FLAC__ChannelAssignment to a C string.
Using a FLAC__ChannelAssignment as the index to this array will give the string equivalent. The contents should not be modified.
|
extern |
Maps a FLAC__FrameNumberType to a C string.
Using a FLAC__FrameNumberType as the index to this array will give the string equivalent. The contents should not be modified.
uint32_t FLAC__FrameHeader::blocksize |
The number of samples per subframe.
uint32_t FLAC__FrameHeader::sample_rate |
The sample rate in Hz.
uint32_t FLAC__FrameHeader::channels |
The number of channels (== number of subframes).
FLAC__ChannelAssignment FLAC__FrameHeader::channel_assignment |
The channel assignment for the frame.
uint32_t FLAC__FrameHeader::bits_per_sample |
The sample resolution.
FLAC__FrameNumberType FLAC__FrameHeader::number_type |
The numbering scheme used for the frame. As a convenience, the decoder will always convert a frame number to a sample number because the rules are complex.
union { ... } FLAC__FrameHeader::number |
The frame number or sample number of first sample in frame; use the number_type value to determine which to use.
FLAC__uint8 FLAC__FrameHeader::crc |
CRC-8 (polynomial = x^8 + x^2 + x^1 + x^0, initialized with 0) of the raw frame header bytes, meaning everything before the CRC byte including the sync code.
|
extern |
== 0x3ffe; the frame header sync code
|
extern |
== 14 (bits)
|
extern |
== 1 (bits)
|
extern |
== 1 (bits)
|
extern |
== 4 (bits)
|
extern |
== 4 (bits)
|
extern |
== 4 (bits)
|
extern |
== 3 (bits)
|
extern |
== 1 (bit)
|
extern |
== 8 (bits)
FLAC__uint16 FLAC__FrameFooter::crc |
CRC-16 (polynomial = x^16 + x^15 + x^2 + x^0, initialized with 0) of the bytes before the crc, back to and including the frame header sync code.
|
extern |
== 16 (bits)
|
extern |
Maps a FLAC__MetadataType to a C string.
Using a FLAC__MetadataType as the index to this array will give the string equivalent. The contents should not be modified.
|
extern |
== 16 (bits)
|
extern |
== 16 (bits)
|
extern |
== 24 (bits)
|
extern |
== 24 (bits)
|
extern |
== 20 (bits)
|
extern |
== 3 (bits)
|
extern |
== 5 (bits)
|
extern |
== 36 (bits)
|
extern |
== 128 (bits)
int FLAC__StreamMetadata_Padding::dummy |
Conceptually this is an empty struct since we don't store the padding bytes. Empty structs are not allowed by some C compilers, hence the dummy.
|
extern |
== 32 (bits)
FLAC__uint64 FLAC__StreamMetadata_SeekPoint::sample_number |
The sample number of the target frame.
FLAC__uint64 FLAC__StreamMetadata_SeekPoint::stream_offset |
The offset, in bytes, of the target frame with respect to beginning of the first frame.
uint32_t FLAC__StreamMetadata_SeekPoint::frame_samples |
The number of samples in the target frame.
|
extern |
== 64 (bits)
|
extern |
== 64 (bits)
|
extern |
== 16 (bits)
|
extern |
The value used in the sample_number field of FLAC__StreamMetadataSeekPoint used to indicate a placeholder point (== 0xffffffffffffffff).
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
FLAC__uint64 FLAC__StreamMetadata_CueSheet_Index::offset |
Offset in samples, relative to the track offset, of the index point.
FLAC__byte FLAC__StreamMetadata_CueSheet_Index::number |
The index point number.
|
extern |
== 64 (bits)
|
extern |
== 8 (bits)
|
extern |
== 3*8 (bits)
FLAC__uint64 FLAC__StreamMetadata_CueSheet_Track::offset |
Track offset in samples, relative to the beginning of the FLAC audio stream.
FLAC__byte FLAC__StreamMetadata_CueSheet_Track::number |
The track number.
char FLAC__StreamMetadata_CueSheet_Track::isrc[13] |
Track ISRC. This is a 12-digit alphanumeric code plus a trailing NUL
byte
uint32_t FLAC__StreamMetadata_CueSheet_Track::type |
The track type: 0 for audio, 1 for non-audio.
uint32_t FLAC__StreamMetadata_CueSheet_Track::pre_emphasis |
The pre-emphasis flag: 0 for no pre-emphasis, 1 for pre-emphasis.
FLAC__byte FLAC__StreamMetadata_CueSheet_Track::num_indices |
The number of track index points.
FLAC__StreamMetadata_CueSheet_Index* FLAC__StreamMetadata_CueSheet_Track::indices |
NULL if num_indices == 0, else pointer to array of index points.
|
extern |
== 64 (bits)
|
extern |
== 8 (bits)
|
extern |
== 12*8 (bits)
|
extern |
== 1 (bit)
|
extern |
== 1 (bit)
|
extern |
== 6+13*8 (bits)
|
extern |
== 8 (bits)
char FLAC__StreamMetadata_CueSheet::media_catalog_number[129] |
Media catalog number, in ASCII printable characters 0x20-0x7e. In general, the media catalog number may be 0 to 128 bytes long; any unused characters should be right-padded with NUL characters.
FLAC__uint64 FLAC__StreamMetadata_CueSheet::lead_in |
The number of lead-in samples.
FLAC__bool FLAC__StreamMetadata_CueSheet::is_cd |
true
if CUESHEET corresponds to a Compact Disc, else false
.
uint32_t FLAC__StreamMetadata_CueSheet::num_tracks |
The number of tracks.
FLAC__StreamMetadata_CueSheet_Track* FLAC__StreamMetadata_CueSheet::tracks |
NULL if num_tracks == 0, else pointer to array of tracks.
|
extern |
== 128*8 (bits)
|
extern |
== 64 (bits)
|
extern |
== 1 (bit)
|
extern |
== 7+258*8 (bits)
|
extern |
== 8 (bits)
|
extern |
Maps a FLAC__StreamMetadata_Picture_Type to a C string.
Using a FLAC__StreamMetadata_Picture_Type as the index to this array will give the string equivalent. The contents should not be modified.
FLAC__StreamMetadata_Picture_Type FLAC__StreamMetadata_Picture::type |
The kind of picture stored.
char* FLAC__StreamMetadata_Picture::mime_type |
Picture data's MIME type, in ASCII printable characters 0x20-0x7e, NUL terminated. For best compatibility with players, use picture data of MIME type image/jpeg
or image/png
. A MIME type of '-->' is also allowed, in which case the picture data should be a complete URL. In file storage, the MIME type is stored as a 32-bit length followed by the ASCII string with no NUL terminator, but is converted to a plain C string in this structure for convenience.
FLAC__byte* FLAC__StreamMetadata_Picture::description |
Picture's description in UTF-8, NUL terminated. In file storage, the description is stored as a 32-bit length followed by the UTF-8 string with no NUL terminator, but is converted to a plain C string in this structure for convenience.
FLAC__uint32 FLAC__StreamMetadata_Picture::width |
Picture's width in pixels.
FLAC__uint32 FLAC__StreamMetadata_Picture::height |
Picture's height in pixels.
FLAC__uint32 FLAC__StreamMetadata_Picture::depth |
Picture's color depth in bits-per-pixel.
FLAC__uint32 FLAC__StreamMetadata_Picture::colors |
For indexed palettes (like GIF), picture's number of colors (the number of palette entries), or 0
for non-indexed (i.e. 2^depth).
FLAC__uint32 FLAC__StreamMetadata_Picture::data_length |
Length of binary picture data in bytes.
FLAC__byte* FLAC__StreamMetadata_Picture::data |
Binary picture data.
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
|
extern |
== 32 (bits)
FLAC__MetadataType FLAC__StreamMetadata::type |
The type of the metadata block; used determine which member of the data union to dereference. If type >= FLAC__METADATA_TYPE_UNDEFINED then data.unknown must be used.
FLAC__bool FLAC__StreamMetadata::is_last |
true
if this metadata block is the last, else false
uint32_t FLAC__StreamMetadata::length |
Length, in bytes, of the block data as it appears in the stream.
union { ... } FLAC__StreamMetadata::data |
Polymorphic block data; use the type value to determine which to use.
|
extern |
== 1 (bit)
|
extern |
== 7 (bits)
|
extern |
== 24 (bits)