head 1.2; access; symbols pkgsrc-2013Q2:1.2.0.20 pkgsrc-2013Q2-base:1.2 pkgsrc-2012Q4:1.2.0.18 pkgsrc-2012Q4-base:1.2 pkgsrc-2011Q4:1.2.0.16 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q2:1.2.0.14 pkgsrc-2011Q2-base:1.2 pkgsrc-2009Q4:1.2.0.12 pkgsrc-2009Q4-base:1.2 pkgsrc-2008Q4:1.2.0.10 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.8 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.6 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.4 pkgsrc-2008Q2-base:1.2 pkgsrc-2008Q1:1.2.0.2 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.1.0.8 pkgsrc-2007Q4-base:1.1 pkgsrc-2007Q3:1.1.0.6 pkgsrc-2007Q3-base:1.1 pkgsrc-2007Q2:1.1.0.4 pkgsrc-2007Q2-base:1.1 pkgsrc-2007Q1:1.1.0.2 pkgsrc-2007Q1-base:1.1; locks; strict; comment @# @; 1.2 date 2008.03.14.18.55.54; author wiz; state dead; branches; next 1.1; 1.1 date 2007.01.13.15.35.52; author wiz; state Exp; branches; next ; desc @@ 1.2 log @Update to 1.2.0: vorbis-tools 1.2.0 -- 2008-02-21 * FLAC support now relies on libFLAC * Support for large files * Fixed acinclude.m4 to properly support --no switches * ogg123: added remote control support * ogg123: fixed a bug in esd when pressing CTRL + C * ogg123: fixed a type mismatch in option parsing for 64 bit systems * ogg123: configuration no longer hardcoded to /etc * oggdec: limited support for chained Ogg bitstreams * ogg123: compiles with older versions of libcurl * oggdec: support decoding of multiple files into a single one * oggenc: -k, switch for Skeleton bitstream encoding * oggenc: fixed issues with Skeleton on big endian systems * oggenc: proper 5.1 channel mapping support * oggenc: FLAC module does not confuse every Ogg file as its own * oggenc: compiles with older versions of libvorbis * ogginfo: recognizes Skeleton, Dirac, FLAC and Kate bitstreams * vcut: solved issues described in ticket #1313 * vorbiscomment: support for creation of long comments * vorbiscomment: support for multiplexed Vorbis * Several minor bug fixes @ text @$NetBSD: patch-aj,v 1.1 2007/01/13 15:35:52 wiz Exp $ --- oggenc/flac.c.orig 2005-06-03 10:15:10.000000000 +0000 +++ oggenc/flac.c @@@@ -20,15 +20,21 @@@@ #include "platform.h" #include "resample.h" -#define DEFAULT_FLAC_FRAME_SIZE 4608 +#if NEED_EASYFLAC +static FLAC__StreamDecoderReadStatus easyflac_read_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data); +static FLAC__StreamDecoderWriteStatus easyflac_write_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); +static void easyflac_metadata_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); +static void easyflac_error_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); +#else +static FLAC__StreamDecoderReadStatus read_callback(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data); +static FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); +static void metadata_callback(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); +static void error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); +static FLAC__bool eof_callback(const FLAC__StreamDecoder *decoder, void *client_data); +#endif -FLAC__StreamDecoderReadStatus easyflac_read_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data); -FLAC__StreamDecoderWriteStatus easyflac_write_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data); -void easyflac_metadata_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data); -void easyflac_error_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data); - -void resize_buffer(flacfile *flac, int newchannels, int newsamples); -void copy_comments (vorbis_comment *v_comments, FLAC__StreamMetadata_VorbisComment *f_comments); +static void resize_buffer(flacfile *flac, int newchannels, int newsamples); +static void copy_comments (vorbis_comment *v_comments, FLAC__StreamMetadata_VorbisComment *f_comments); int flac_id(unsigned char *buf, int len) @@@@ -76,6 +82,7 @@@@ int flac_open(FILE *in, oe_enc_opt *opt, flac->in = in; /* Setup FLAC decoder */ +#if NEED_EASYFLAC flac->decoder = EasyFLAC__stream_decoder_new(oggflac_id(oldbuf, buflen)); EasyFLAC__set_client_data(flac->decoder, flac); EasyFLAC__set_read_callback(flac->decoder, &easyflac_read_callback); @@@@ -85,13 +92,31 @@@@ int flac_open(FILE *in, oe_enc_opt *opt, EasyFLAC__set_metadata_respond(flac->decoder, FLAC__METADATA_TYPE_STREAMINFO); EasyFLAC__set_metadata_respond(flac->decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT); EasyFLAC__init(flac->decoder); +#else + flac->decoder = FLAC__stream_decoder_new(); + FLAC__stream_decoder_set_md5_checking(flac->decoder, false); + FLAC__stream_decoder_set_metadata_respond(flac->decoder, FLAC__METADATA_TYPE_STREAMINFO); + FLAC__stream_decoder_set_metadata_respond(flac->decoder, FLAC__METADATA_TYPE_VORBIS_COMMENT); + if(oggflac_id(oldbuf, buflen)) + FLAC__stream_decoder_init_ogg_stream(flac->decoder, read_callback, /*seek_callback=*/0, /*tell_callback=*/0, /*length_callback=*/0, eof_callback, write_callback, metadata_callback, error_callback, flac); + else + FLAC__stream_decoder_init_stream(flac->decoder, read_callback, /*seek_callback=*/0, /*tell_callback=*/0, /*length_callback=*/0, eof_callback, write_callback, metadata_callback, error_callback, flac); +#endif /* Callback will set the total samples and sample rate */ +#if NEED_EASYFLAC EasyFLAC__process_until_end_of_metadata(flac->decoder); +#else + FLAC__stream_decoder_process_until_end_of_metadata(flac->decoder); +#endif /* Callback will set the number of channels and resize the audio buffer */ +#if NEED_EASYFLAC EasyFLAC__process_single(flac->decoder); +#else + FLAC__stream_decoder_process_single(flac->decoder); +#endif /* Copy format info for caller */ opt->rate = flac->rate; @@@@ -133,11 +158,19 @@@@ long flac_read(void *in, float **buffer, } else if (!flac->eos) { +#if NEED_EASYFLAC ret = EasyFLAC__process_single(flac->decoder); if (!ret || EasyFLAC__get_state(flac->decoder) == FLAC__STREAM_DECODER_END_OF_STREAM) flac->eos = 1; /* Bail out! */ +#else + ret = FLAC__stream_decoder_process_single(flac->decoder); + if (!ret || + FLAC__stream_decoder_get_state(flac->decoder) + == FLAC__STREAM_DECODER_END_OF_STREAM) + flac->eos = 1; /* Bail out! */ +#endif } else break; } @@@@ -157,13 +190,22 @@@@ void flac_close(void *info) free(flac->buf); free(flac->oldbuf); free(flac->comments); +#if NEED_EASYFLAC EasyFLAC__finish(flac->decoder); EasyFLAC__stream_decoder_delete(flac->decoder); +#else + FLAC__stream_decoder_finish(flac->decoder); + FLAC__stream_decoder_delete(flac->decoder); +#endif free(flac); } +#if NEED_EASYFLAC FLAC__StreamDecoderReadStatus easyflac_read_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__byte buffer[], unsigned *bytes, void *client_data) +#else +FLAC__StreamDecoderReadStatus read_callback(const FLAC__StreamDecoder *decoder, FLAC__byte buffer[], size_t *bytes, void *client_data) +#endif { flacfile *flac = (flacfile *) client_data; int i = 0; @@@@ -200,7 +242,11 @@@@ FLAC__StreamDecoderReadStatus easyflac_r return FLAC__STREAM_DECODER_READ_STATUS_CONTINUE; } +#if NEED_EASYFLAC FLAC__StreamDecoderWriteStatus easyflac_write_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data) +#else +FLAC__StreamDecoderWriteStatus write_callback(const FLAC__StreamDecoder *decoder, const FLAC__Frame *frame, const FLAC__int32 * const buffer[], void *client_data) +#endif { flacfile *flac = (flacfile *) client_data; int samples = frame->header.blocksize; @@@@ -221,7 +267,11 @@@@ FLAC__StreamDecoderWriteStatus easyflac_ return FLAC__STREAM_DECODER_WRITE_STATUS_CONTINUE; } +#if NEED_EASYFLAC void easyflac_metadata_callback(const EasyFLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) +#else +void metadata_callback(const FLAC__StreamDecoder *decoder, const FLAC__StreamMetadata *metadata, void *client_data) +#endif { flacfile *flac = (flacfile *) client_data; @@@@ -240,11 +290,24 @@@@ void easyflac_metadata_callback(const Ea } } +#if NEED_EASYFLAC void easyflac_error_callback(const EasyFLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) +#else +void error_callback(const FLAC__StreamDecoder *decoder, FLAC__StreamDecoderErrorStatus status, void *client_data) +#endif +{ + flacfile *flac = (flacfile *) client_data; + +} + +#if !NEED_EASYFLAC +FLAC__bool eof_callback(const FLAC__StreamDecoder *decoder, void *client_data) { flacfile *flac = (flacfile *) client_data; + return feof(flac->in)? true : false; } +#endif void resize_buffer(flacfile *flac, int newchannels, int newsamples) @@@@ -292,4 +355,3 @@@@ void copy_comments (vorbis_comment *v_co free(comment); } } - @ 1.1 log @Add support for flac-1.1.3 based on Josh Coalson's patches. Bump PKGREVISION because previously it would just disable flac support. @ text @d1 1 a1 1 $NetBSD$ @