Ignore:
Timestamp:
04/27/07 22:37:57 (17 years ago)
Author:
r2d
Message:

corrected a bug when seeking after the last frame as been decoded

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libmpc/trunk/libmpcdec/mpc_decoder.c

    r296 r301  
    169169
    170170    // reconstruct exact filelength
    171         if (d->decoded_samples == d->samples && d->stream_version == 7) {
     171        if (d->decoded_samples - d->samples < MPC_FRAME_LENGTH && d->stream_version == 7) {
    172172                int last_frame_samples = mpc_bits_read(r, 11);
    173                 if (last_frame_samples == 0) last_frame_samples = MPC_FRAME_LENGTH;
    174                 d->samples += last_frame_samples - MPC_FRAME_LENGTH;
    175                 samples_left += last_frame_samples - MPC_FRAME_LENGTH;
     173                if (d->decoded_samples == d->samples) {
     174                        if (last_frame_samples == 0) last_frame_samples = MPC_FRAME_LENGTH;
     175                        d->samples += last_frame_samples - MPC_FRAME_LENGTH;
     176                        samples_left += last_frame_samples - MPC_FRAME_LENGTH;
     177                }
    176178        }
    177179
Note: See TracChangeset for help on using the changeset viewer.