Ticket #2957: mythmusic-flac113support-cleanups.patch
File mythmusic-flac113support-cleanups.patch, 14.0 KB (added by , 17 years ago) |
---|
-
mythplugins/mythmusic/mythmusic/flacencoder.h
9 9 #if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7 10 10 /* FLAC 1.0.4 to 1.1.2 */ 11 11 #include <FLAC/file_encoder.h> 12 #define encoder_new() FLAC__file_encoder_new() 13 #define encoder_setup(enc, streamable_subset, do_mid_side_stereo, \ 14 loose_mid_side_stereo, channels, bits_per_sample, \ 15 sample_rate, blocksize, max_lpc_order, \ 16 qlp_coeff_precision, do_qlp_coeff_prec_search, \ 17 do_escape_coding, do_exhaustive_model_search, \ 18 min_residual_partition_order, max_residual_partition_order, \ 19 rice_parameter_search_dist) \ 20 { \ 21 FLAC__file_encoder_set_streamable_subset(enc, streamable_subset); \ 22 FLAC__file_encoder_set_do_mid_side_stereo(enc, do_mid_side_stereo); \ 23 FLAC__file_encoder_set_loose_mid_side_stereo(enc, loose_mid_side_stereo); \ 24 FLAC__file_encoder_set_channels(enc, channels); \ 25 FLAC__file_encoder_set_bits_per_sample(enc, bits_per_sample); \ 26 FLAC__file_encoder_set_sample_rate(enc, sample_rate); \ 27 FLAC__file_encoder_set_blocksize(enc, blocksize); \ 28 FLAC__file_encoder_set_max_lpc_order(enc, max_lpc_order); \ 29 FLAC__file_encoder_set_qlp_coeff_precision(enc, qlp_coeff_precision); \ 30 FLAC__file_encoder_set_do_qlp_coeff_prec_search(enc, do_qlp_coeff_prec_search); \ 31 FLAC__file_encoder_set_do_escape_coding(enc, do_escape_coding); \ 32 FLAC__file_encoder_set_do_exhaustive_model_search(enc, do_exhaustive_model_search); \ 33 FLAC__file_encoder_set_min_residual_partition_order(enc, min_residual_partition_order); \ 34 FLAC__file_encoder_set_max_residual_partition_order(enc, max_residual_partition_order); \ 35 FLAC__file_encoder_set_rice_parameter_search_dist(enc, rice_parameter_search_dist); \ 36 } 37 #define encoder_finish(enc) FLAC__file_encoder_finish(enc) 38 #define encoder_delete(enc) FLAC__file_encoder_delete(enc) 39 #define encoder_process(enc, data, index) FLAC__file_encoder_process(enc, data, index) 12 #define FLACENC FLAC__file_encoder 40 13 #define FLAC_ENCODER FLAC__FileEncoder 41 14 #else 42 15 /* FLAC 1.1.3 and up */ 43 16 #define NEWFLAC 44 17 #include <FLAC/stream_encoder.h> 45 #define encoder_new() FLAC__stream_encoder_new() 46 #define encoder_setup(enc, streamable_subset, do_mid_side_stereo, \ 47 loose_mid_side_stereo, channels, bits_per_sample, \ 48 sample_rate, blocksize, max_lpc_order, \ 49 qlp_coeff_precision, do_qlp_coeff_prec_search, \ 50 do_escape_coding, do_exhaustive_model_search, \ 51 min_residual_partition_order, max_residual_partition_order, \ 52 rice_parameter_search_dist) \ 53 { \ 54 FLAC__stream_encoder_set_streamable_subset(enc, streamable_subset); \ 55 FLAC__stream_encoder_set_do_mid_side_stereo(enc, do_mid_side_stereo); \ 56 FLAC__stream_encoder_set_loose_mid_side_stereo(enc, loose_mid_side_stereo); \ 57 FLAC__stream_encoder_set_channels(enc, channels); \ 58 FLAC__stream_encoder_set_bits_per_sample(enc, bits_per_sample); \ 59 FLAC__stream_encoder_set_sample_rate(enc, sample_rate); \ 60 FLAC__stream_encoder_set_blocksize(enc, blocksize); \ 61 FLAC__stream_encoder_set_max_lpc_order(enc, max_lpc_order); \ 62 FLAC__stream_encoder_set_qlp_coeff_precision(enc, qlp_coeff_precision); \ 63 FLAC__stream_encoder_set_do_qlp_coeff_prec_search(enc, do_qlp_coeff_prec_search); \ 64 FLAC__stream_encoder_set_do_escape_coding(enc, do_escape_coding); \ 65 FLAC__stream_encoder_set_do_exhaustive_model_search(enc, do_exhaustive_model_search); \ 66 FLAC__stream_encoder_set_min_residual_partition_order(enc, min_residual_partition_order); \ 67 FLAC__stream_encoder_set_max_residual_partition_order(enc, max_residual_partition_order); \ 68 FLAC__stream_encoder_set_rice_parameter_search_dist(enc, rice_parameter_search_dist); \ 69 } 70 #define encoder_finish(enc) FLAC__stream_encoder_finish(enc) 71 #define encoder_delete(enc) FLAC__stream_encoder_delete(enc) 72 #define encoder_process(enc, data, index) FLAC__stream_encoder_process(enc, data, index) 18 #define FLACENC FLAC__stream_encoder 73 19 #define FLAC_ENCODER FLAC__StreamEncoder 74 20 #endif 75 21 22 #define encoder_new() FLACENC_new() 23 #define encoder_setup(enc, streamable_subset, do_mid_side_stereo, \ 24 loose_mid_side_stereo, channels, bits_per_sample, \ 25 sample_rate, blocksize, max_lpc_order, \ 26 qlp_coeff_precision, do_qlp_coeff_prec_search, \ 27 do_escape_coding, do_exhaustive_model_search, \ 28 min_residual_partition_order, max_residual_partition_order, \ 29 rice_parameter_search_dist) \ 30 { \ 31 FLACENC_set_streamable_subset(enc, streamable_subset); \ 32 FLACENC_set_do_mid_side_stereo(enc, do_mid_side_stereo); \ 33 FLACENC_set_loose_mid_side_stereo(enc, loose_mid_side_stereo); \ 34 FLACENC_set_channels(enc, channels); \ 35 FLACENC_set_bits_per_sample(enc, bits_per_sample); \ 36 FLACENC_set_sample_rate(enc, sample_rate); \ 37 FLACENC_set_blocksize(enc, blocksize); \ 38 FLACENC_set_max_lpc_order(enc, max_lpc_order); \ 39 FLACENC_set_qlp_coeff_precision(enc, qlp_coeff_precision); \ 40 FLACENC_set_do_qlp_coeff_prec_search(enc, do_qlp_coeff_prec_search); \ 41 FLACENC_set_do_escape_coding(enc, do_escape_coding); \ 42 FLACENC_set_do_exhaustive_model_search(enc, do_exhaustive_model_search); \ 43 FLACENC_set_min_residual_partition_order(enc, min_residual_partition_order); \ 44 FLACENC_set_max_residual_partition_order(enc, max_residual_partition_order); \ 45 FLACENC_set_rice_parameter_search_dist(enc, rice_parameter_search_dist); \ 46 } 47 #define encoder_process(enc, data, index) FLACENC_process(enc, data, index) 48 #define encoder_finish(enc) FLACENC_finish(enc) 49 #define encoder_delete(enc) FLACENC_delete(enc) 50 76 51 #include "encoder.h" 77 52 78 53 #define MAX_SAMPLES 588 * 4 -
mythplugins/mythmusic/mythmusic/flacdecoder.h
6 6 #include <FLAC/export.h> 7 7 #if !defined(FLAC_API_VERSION_CURRENT) || FLAC_API_VERSION_CURRENT <= 7 8 8 /* FLAC 1.0.4 to 1.1.2 */ 9 #define StreamDecoderReadStatus FLAC__SeekableStreamDecoderReadStatus10 9 #define StreamDecoder FLAC__SeekableStreamDecoder 11 #define STREAM_DECODER_READ_STATUS_ERROR FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_ERROR 12 #define STREAM_DECODER_READ_STATUS_OK FLAC__SEEKABLE_STREAM_DECODER_READ_STATUS_OK 13 #define StreamDecoderSeekStatus FLAC__SeekableStreamDecoderSeekStatus 14 #define STREAM_DECODER_SEEK_STATUS_ERROR FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_ERROR 15 #define STREAM_DECODER_SEEK_STATUS_OK FLAC__SEEKABLE_STREAM_DECODER_SEEK_STATUS_OK 16 #define StreamDecoderTellStatus FLAC__SeekableStreamDecoderTellStatus 17 #define STREAM_DECODER_TELL_STATUS_OK FLAC__SEEKABLE_STREAM_DECODER_TELL_STATUS_OK 18 #define StreamDecoderLengthStatus FLAC__SeekableStreamDecoderLengthStatus 19 #define STREAM_DECODER_LENGTH_STATUS_OK FLAC__SEEKABLE_STREAM_DECODER_LENGTH_STATUS_OK 10 #define STREAM_DECODER FLAC__SEEKABLE_STREAM_DECODER 20 11 #define FileDecoder FLAC__FileDecoder 21 #define decoder_new() FLAC__seekable_stream_decoder_new() 22 #define decoder_set_md5_checking(dec, op) \ 23 FLAC__seekable_stream_decoder_set_md5_checking(dec, op) 24 #define decoder_setup(dec, read, seek, tell, length, \ 25 eof, write, metadata, error, data) \ 12 #define stream_decoder FLAC__seekable_stream_decoder 13 #define stream_decoder_setup(dec, read, seek, tell, length, \ 14 eof, write, metadata, error, data) \ 26 15 { \ 27 FLAC__seekable_stream_decoder_set_read_callback(dec, read); \28 FLAC__seekable_stream_decoder_set_seek_callback(dec, seek); \29 FLAC__seekable_stream_decoder_set_tell_callback(dec, tell); \30 FLAC__seekable_stream_decoder_set_length_callback(dec, length); \31 FLAC__seekable_stream_decoder_set_eof_callback(dec, eof); \32 FLAC__seekable_stream_decoder_set_write_callback(dec, write); \33 FLAC__seekable_stream_decoder_set_metadata_callback(dec, metadata); \34 FLAC__seekable_stream_decoder_set_error_callback(dec, error); \35 FLAC__seekable_stream_decoder_set_client_data(dec, data); \16 stream_decoder_set_read_callback(dec, read); \ 17 stream_decoder_set_seek_callback(dec, seek); \ 18 stream_decoder_set_tell_callback(dec, tell); \ 19 stream_decoder_set_length_callback(dec, length); \ 20 stream_decoder_set_eof_callback(dec, eof); \ 21 stream_decoder_set_write_callback(dec, write); \ 22 stream_decoder_set_metadata_callback(dec, metadata); \ 23 stream_decoder_set_error_callback(dec, error); \ 24 stream_decoder_set_client_data(dec, data); \ 36 25 } 37 #define decoder_process_metadata FLAC__seekable_stream_decoder_process_until_end_of_metadata38 #define decoder_finish FLAC__seekable_stream_decoder_finish39 #define decoder_delete FLAC__seekable_stream_decoder_delete40 #define DecoderState FLAC__SeekableStreamDecoderState41 #define decoder_seek_absolute FLAC__seekable_stream_decoder_seek_absolute42 #define decoder_process_single FLAC__seekable_stream_decoder_process_single43 #define decoder_get_state FLAC__seekable_stream_decoder_get_state44 26 #else 45 27 /* FLAC 1.1.3 and up */ 46 28 #define NEWFLAC 47 #define StreamDecoderReadStatus FLAC__StreamDecoderReadStatus48 29 #define StreamDecoder FLAC__StreamDecoder 49 #define STREAM_DECODER_READ_STATUS_ERROR FLAC__STREAM_DECODER_READ_STATUS_ABORT 50 #define STREAM_DECODER_READ_STATUS_OK FLAC__STREAM_DECODER_READ_STATUS_CONTINUE 51 #define StreamDecoderSeekStatus FLAC__StreamDecoderSeekStatus 52 #define STREAM_DECODER_SEEK_STATUS_ERROR FLAC__STREAM_DECODER_SEEK_STATUS_ERROR 53 #define STREAM_DECODER_SEEK_STATUS_OK FLAC__STREAM_DECODER_SEEK_STATUS_OK 54 #define StreamDecoderTellStatus FLAC__StreamDecoderTellStatus 55 #define STREAM_DECODER_TELL_STATUS_OK FLAC__STREAM_DECODER_TELL_STATUS_OK 56 #define StreamDecoderLengthStatus FLAC__StreamDecoderLengthStatus 57 #define STREAM_DECODER_LENGTH_STATUS_OK FLAC__STREAM_DECODER_LENGTH_STATUS_OK 30 #define STREAM_DECODER FLAC__STREAM_DECODER 58 31 #define FileDecoder FLAC__StreamDecoder 59 #define decoder_new() FLAC__stream_decoder_new() 60 #define decoder_set_md5_checking(dec, op) \ 61 FLAC__stream_decoder_set_md5_checking(dec, op) 62 #define decoder_setup(decoder, read, seek, tell, length, eof, write, metadata, error, data) \ 63 FLAC__stream_decoder_init_stream(decoder, read, seek, tell, length, \ 64 eof, write, metadata, error, data) 65 #define decoder_process_metadata FLAC__stream_decoder_process_until_end_of_metadata 66 #define decoder_finish FLAC__stream_decoder_finish 67 #define decoder_delete FLAC__stream_decoder_delete 68 #define DecoderState FLAC__StreamDecoderState 69 #define decoder_seek_absolute FLAC__stream_decoder_seek_absolute 70 #define decoder_process_single FLAC__stream_decoder_process_single 71 #define decoder_get_state FLAC__stream_decoder_get_state 32 #define stream_decoder FLAC__stream_decoder 33 #define stream_decoder_setup(decoder, read, seek, tell, length, eof, write, metadata, error, data) \ 34 stream_decoder_init_stream(decoder, read, seek, tell, length, \ 35 eof, write, metadata, error, data) 72 36 #endif 73 37 74 38 #include "decoder.h" -
mythplugins/mythmusic/mythmusic/flacdecoder.cpp
262 262 } 263 263 } 264 264 265 decoder = decoder_new();266 decoder_set_md5_checking(decoder, false);267 decoder_setup(decoder, flacread, flacseek, flactell, flaclength,265 decoder = stream_decoder_new(); 266 stream_decoder_set_md5_checking(decoder, false); 267 stream_decoder_setup(decoder, flacread, flacseek, flactell, flaclength, 268 268 flaceof, flacwrite, flacmetadata, flacerror, this); 269 269 270 270 freq = 0; … … 277 277 #if !defined(NEWFLAC) 278 278 FLAC__seekable_stream_decoder_init(decoder); 279 279 #endif 280 decoder_process_metadata(decoder);280 stream_decoder_process_metadata(decoder); 281 281 282 282 inited = TRUE; 283 283 return TRUE; … … 290 290 291 291 void FlacDecoder::deinit() 292 292 { 293 decoder_finish(decoder);294 decoder_delete(decoder);293 stream_decoder_finish(decoder); 294 stream_decoder_delete(decoder); 295 295 296 296 if (input()->isOpen()) 297 297 input()->close(); … … 325 325 } 326 326 327 327 bool flacok = true; 328 DecoderState decoderstate;328 StreamDecoderState decoderstate; 329 329 330 330 while (! done && ! finish) { 331 331 lock(); … … 335 335 FLAC__uint64 sample = (FLAC__uint64)(seekTime * 44100.0); 336 336 if (sample > totalsamples - 50) 337 337 sample = totalsamples - 50; 338 decoder_seek_absolute(decoder, sample);338 stream_decoder_seek_absolute(decoder, sample); 339 339 seekTime = -1.0; 340 340 } 341 341 342 flacok = decoder_process_single(decoder);343 decoderstate = decoder_get_state(decoder);342 flacok = stream_decoder_process_single(decoder); 343 decoderstate = stream_decoder_get_state(decoder); 344 344 345 345 if (decoderstate == 0 || decoderstate == 1) 346 346 {