comparison data/fileio/MP3FileReader.cpp @ 935:f960d67ce842 tonioni

Merge from branch warnfix_no_size_t
author Chris Cannam
date Wed, 18 Jun 2014 13:42:01 +0100
parents d03b3d956358
children 048173126e71
comparison
equal deleted inserted replaced
925:3efc20c59a94 935:f960d67ce842
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 bool normalised,
42 ProgressReporter *reporter) : 42 ProgressReporter *reporter) :
43 CodedAudioFileReader(mode, targetRate, normalised), 43 CodedAudioFileReader(mode, targetRate, normalised),
44 m_source(source), 44 m_source(source),
45 m_path(source.getLocalFilename()), 45 m_path(source.getLocalFilename()),
84 ::close(fd); 84 ::close(fd);
85 return; 85 return;
86 } 86 }
87 87
88 ssize_t sz = 0; 88 ssize_t sz = 0;
89 size_t offset = 0; 89 int offset = 0;
90 while (offset < m_fileSize) { 90 while (offset < m_fileSize) {
91 sz = ::read(fd, m_filebuffer + offset, m_fileSize - offset); 91 sz = ::read(fd, m_filebuffer + offset, m_fileSize - offset);
92 if (sz < 0) { 92 if (sz < 0) {
93 m_error = QString("Read error for file %1 (after %2 bytes)") 93 m_error = QString("Read error for file %1 (after %2 bytes)")
94 .arg(m_path).arg(offset); 94 .arg(m_path).arg(offset);
273 273
274 delete[] m_reader->m_filebuffer; 274 delete[] m_reader->m_filebuffer;
275 m_reader->m_filebuffer = 0; 275 m_reader->m_filebuffer = 0;
276 276
277 if (m_reader->m_samplebuffer) { 277 if (m_reader->m_samplebuffer) {
278 for (size_t c = 0; c < m_reader->m_channelCount; ++c) { 278 for (int c = 0; c < m_reader->m_channelCount; ++c) {
279 delete[] m_reader->m_samplebuffer[c]; 279 delete[] m_reader->m_samplebuffer[c];
280 } 280 }
281 delete[] m_reader->m_samplebuffer; 281 delete[] m_reader->m_samplebuffer;
282 m_reader->m_samplebuffer = 0; 282 m_reader->m_samplebuffer = 0;
283 } 283 }
289 289
290 m_reader->endSerialised(); 290 m_reader->endSerialised();
291 } 291 }
292 292
293 bool 293 bool
294 MP3FileReader::decode(void *mm, size_t sz) 294 MP3FileReader::decode(void *mm, int sz)
295 { 295 {
296 DecoderData data; 296 DecoderData data;
297 struct mad_decoder decoder; 297 struct mad_decoder decoder;
298 298
299 data.start = (unsigned char const *)mm; 299 data.start = (unsigned char const *)mm;
390 390
391 if (!isDecodeCacheInitialised()) { 391 if (!isDecodeCacheInitialised()) {
392 initialiseDecodeCache(); 392 initialiseDecodeCache();
393 } 393 }
394 394
395 if (m_samplebuffersize < frames) { 395 if (int(m_samplebuffersize) < frames) {
396 if (!m_samplebuffer) { 396 if (!m_samplebuffer) {
397 m_samplebuffer = new float *[channels]; 397 m_samplebuffer = new float *[channels];
398 for (int c = 0; c < channels; ++c) { 398 for (int c = 0; c < channels; ++c) {
399 m_samplebuffer[c] = 0; 399 m_samplebuffer[c] = 0;
400 } 400 }
426 426
427 return MAD_FLOW_CONTINUE; 427 return MAD_FLOW_CONTINUE;
428 } 428 }
429 429
430 enum mad_flow 430 enum mad_flow
431 MP3FileReader::error(void *dp, 431 MP3FileReader::error(void * /* dp */,
432 struct mad_stream *stream, 432 struct mad_stream * /* stream */,
433 struct mad_frame *) 433 struct mad_frame *)
434 { 434 {
435 DecoderData *data = (DecoderData *)dp; 435 // DecoderData *data = (DecoderData *)dp;
436 436
437 // 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",
438 // stream->error, mad_stream_errorstr(stream), 438 // stream->error, mad_stream_errorstr(stream),
439 // (unsigned long)(stream->this_frame - data->start)); 439 // (unsigned long)(stream->this_frame - data->start));
440 440