diff options
author | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-06-10 21:59:36 +0200 |
---|---|---|
committer | Alexey Yakovenko <waker@users.sourceforge.net> | 2014-06-10 21:59:36 +0200 |
commit | 881ab7647d293ff39f24f11c0d64f266008929fa (patch) | |
tree | 0e55355a501930fab7611d66f82c4f52ff5792de /plugins | |
parent | 3ecbb67fc5ee8f22ff792a79ab36cb83795f02ee (diff) |
mp3: deleted the wrong garbage skipping code, fixed duration calc in some mp3 files with garbage in front
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/mpgmad/mpgmad.c | 27 |
1 files changed, 9 insertions, 18 deletions
diff --git a/plugins/mpgmad/mpgmad.c b/plugins/mpgmad/mpgmad.c index 22b21051..e2c3e9bc 100644 --- a/plugins/mpgmad/mpgmad.c +++ b/plugins/mpgmad/mpgmad.c @@ -223,7 +223,6 @@ cmp3_scan_stream (buffer_t *buffer, int sample) { buffer->startoffset = initpos; } - int had_invalid_frames = 0; int lastframe_valid = 0; int64_t offs = -1; // }}} @@ -241,11 +240,6 @@ cmp3_scan_stream (buffer_t *buffer, int sample) { uint32_t hdr; uint8_t sync; // {{{ parse frame header, sync stream - // mp3 files often have some garbage in the beginning - // try to skip it if this is the case - if (!lastframe_valid && valid_frames > 5) { - had_invalid_frames = 1; - } if (!lastframe_valid && offs >= 0) { deadbeef->fseek (buffer->file, offs+1, SEEK_SET); } @@ -436,18 +430,16 @@ retry_sync: return 0; } // don't get parameters from frames coming after any bad frame - if (!had_invalid_frames) { - buffer->version = ver; - buffer->layer = layer; - buffer->bitrate = bitrate; - buffer->samplerate = samplerate; - buffer->packetlength = packetlength; - if (nchannels > buffer->channels) { - buffer->channels = nchannels; - } - buffer->bitspersample = 16; -// trace ("frame %d mpeg v%d layer %d bitrate %d samplerate %d packetlength %d channels %d\n", nframe, ver, layer, bitrate, samplerate, packetlength, nchannels); + buffer->version = ver; + buffer->layer = layer; + buffer->bitrate = bitrate; + buffer->samplerate = samplerate; + buffer->packetlength = packetlength; + if (nchannels > buffer->channels) { + buffer->channels = nchannels; } + buffer->bitspersample = 16; +// trace ("frame %d mpeg v%d layer %d bitrate %d samplerate %d packetlength %d channels %d\n", nframe, ver, layer, bitrate, samplerate, packetlength, nchannels); } // }}} @@ -615,7 +607,6 @@ retry_sync: return 0; } buffer->nframes = sz / packetlength; - printf ("buffer->nframes: %d/%d=%d\n", sz, packetlength, buffer->nframes); buffer->avg_packetlength = packetlength; buffer->avg_samplerate = samplerate; buffer->avg_samples_per_frame = samples_per_frame; |