decoder/flac: emulate FLAC__stream_decoder_init_stream()
Remove the wrapper flac_init().
This commit is contained in:
@@ -67,6 +67,38 @@ typedef unsigned flac_read_status_size_t;
|
|||||||
#define FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
|
#define FLAC__STREAM_DECODER_LENGTH_STATUS_ERROR FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
|
||||||
#define FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
|
#define FLAC__STREAM_DECODER_LENGTH_STATUS_UNSUPPORTED FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_ERROR
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
FLAC__STREAM_DECODER_INIT_STATUS_OK,
|
||||||
|
FLAC__STREAM_DECODER_INIT_STATUS_ERROR,
|
||||||
|
} FLAC__StreamDecoderInitStatus;
|
||||||
|
|
||||||
|
static inline FLAC__StreamDecoderInitStatus
|
||||||
|
FLAC__stream_decoder_init_stream(FLAC__SeekableStreamDecoder *decoder,
|
||||||
|
FLAC__SeekableStreamDecoderReadCallback read_cb,
|
||||||
|
FLAC__SeekableStreamDecoderSeekCallback seek_cb,
|
||||||
|
FLAC__SeekableStreamDecoderTellCallback tell_cb,
|
||||||
|
FLAC__SeekableStreamDecoderLengthCallback length_cb,
|
||||||
|
FLAC__SeekableStreamDecoderEofCallback eof_cb,
|
||||||
|
FLAC__SeekableStreamDecoderWriteCallback write_cb,
|
||||||
|
FLAC__SeekableStreamDecoderMetadataCallback metadata_cb,
|
||||||
|
FLAC__SeekableStreamDecoderErrorCallback error_cb,
|
||||||
|
void *data)
|
||||||
|
{
|
||||||
|
return FLAC__seekable_stream_decoder_set_read_callback(decoder, read_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_seek_callback(decoder, seek_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_tell_callback(decoder, tell_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_length_callback(decoder, length_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_eof_callback(decoder, eof_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_write_callback(decoder, write_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_metadata_callback(decoder, metadata_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_metadata_respond(decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_error_callback(decoder, error_cb) &&
|
||||||
|
FLAC__seekable_stream_decoder_set_client_data(decoder, data) &&
|
||||||
|
FLAC__seekable_stream_decoder_init(decoder) == FLAC__SEEKABLE_STREAM_DECODER_OK
|
||||||
|
? FLAC__STREAM_DECODER_INIT_STATUS_OK
|
||||||
|
: FLAC__STREAM_DECODER_INIT_STATUS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
#else /* FLAC_API_VERSION_CURRENT > 7 */
|
#else /* FLAC_API_VERSION_CURRENT > 7 */
|
||||||
|
|
||||||
# include <FLAC/stream_decoder.h>
|
# include <FLAC/stream_decoder.h>
|
||||||
|
@@ -150,31 +150,6 @@ static void flacPrintErroredState(FLAC__SeekableStreamDecoderState state)
|
|||||||
|
|
||||||
g_warning("%s\n", str);
|
g_warning("%s\n", str);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool
|
|
||||||
flac_init(FLAC__SeekableStreamDecoder *dec,
|
|
||||||
FLAC__SeekableStreamDecoderReadCallback read_cb,
|
|
||||||
FLAC__SeekableStreamDecoderSeekCallback seek_cb,
|
|
||||||
FLAC__SeekableStreamDecoderTellCallback tell_cb,
|
|
||||||
FLAC__SeekableStreamDecoderLengthCallback length_cb,
|
|
||||||
FLAC__SeekableStreamDecoderEofCallback eof_cb,
|
|
||||||
FLAC__SeekableStreamDecoderWriteCallback write_cb,
|
|
||||||
FLAC__SeekableStreamDecoderMetadataCallback metadata_cb,
|
|
||||||
FLAC__SeekableStreamDecoderErrorCallback error_cb,
|
|
||||||
void *data)
|
|
||||||
{
|
|
||||||
return FLAC__seekable_stream_decoder_set_read_callback(dec, read_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_seek_callback(dec, seek_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_tell_callback(dec, tell_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_length_callback(dec, length_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_eof_callback(dec, eof_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_write_callback(dec, write_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_metadata_callback(dec, metadata_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_metadata_respond(dec, FLAC__METADATA_TYPE_VORBIS_COMMENT) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_error_callback(dec, error_cb) &&
|
|
||||||
FLAC__seekable_stream_decoder_set_client_data(dec, data) &&
|
|
||||||
FLAC__seekable_stream_decoder_init(dec) == FLAC__SEEKABLE_STREAM_DECODER_OK;
|
|
||||||
}
|
|
||||||
#else /* FLAC_API_VERSION_CURRENT >= 7 */
|
#else /* FLAC_API_VERSION_CURRENT >= 7 */
|
||||||
static void flacPrintErroredState(FLAC__StreamDecoderState state)
|
static void flacPrintErroredState(FLAC__StreamDecoderState state)
|
||||||
{
|
{
|
||||||
@@ -489,11 +464,18 @@ flac_decode_internal(struct decoder * decoder,
|
|||||||
goto fail;
|
goto fail;
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
if (!flac_init(flac_dec, flac_read_cb,
|
FLAC__StreamDecoderInitStatus status =
|
||||||
flac_seek_cb, flac_tell_cb,
|
FLAC__stream_decoder_init_stream(flac_dec,
|
||||||
flac_length_cb, flac_eof_cb,
|
flac_read_cb,
|
||||||
flac_write_cb, flacMetadata,
|
flac_seek_cb,
|
||||||
flac_error_cb, (void *)&data)) {
|
flac_tell_cb,
|
||||||
|
flac_length_cb,
|
||||||
|
flac_eof_cb,
|
||||||
|
flac_write_cb,
|
||||||
|
flacMetadata,
|
||||||
|
flac_error_cb,
|
||||||
|
(void *)&data);
|
||||||
|
if (status != FLAC__STREAM_DECODER_INIT_STATUS_OK) {
|
||||||
err = "doing init()";
|
err = "doing init()";
|
||||||
goto fail;
|
goto fail;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user