Ignore:
Timestamp:
11/25/06 15:19:25 (17 years ago)
Author:
r2d
Message:
  • updated libmpcdec win32 project files
  • removed some libmpcdec warnings in msvc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libmpc/branches/r2d/libmpcdec/mpc_demux.c

    r150 r151  
    3333*/
    3434
     35#include <string.h>
    3536#include <mpcdec/streaminfo.h>
    3637#include <mpcdec/mpcdec.h>
     
    114115 */
    115116static void
    116 mpc_demux_seek(mpc_demux * d, mpc_uint32_t fpos, mpc_uint32_t min_bytes) {
     117mpc_demux_seek(mpc_demux * d, mpc_size_t fpos, mpc_uint32_t min_bytes) {
    117118//      mpc_uint32_t cur_pos = d->r->tell(d->r);
    118         mpc_uint32_t next_pos;
     119        mpc_size_t next_pos;
    119120        mpc_int_t bit_offset;
    120121
     
    123124        next_pos = fpos >> 3;
    124125        if (d->si.stream_version == 7)
    125                 next_pos &= (-1u << 2);
    126         bit_offset = fpos - (next_pos << 3);
     126                next_pos &= (-1 << 2);
     127        bit_offset = (int) (fpos - (next_pos << 3));
    127128        next_pos += d->si.header_position; // add id3 offset
    128129
    129         d->r->seek(d->r, next_pos);
     130        d->r->seek(d->r, (mpc_int32_t) next_pos);
    130131        mpc_demux_clear_buff(d);
    131132        if (d->si.stream_version == 7)
     
    155156        if (d->si.block_pwr > d->seek_pwr)
    156157                d->seek_pwr = d->si.block_pwr;
    157         d->seek_table = malloc((1 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr)) * sizeof(mpc_uint32_t));
     158        d->seek_table = malloc((size_t)(1 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr)) * sizeof(mpc_uint32_t));
    158159        if (d->seek_table == 0)
    159160                return MPC_STATUS_FILE;
    160         d->seek_table[0] = mpc_demux_pos(d);
     161        d->seek_table[0] = (mpc_uint32_t)mpc_demux_pos(d);
    161162        d->seek_table_size = 1;
    162163
     
    175176
    176177        mpc_bits_get_size(&r, &tmp);
    177         d->seek_table_size = tmp;
     178        d->seek_table_size = (mpc_uint32_t) tmp;
    178179        d->seek_pwr = d->si.block_pwr + mpc_bits_read(&r, 4);
    179         d->seek_table = malloc((1 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr)) * sizeof(mpc_uint32_t));
     180        d->seek_table = malloc((size_t)(1 + d->si.samples / (MPC_FRAME_LENGTH << d->seek_pwr)) * sizeof(mpc_uint32_t));
    180181
    181182        table = d->seek_table;
    182183        mpc_bits_get_size(&r, &tmp);
    183         table[0] = (tmp + d->si.header_position) * 8;
     184        table[0] = (mpc_uint32_t) (tmp + d->si.header_position) * 8;
    184185
    185186        if (d->seek_table_size == 1)
     
    187188
    188189        mpc_bits_get_size(&r, &tmp);
    189         table[1] = (tmp + d->si.header_position) * 8;
     190        table[1] = (mpc_uint32_t) (tmp + d->si.header_position) * 8;
    190191
    191192        for (i = 2; i < d->seek_table_size; i++) {
    192193                int code = mpc_bits_golomb_dec(&r, 12);
    193194                if (code & 1)
    194                         code = -(code & (-1u << 1));
     195                        code = -(code & (-1 << 1));
    195196                code <<= 2;
    196197                table[i] = code + 2 * table[i-1] - table[i-2];
     
    209210        mpc_bits_get_block(&d->bits_reader, &b);
    210211        if (memcmp(b.key, "ST", 2) == 0) {
    211                 mpc_demux_fill(d, b.size, 0);
     212                mpc_demux_fill(d, (mpc_uint32_t) b.size, 0);
    212213                mpc_demux_ST(d);
    213214        }
     
    253254                size = mpc_bits_get_block(&d->bits_reader, &b);
    254255                while( memcmp(b.key, "AD", 2) != 0 ){ // scan all blocks until audio
    255                         mpc_demux_fill(d, 11 + b.size, 0);
     256                        mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, 0);
    256257                        if (memcmp(b.key, "SI", 2) == 0){
    257                                 int ret = streaminfo_read_header_sv8(&d->si, &d->bits_reader, b.size);
     258                                int ret = streaminfo_read_header_sv8(&d->si, &d->bits_reader, (mpc_uint32_t) b.size);
    258259                                if (ret != MPC_STATUS_OK) return ret;
    259260                        } else if (memcmp(b.key, "EI", 2) == 0)
    260261                                streaminfo_encoder_info(&d->si, &d->bits_reader);
    261262                        else if (memcmp(b.key, "SP", 2) == 0)
    262                                 mpc_demux_SP(d, size, b.size);
     263                                mpc_demux_SP(d, size, (mpc_uint32_t) b.size);
    263264                        else if (memcmp(b.key, "ST", 2) == 0)
    264265                                mpc_demux_ST(d);
     
    315316                        d->bits_reader.count &= -8;
    316317                        if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
    317                                 d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
     318                                d->seek_table[d->seek_table_size] = (mpc_uint32_t) mpc_demux_pos(d);
    318319                                d->seek_table_size ++;
    319320                        }
     
    325326                                        break;
    326327                                }
    327                                 mpc_demux_fill(d, 11 + b.size, 0);
     328                                mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, 0);
    328329                                d->bits_reader.buff += b.size;
    329330                                mpc_bits_get_block(&d->bits_reader, &b);
    330331                        }
    331                         d->block_bits = b.size * 8;
     332                        d->block_bits = (mpc_uint32_t) b.size * 8;
    332333                }
    333334                // FIXME : this is not good if block size > buffer size
     
    337338                d->block_bits -= ((d->bits_reader.buff - r.buff) << 3) + r.count - d->bits_reader.count;
    338339        } else {
     340                mpc_bits_reader r;
    339341                if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
    340                         d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
     342                        d->seek_table[d->seek_table_size] = (mpc_uint32_t) mpc_demux_pos(d);
    341343                        d->seek_table_size ++;
    342344                }
    343                 mpc_bits_reader r;
    344345                mpc_demux_fill(d, MAX_FRAME_SIZE, MPC_BUFFER_FULL | MPC_BUFFER_SWAP);
    345346                mpc_bits_read(&d->bits_reader, 20); // read frame size
     
    354355}
    355356
    356 mpc_status mpc_demux_seek_sample(mpc_demux * d, mpc_int64_t destsample)
     357mpc_status mpc_demux_seek_sample(mpc_demux * d, mpc_uint64_t destsample)
    357358{
    358359        mpc_uint32_t fwd, samples_to_skip, fpos, i;
     
    388389                        if (memcmp(b.key, "AD", 2) == 0) {
    389390                                if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
    390                                         d->seek_table[d->seek_table_size] = mpc_demux_pos(d) - 8 * size;
     391                                        d->seek_table[d->seek_table_size] = (mpc_uint32_t) mpc_demux_pos(d) - 8 * size;
    391392                                        d->seek_table_size ++;
    392393                                }
     
    394395                                i++;
    395396                        }
    396                         fpos += (b.size + size) * 8;
     397                        fpos += ((mpc_uint32_t)b.size + size) * 8;
    397398                        mpc_demux_seek(d, fpos, 11);
    398399                        size = mpc_bits_get_block(&d->bits_reader, &b);
     
    404405                for( ; i < fwd; i++){
    405406                        if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
    406                                 d->seek_table[d->seek_table_size] = mpc_demux_pos(d);
     407                                d->seek_table[d->seek_table_size] = (mpc_uint32_t) mpc_demux_pos(d);
    407408                                d->seek_table_size ++;
    408409                        }
Note: See TracChangeset for help on using the changeset viewer.