FLAC 1.5.0 Free Lossless Audio Codec

Classes | Macros | Typedefs | Enumerations | Functions | Variables
stream_decoder.h File Reference
`#include <stdio.h>`
`#include "export.h"`
`#include "format.h"`

Go to the source code of this file.

## Classes

struct | FLAC__StreamDecoder

## Macros

#define | FLAC__STREAM_DECODER_GET_LINK_LENGTHS_INVALID -1
#define | FLAC__STREAM_DECODER_GET_LINK_LENGTHS_NOT_INDEXED -2
#define | FLAC__STREAM_DECODER_GET_LINK_LENGTHS_MEMORY_ALLOCATION_ERROR -3

## Typedefs

typedef FLAC__StreamDecoderReadStatus(* | FLAC__StreamDecoderReadCallback) (const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data)
typedef FLAC__StreamDecoderSeekStatus(* | FLAC__StreamDecoderSeekCallback) (const FLAC__StreamDecoder *decoder, FLAC__uint64 absolute_byte_offset, void *client_data)
typedef FLAC__StreamDecoderTellStatus(* | FLAC__StreamDecoderTellCallback) (const FLAC__StreamDecoder *decoder, FLAC__uint64 *absolute_byte_offset, void *client_data)
typedef FLAC__StreamDecoderLengthStatus(* | FLAC__StreamDecoderLengthCallback) (const FLAC__StreamDecoder *decoder, FLAC__uint64 *stream_length, void *client_data)
typedef FLAC__bool(* | FLAC__StreamDecoderEofCallback) (const FLAC__StreamDecoder *decoder, void *client_data)
typedef FLAC__StreamDecoderWriteStatus(* | FLAC__StreamDecoderWriteCallback) (const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 *const buffer[], void *client_data)
typedef void(* | FLAC__StreamDecoderMetadataCallback) (const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data)
typedef void(* | FLAC__StreamDecoderErrorCallback) (const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data)

## Enumerations

enum | FLAC__StreamDecoderState { FLAC__STREAM_DECODER_SEARCH_FOR_METADATA = 0 , FLAC__STREAM_DECODER_READ_METADATA , FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC , FLAC__STREAM_DECODER_READ_FRAME , FLAC__STREAM_DECODER_END_OF_STREAM , FLAC__STREAM_DECODER_OGG_ERROR , FLAC__STREAM_DECODER_SEEK_ERROR , FLAC__STREAM_DECODER_ABORTED ,
FLAC__STREAM_DECODER_MEMORY_ALLOCATION_ERROR , FLAC__STREAM_DECODER_UNINITIALIZED , FLAC__STREAM_DECODER_END_OF_LINK
}
enum | FLAC__StreamDecoderInitStatus { FLAC__STREAM_DECODER_INIT_STATUS_OK = 0 , FLAC__STREAM_DECODER_INIT_STATUS_UNSUPPORTED_CONTAINER , FLAC__STREAM_DECODER_INIT_STATUS_INVALID_CALLBACKS , FLAC__STREAM_DECODER_INIT_STATUS_MEMORY_ALLOCATION_ERROR , FLAC__STREAM_DECODER_INIT_STATUS_ERROR_OPENING_FILE , FLAC__STREAM_DECODER_INIT_STATUS_ALREADY_INITIALIZED
}
enum | FLAC__StreamDecoderReadStatus { FLAC__STREAM_DECODER_READ_STATUS_CONTINUE , FLAC__STREAM_DECODER_READ_STATUS_END_OF_STREAM , FLAC__STREAM_DECODER_READ_STATUS_ABORT , FLAC__STREAM_DECODER_READ_STATUS_END_OF_LINK }
enum | FLAC__StreamDecoderSeekStatus { FLAC__STREAM_DECODER_SEEK_STATUS_OK , FLAC__STREAM_DECODER_SEEK_STATUS_ERROR , FLAC__STREAM_DECODER_SEEK_STATUS_UNSUPPORTED }
enum | FLAC__StreamDecoderTellStatus { FLAC__STREAM_DECODER_TELL_STATUS_OK , FLAC__STREAM_DECODER_TELL_STATUS_ERROR , FLAC__STREAM_DECODER_TELL_STATUS_UNSUPPORTED }
enum | FLAC__StreamDecoderLengthStatus { FLAC__STREAM_DECODER_LENGTH_STATUS_OK , FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR , FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED }
enum | FLAC__StreamDecoderWriteStatus { FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE , FLAC__STREAM_DECODER_WRITE_STATUS_ABORT }
enum | FLAC__StreamDecoderErrorStatus { FLAC__STREAM_DECODER_ERROR_STATUS_LOST_SYNC , FLAC__STREAM_DECODER_ERROR_STATUS_BAD_HEADER , FLAC__STREAM_DECODER_ERROR_STATUS_FRAME_CRC_MISMATCH , FLAC__STREAM_DECODER_ERROR_STATUS_UNPARSEABLE_STREAM , FLAC__STREAM_DECODER_ERROR_STATUS_BAD_METADATA , FLAC__STREAM_DECODER_ERROR_STATUS_OUT_OF_BOUNDS , FLAC__STREAM_DECODER_ERROR_STATUS_MISSING_FRAME
}

## Functions

FLAC__StreamDecoder * | FLAC__stream_decoder_new (void)
void | FLAC__stream_decoder_delete (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_set_ogg_serial_number (FLAC__StreamDecoder *decoder, long serial_number)
FLAC__bool | FLAC__stream_decoder_set_decode_chained_stream (FLAC__StreamDecoder *decoder, FLAC__bool value)
FLAC__bool | FLAC__stream_decoder_set_md5_checking (FLAC__StreamDecoder *decoder, FLAC__bool value)
FLAC__bool | FLAC__stream_decoder_set_metadata_respond (FLAC__StreamDecoder *decoder, FLAC__MetadataType type)
FLAC__bool | FLAC__stream_decoder_set_metadata_respond_application (FLAC__StreamDecoder *decoder, const FLAC__byte id[4])
FLAC__bool | FLAC__stream_decoder_set_metadata_respond_all (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_set_metadata_ignore (FLAC__StreamDecoder *decoder, FLAC__MetadataType type)
FLAC__bool | FLAC__stream_decoder_set_metadata_ignore_application (FLAC__StreamDecoder *decoder, const FLAC__byte id[4])
FLAC__bool | FLAC__stream_decoder_set_metadata_ignore_all (FLAC__StreamDecoder *decoder)
FLAC__StreamDecoderState | FLAC__stream_decoder_get_state (const FLAC__StreamDecoder *decoder)
const char * | FLAC__stream_decoder_get_resolved_state_string (const FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_get_decode_chained_stream (const FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_get_md5_checking (const FLAC__StreamDecoder *decoder)
FLAC__uint64 | FLAC__stream_decoder_get_total_samples (const FLAC__StreamDecoder *decoder)
FLAC__uint64 | FLAC__stream_decoder_find_total_samples (FLAC__StreamDecoder *decoder)
uint32_t | FLAC__stream_decoder_get_channels (const FLAC__StreamDecoder *decoder)
FLAC__ChannelAssignment | FLAC__stream_decoder_get_channel_assignment (const FLAC__StreamDecoder *decoder)
uint32_t | FLAC__stream_decoder_get_bits_per_sample (const FLAC__StreamDecoder *decoder)
uint32_t | FLAC__stream_decoder_get_sample_rate (const FLAC__StreamDecoder *decoder)
uint32_t | FLAC__stream_decoder_get_blocksize (const FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_get_decode_position (const FLAC__StreamDecoder *decoder, FLAC__uint64 *position)
const void * | FLAC__stream_decoder_get_client_data (FLAC__StreamDecoder *decoder)
int32_t | FLAC__stream_decoder_get_link_lengths (FLAC__StreamDecoder *decoder, FLAC__uint64 **link_lengths)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_stream (FLAC__StreamDecoder *decoder, FLAC__StreamDecoderReadCallback read_callback, FLAC__StreamDecoderSeekCallback seek_callback, FLAC__StreamDecoderTellCallback tell_callback, FLAC__StreamDecoderLengthCallback length_callback, FLAC__StreamDecoderEofCallback eof_callback, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_ogg_stream (FLAC__StreamDecoder *decoder, FLAC__StreamDecoderReadCallback read_callback, FLAC__StreamDecoderSeekCallback seek_callback, FLAC__StreamDecoderTellCallback tell_callback, FLAC__StreamDecoderLengthCallback length_callback, FLAC__StreamDecoderEofCallback eof_callback, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_FILE (FLAC__StreamDecoder *decoder, FILE *file, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_ogg_FILE (FLAC__StreamDecoder *decoder, FILE *file, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_file (FLAC__StreamDecoder *decoder, const char *filename, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__StreamDecoderInitStatus | FLAC__stream_decoder_init_ogg_file (FLAC__StreamDecoder *decoder, const char *filename, FLAC__StreamDecoderWriteCallback write_callback, FLAC__StreamDecoderMetadataCallback metadata_callback, FLAC__StreamDecoderErrorCallback error_callback, void *client_data)
FLAC__bool | FLAC__stream_decoder_finish (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_finish_link (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_flush (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_reset (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_process_single (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_process_until_end_of_metadata (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_process_until_end_of_link (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_process_until_end_of_stream (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_skip_single_frame (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_skip_single_link (FLAC__StreamDecoder *decoder)
FLAC__bool | FLAC__stream_decoder_seek_absolute (FLAC__StreamDecoder *decoder, FLAC__uint64 sample)

## Variables

const char *const | FLAC__StreamDecoderStateString []
const char *const | FLAC__StreamDecoderInitStatusString []
const char *const | FLAC__StreamDecoderReadStatusString []
const char *const | FLAC__StreamDecoderSeekStatusString []
const char *const | FLAC__StreamDecoderTellStatusString []
const char *const | FLAC__StreamDecoderLengthStatusString []
const char *const | FLAC__StreamDecoderWriteStatusString []
const char *const | FLAC__StreamDecoderErrorStatusString []

## Detailed Description

This module contains the functions which implement the stream decoder.

See the detailed documentation in the stream decoder module.

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