Mercurial > hg > svcore
comparison data/fileio/MP3FileReader.cpp @ 936:0c1d6de8f44b
Merge from branch warnfix_no_size_t
author | Chris Cannam |
---|---|
date | Wed, 18 Jun 2014 13:51:16 +0100 |
parents | d03b3d956358 |
children | 048173126e71 |
comparison
equal
deleted
inserted
replaced
917:49618f39ff09 | 936:0c1d6de8f44b |
---|---|
35 //#define DEBUG_ID3TAG 1 | 35 //#define DEBUG_ID3TAG 1 |
36 | 36 |
37 #include <QFileInfo> | 37 #include <QFileInfo> |
38 | 38 |
39 MP3FileReader::MP3FileReader(FileSource source, DecodeMode decodeMode, | 39 MP3FileReader::MP3FileReader(FileSource source, DecodeMode decodeMode, |
40 CacheMode mode, size_t targetRate, | 40 CacheMode mode, int targetRate, |
41 bool normalised, | |
41 ProgressReporter *reporter) : | 42 ProgressReporter *reporter) : |
42 CodedAudioFileReader(mode, targetRate), | 43 CodedAudioFileReader(mode, targetRate, normalised), |
43 m_source(source), | 44 m_source(source), |
44 m_path(source.getLocalFilename()), | 45 m_path(source.getLocalFilename()), |
45 m_decodeThread(0) | 46 m_decodeThread(0) |
46 { | 47 { |
47 m_channelCount = 0; | 48 m_channelCount = 0; |
83 ::close(fd); | 84 ::close(fd); |
84 return; | 85 return; |
85 } | 86 } |
86 | 87 |
87 ssize_t sz = 0; | 88 ssize_t sz = 0; |
88 size_t offset = 0; | 89 int offset = 0; |
89 while (offset < m_fileSize) { | 90 while (offset < m_fileSize) { |
90 sz = ::read(fd, m_filebuffer + offset, m_fileSize - offset); | 91 sz = ::read(fd, m_filebuffer + offset, m_fileSize - offset); |
91 if (sz < 0) { | 92 if (sz < 0) { |
92 m_error = QString("Read error for file %1 (after %2 bytes)") | 93 m_error = QString("Read error for file %1 (after %2 bytes)") |
93 .arg(m_path).arg(offset); | 94 .arg(m_path).arg(offset); |
272 | 273 |
273 delete[] m_reader->m_filebuffer; | 274 delete[] m_reader->m_filebuffer; |
274 m_reader->m_filebuffer = 0; | 275 m_reader->m_filebuffer = 0; |
275 | 276 |
276 if (m_reader->m_samplebuffer) { | 277 if (m_reader->m_samplebuffer) { |
277 for (size_t c = 0; c < m_reader->m_channelCount; ++c) { | 278 for (int c = 0; c < m_reader->m_channelCount; ++c) { |
278 delete[] m_reader->m_samplebuffer[c]; | 279 delete[] m_reader->m_samplebuffer[c]; |
279 } | 280 } |
280 delete[] m_reader->m_samplebuffer; | 281 delete[] m_reader->m_samplebuffer; |
281 m_reader->m_samplebuffer = 0; | 282 m_reader->m_samplebuffer = 0; |
282 } | 283 } |
288 | 289 |
289 m_reader->endSerialised(); | 290 m_reader->endSerialised(); |
290 } | 291 } |
291 | 292 |
292 bool | 293 bool |
293 MP3FileReader::decode(void *mm, size_t sz) | 294 MP3FileReader::decode(void *mm, int sz) |
294 { | 295 { |
295 DecoderData data; | 296 DecoderData data; |
296 struct mad_decoder decoder; | 297 struct mad_decoder decoder; |
297 | 298 |
298 data.start = (unsigned char const *)mm; | 299 data.start = (unsigned char const *)mm; |
389 | 390 |
390 if (!isDecodeCacheInitialised()) { | 391 if (!isDecodeCacheInitialised()) { |
391 initialiseDecodeCache(); | 392 initialiseDecodeCache(); |
392 } | 393 } |
393 | 394 |
394 if (m_samplebuffersize < frames) { | 395 if (int(m_samplebuffersize) < frames) { |
395 if (!m_samplebuffer) { | 396 if (!m_samplebuffer) { |
396 m_samplebuffer = new float *[channels]; | 397 m_samplebuffer = new float *[channels]; |
397 for (int c = 0; c < channels; ++c) { | 398 for (int c = 0; c < channels; ++c) { |
398 m_samplebuffer[c] = 0; | 399 m_samplebuffer[c] = 0; |
399 } | 400 } |
425 | 426 |
426 return MAD_FLOW_CONTINUE; | 427 return MAD_FLOW_CONTINUE; |
427 } | 428 } |
428 | 429 |
429 enum mad_flow | 430 enum mad_flow |
430 MP3FileReader::error(void *dp, | 431 MP3FileReader::error(void * /* dp */, |
431 struct mad_stream *stream, | 432 struct mad_stream * /* stream */, |
432 struct mad_frame *) | 433 struct mad_frame *) |
433 { | 434 { |
434 DecoderData *data = (DecoderData *)dp; | 435 // DecoderData *data = (DecoderData *)dp; |
435 | 436 |
436 // fprintf(stderr, "decoding error 0x%04x (%s) at byte offset %lu\n", | 437 // fprintf(stderr, "decoding error 0x%04x (%s) at byte offset %lu\n", |
437 // stream->error, mad_stream_errorstr(stream), | 438 // stream->error, mad_stream_errorstr(stream), |
438 // (unsigned long)(stream->this_frame - data->start)); | 439 // (unsigned long)(stream->this_frame - data->start)); |
439 | 440 |