metadata.h File Reference
`#include <sys/types.h>`
`#include "export.h"`
`#include "callback.h"`
`#include "format.h"`

Go to the source code of this file.

## Typedefs

typedef struct FLAC__Metadata_SimpleIterator | FLAC__Metadata_SimpleIterator
typedef struct FLAC__Metadata_Chain | FLAC__Metadata_Chain
typedef struct FLAC__Metadata_Iterator | FLAC__Metadata_Iterator

## Enumerations

enum

FLAC__Metadata_SimpleIteratorStatus {
FLAC__METADATA_SIMPLE_ITERATOR_STATUS_OK = 0 , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ILLEGAL_INPUT , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_ERROR_OPENING_FILE , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_A_FLAC_FILE ,
FLAC__METADATA_SIMPLE_ITERATOR_STATUS_NOT_WRITABLE , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_BAD_METADATA , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_READ_ERROR , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_SEEK_ERROR ,
FLAC__METADATA_SIMPLE_ITERATOR_STATUS_WRITE_ERROR , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_RENAME_ERROR , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_UNLINK_ERROR , FLAC__METADATA_SIMPLE_ITERATOR_STATUS_MEMORY_ALLOCATION_ERROR ,
FLAC__METADATA_SIMPLE_ITERATOR_STATUS_INTERNAL_ERROR
}

enum

FLAC__Metadata_ChainStatus {
FLAC__METADATA_CHAIN_STATUS_OK = 0 , FLAC__METADATA_CHAIN_STATUS_ILLEGAL_INPUT , FLAC__METADATA_CHAIN_STATUS_ERROR_OPENING_FILE , FLAC__METADATA_CHAIN_STATUS_NOT_A_FLAC_FILE ,
FLAC__METADATA_CHAIN_STATUS_NOT_WRITABLE , FLAC__METADATA_CHAIN_STATUS_BAD_METADATA , FLAC__METADATA_CHAIN_STATUS_READ_ERROR , FLAC__METADATA_CHAIN_STATUS_SEEK_ERROR ,
FLAC__METADATA_CHAIN_STATUS_WRITE_ERROR , FLAC__METADATA_CHAIN_STATUS_RENAME_ERROR , FLAC__METADATA_CHAIN_STATUS_UNLINK_ERROR , FLAC__METADATA_CHAIN_STATUS_MEMORY_ALLOCATION_ERROR ,
FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR , FLAC__METADATA_CHAIN_STATUS_INVALID_CALLBACKS , FLAC__METADATA_CHAIN_STATUS_READ_WRITE_MISMATCH , FLAC__METADATA_CHAIN_STATUS_WRONG_WRITE_CALL
}

## Functions

FLAC__bool | FLAC__metadata_get_streaminfo (const char *filename, FLAC__StreamMetadata *streaminfo)
FLAC__bool | FLAC__metadata_get_tags (const char *filename, FLAC__StreamMetadata **tags)
FLAC__bool | FLAC__metadata_get_cuesheet (const char *filename, FLAC__StreamMetadata **cuesheet)
FLAC__bool | FLAC__metadata_get_picture (const char *filename, FLAC__StreamMetadata **picture, FLAC__StreamMetadata_Picture_Type type, const char *mime_type, const FLAC__byte *description, uint32_t max_width, uint32_t max_height, uint32_t max_depth, uint32_t max_colors)
FLAC__Metadata_SimpleIterator * | FLAC__metadata_simple_iterator_new (void)
void | FLAC__metadata_simple_iterator_delete (FLAC__Metadata_SimpleIterator *iterator)
FLAC__Metadata_SimpleIteratorStatus | FLAC__metadata_simple_iterator_status (FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_init (FLAC__Metadata_SimpleIterator *iterator, const char *filename, FLAC__bool read_only, FLAC__bool preserve_file_stats)
FLAC__bool | FLAC__metadata_simple_iterator_is_writable (const FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_next (FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_prev (FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_is_last (const FLAC__Metadata_SimpleIterator *iterator)
off_t | FLAC__metadata_simple_iterator_get_block_offset (const FLAC__Metadata_SimpleIterator *iterator)
FLAC__MetadataType | FLAC__metadata_simple_iterator_get_block_type (const FLAC__Metadata_SimpleIterator *iterator)
uint32_t | FLAC__metadata_simple_iterator_get_block_length (const FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_get_application_id (FLAC__Metadata_SimpleIterator *iterator, FLAC__byte *id)
FLAC__StreamMetadata * | FLAC__metadata_simple_iterator_get_block (FLAC__Metadata_SimpleIterator *iterator)
FLAC__bool | FLAC__metadata_simple_iterator_set_block (FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding)
FLAC__bool | FLAC__metadata_simple_iterator_insert_block_after (FLAC__Metadata_SimpleIterator *iterator, FLAC__StreamMetadata *block, FLAC__bool use_padding)
FLAC__bool | FLAC__metadata_simple_iterator_delete_block (FLAC__Metadata_SimpleIterator *iterator, FLAC__bool use_padding)
FLAC__Metadata_Chain * | FLAC__metadata_chain_new (void)
void | FLAC__metadata_chain_delete (FLAC__Metadata_Chain *chain)
FLAC__Metadata_ChainStatus | FLAC__metadata_chain_status (FLAC__Metadata_Chain *chain)
FLAC__bool | FLAC__metadata_chain_read (FLAC__Metadata_Chain *chain, const char *filename)
FLAC__bool | FLAC__metadata_chain_read_ogg (FLAC__Metadata_Chain *chain, const char *filename)
FLAC__bool | FLAC__metadata_chain_read_with_callbacks (FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks)
FLAC__bool | FLAC__metadata_chain_read_ogg_with_callbacks (FLAC__Metadata_Chain *chain, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks)
FLAC__bool | FLAC__metadata_chain_check_if_tempfile_needed (FLAC__Metadata_Chain *chain, FLAC__bool use_padding)
FLAC__bool | FLAC__metadata_chain_write (FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__bool preserve_file_stats)
FLAC__bool | FLAC__metadata_chain_write_new_file (FLAC__Metadata_Chain *chain, const char *filename, FLAC__bool use_padding)
FLAC__bool | FLAC__metadata_chain_write_with_callbacks (FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks)
FLAC__bool | FLAC__metadata_chain_write_with_callbacks_and_tempfile (FLAC__Metadata_Chain *chain, FLAC__bool use_padding, FLAC__IOHandle handle, FLAC__IOCallbacks callbacks, FLAC__IOHandle temp_handle, FLAC__IOCallbacks temp_callbacks)
void | FLAC__metadata_chain_merge_padding (FLAC__Metadata_Chain *chain)
void | FLAC__metadata_chain_sort_padding (FLAC__Metadata_Chain *chain)
FLAC__Metadata_Iterator * | FLAC__metadata_iterator_new (void)
void | FLAC__metadata_iterator_delete (FLAC__Metadata_Iterator *iterator)
void | FLAC__metadata_iterator_init (FLAC__Metadata_Iterator *iterator, FLAC__Metadata_Chain *chain)
FLAC__bool | FLAC__metadata_iterator_next (FLAC__Metadata_Iterator *iterator)
FLAC__bool | FLAC__metadata_iterator_prev (FLAC__Metadata_Iterator *iterator)
FLAC__MetadataType | FLAC__metadata_iterator_get_block_type (const FLAC__Metadata_Iterator *iterator)
FLAC__StreamMetadata * | FLAC__metadata_iterator_get_block (FLAC__Metadata_Iterator *iterator)
FLAC__bool | FLAC__metadata_iterator_set_block (FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block)
FLAC__bool | FLAC__metadata_iterator_delete_block (FLAC__Metadata_Iterator *iterator, FLAC__bool replace_with_padding)
FLAC__bool | FLAC__metadata_iterator_insert_block_before (FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block)
FLAC__bool | FLAC__metadata_iterator_insert_block_after (FLAC__Metadata_Iterator *iterator, FLAC__StreamMetadata *block)
FLAC__StreamMetadata * | FLAC__metadata_object_new (FLAC__MetadataType type)
FLAC__StreamMetadata * | FLAC__metadata_object_clone (const FLAC__StreamMetadata *object)
void | FLAC__metadata_object_delete (FLAC__StreamMetadata *object)
FLAC__bool | FLAC__metadata_object_is_equal (const FLAC__StreamMetadata *block1, const FLAC__StreamMetadata *block2)
FLAC__bool | FLAC__metadata_object_application_set_data (FLAC__StreamMetadata *object, FLAC__byte *data, uint32_t length, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_seektable_resize_points (FLAC__StreamMetadata *object, uint32_t new_num_points)
void | FLAC__metadata_object_seektable_set_point (FLAC__StreamMetadata *object, uint32_t point_num, FLAC__StreamMetadata_SeekPoint point)
FLAC__bool | FLAC__metadata_object_seektable_insert_point (FLAC__StreamMetadata *object, uint32_t point_num, FLAC__StreamMetadata_SeekPoint point)
FLAC__bool | FLAC__metadata_object_seektable_delete_point (FLAC__StreamMetadata *object, uint32_t point_num)
FLAC__bool | FLAC__metadata_object_seektable_is_legal (const FLAC__StreamMetadata *object)
FLAC__bool | FLAC__metadata_object_seektable_template_append_placeholders (FLAC__StreamMetadata *object, uint32_t num)
FLAC__bool | FLAC__metadata_object_seektable_template_append_point (FLAC__StreamMetadata *object, FLAC__uint64 sample_number)
FLAC__bool | FLAC__metadata_object_seektable_template_append_points (FLAC__StreamMetadata *object, FLAC__uint64 sample_numbers[], uint32_t num)
FLAC__bool | FLAC__metadata_object_seektable_template_append_spaced_points (FLAC__StreamMetadata *object, uint32_t num, FLAC__uint64 total_samples)
FLAC__bool | FLAC__metadata_object_seektable_template_append_spaced_points_by_samples (FLAC__StreamMetadata *object, uint32_t samples, FLAC__uint64 total_samples)
FLAC__bool | FLAC__metadata_object_seektable_template_sort (FLAC__StreamMetadata *object, FLAC__bool compact)
FLAC__bool | FLAC__metadata_object_vorbiscomment_set_vendor_string (FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_vorbiscomment_resize_comments (FLAC__StreamMetadata *object, uint32_t new_num_comments)
FLAC__bool | FLAC__metadata_object_vorbiscomment_set_comment (FLAC__StreamMetadata *object, uint32_t comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_vorbiscomment_insert_comment (FLAC__StreamMetadata *object, uint32_t comment_num, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_vorbiscomment_append_comment (FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_vorbiscomment_replace_comment (FLAC__StreamMetadata *object, FLAC__StreamMetadata_VorbisComment_Entry entry, FLAC__bool all, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_vorbiscomment_delete_comment (FLAC__StreamMetadata *object, uint32_t comment_num)
FLAC__bool | FLAC__metadata_object_vorbiscomment_entry_from_name_value_pair (FLAC__StreamMetadata_VorbisComment_Entry *entry, const char *field_name, const char *field_value)
FLAC__bool | FLAC__metadata_object_vorbiscomment_entry_to_name_value_pair (const FLAC__StreamMetadata_VorbisComment_Entry entry, char **field_name, char **field_value)
FLAC__bool | FLAC__metadata_object_vorbiscomment_entry_matches (const FLAC__StreamMetadata_VorbisComment_Entry entry, const char *field_name, uint32_t field_name_length)
int | FLAC__metadata_object_vorbiscomment_find_entry_from (const FLAC__StreamMetadata *object, uint32_t offset, const char *field_name)
int | FLAC__metadata_object_vorbiscomment_remove_entry_matching (FLAC__StreamMetadata *object, const char *field_name)
int | FLAC__metadata_object_vorbiscomment_remove_entries_matching (FLAC__StreamMetadata *object, const char *field_name)
FLAC__StreamMetadata_CueSheet_Track * | FLAC__metadata_object_cuesheet_track_new (void)
FLAC__StreamMetadata_CueSheet_Track * | FLAC__metadata_object_cuesheet_track_clone (const FLAC__StreamMetadata_CueSheet_Track *object)
void | FLAC__metadata_object_cuesheet_track_delete (FLAC__StreamMetadata_CueSheet_Track *object)
FLAC__bool | FLAC__metadata_object_cuesheet_track_resize_indices (FLAC__StreamMetadata *object, uint32_t track_num, uint32_t new_num_indices)
FLAC__bool | FLAC__metadata_object_cuesheet_track_insert_index (FLAC__StreamMetadata *object, uint32_t track_num, uint32_t index_num, FLAC__StreamMetadata_CueSheet_Index index)
FLAC__bool | FLAC__metadata_object_cuesheet_track_insert_blank_index (FLAC__StreamMetadata *object, uint32_t track_num, uint32_t index_num)
FLAC__bool | FLAC__metadata_object_cuesheet_track_delete_index (FLAC__StreamMetadata *object, uint32_t track_num, uint32_t index_num)
FLAC__bool | FLAC__metadata_object_cuesheet_resize_tracks (FLAC__StreamMetadata *object, uint32_t new_num_tracks)
FLAC__bool | FLAC__metadata_object_cuesheet_set_track (FLAC__StreamMetadata *object, uint32_t track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_cuesheet_insert_track (FLAC__StreamMetadata *object, uint32_t track_num, FLAC__StreamMetadata_CueSheet_Track *track, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_cuesheet_insert_blank_track (FLAC__StreamMetadata *object, uint32_t track_num)
FLAC__bool | FLAC__metadata_object_cuesheet_delete_track (FLAC__StreamMetadata *object, uint32_t track_num)
FLAC__bool | FLAC__metadata_object_cuesheet_is_legal (const FLAC__StreamMetadata *object, FLAC__bool check_cd_da_subset, const char **violation)
FLAC__uint32 | FLAC__metadata_object_cuesheet_calculate_cddb_id (const FLAC__StreamMetadata *object)
FLAC__bool | FLAC__metadata_object_picture_set_mime_type (FLAC__StreamMetadata *object, char *mime_type, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_picture_set_description (FLAC__StreamMetadata *object, FLAC__byte *description, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_picture_set_data (FLAC__StreamMetadata *object, FLAC__byte *data, FLAC__uint32 length, FLAC__bool copy)
FLAC__bool | FLAC__metadata_object_picture_is_legal (const FLAC__StreamMetadata *object, const char **violation)
FLAC__byte * | FLAC__metadata_object_get_raw (const FLAC__StreamMetadata *object)
FLAC__StreamMetadata * | FLAC__metadata_object_set_raw (FLAC__byte *buffer, FLAC__uint32 length)

## Variables

const char *const | FLAC__Metadata_SimpleIteratorStatusString []
const char *const | FLAC__Metadata_ChainStatusString []

## Detailed Description

This module provides functions for creating and manipulating FLAC metadata blocks in memory, and three progressively more powerful interfaces for traversing and editing metadata in FLAC files.

See the detailed documentation for each interface in the metadata module.

Copyright (c) 2000-2009 Josh Coalson Copyright (c) 2011-2025 Xiph.Org Foundation