Ignore:
Timestamp:
02/17/07 18:49:10 (17 years ago)
Author:
r2d
Message:
  • updated according to the spec
  • now reads / write beginning / end silences, but decoder does not care.
  • please test !
File:
1 edited

Legend:

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

    r219 r220  
    298298                mpc_demux_fill(d, 11, 0); // max header block size
    299299                size = mpc_bits_get_block(&d->bits_reader, &b);
    300                 while( memcmp(b.key, "AD", 2) != 0 ){ // scan all blocks until audio
     300                while( memcmp(b.key, "AP", 2) != 0 ){ // scan all blocks until audio
    301301                        mpc_demux_fill(d, 11 + (mpc_uint32_t) b.size, 0);
    302                         if (memcmp(b.key, "SI", 2) == 0){
     302                        if (memcmp(b.key, "SH", 2) == 0){
    303303                                int ret = streaminfo_read_header_sv8(&d->si, &d->bits_reader, (mpc_uint32_t) b.size);
    304304                                if (ret != MPC_STATUS_OK) return ret;
    305                         } else if (memcmp(b.key, "EI", 2) == 0)
     305                        } else if (memcmp(b.key, "RG", 2) == 0)
     306                                streaminfo_gain(&d->si, &d->bits_reader);
     307                        else if (memcmp(b.key, "EI", 2) == 0)
    306308                                streaminfo_encoder_info(&d->si, &d->bits_reader);
    307                         else if (memcmp(b.key, "SP", 2) == 0)
     309                        else if (memcmp(b.key, "SO", 2) == 0)
    308310                                mpc_demux_SP(d, size, (mpc_uint32_t) b.size);
    309311                        else if (memcmp(b.key, "ST", 2) == 0)
     
    366368                        mpc_demux_fill(d, 11, 0); // max header block size
    367369                        mpc_bits_get_block(&d->bits_reader, &b);
    368                         while( memcmp(b.key, "AD", 2) != 0 ) { // scan all blocks until audio
     370                        while( memcmp(b.key, "AP", 2) != 0 ) { // scan all blocks until audio
    369371                                if (memcmp(b.key, "SE", 2) == 0) { // end block
    370372                                        i->bits = -1;
     
    436438                size = mpc_bits_get_block(&d->bits_reader, &b);
    437439                while(i < fwd) {
    438                         if (memcmp(b.key, "AD", 2) == 0) {
     440                        if (memcmp(b.key, "AP", 2) == 0) {
    439441                                if (d->d->decoded_samples == (d->seek_table_size << d->seek_pwr) * MPC_FRAME_LENGTH) {
    440442                                        d->seek_table[d->seek_table_size] = (mpc_uint32_t) mpc_demux_pos(d) - 8 * size;
Note: See TracChangeset for help on using the changeset viewer.