Ignore:
Timestamp:
12/14/07 00:22:01 (16 years ago)
Author:
radscorpion
Message:

MPC Demux works. Right now it can only be used with Dump filter, because
it accepts any mediatype.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dsfilters/demux_mpc/src/mpc_file.h

    r367 r368  
    99
    1010class CMPCReader;
     11
     12//-----------------------------------------------------------------------------
     13//
     14//      CMPCPacket
     15//
     16//-----------------------------------------------------------------------------
     17
     18class CMPCPacket
     19{
     20public:
     21        int64           file_position;                          // absolute file position
     22
     23        uint8           *packet;                                        // we own this one
     24        uint8           *payload;                                       // just a pointer
     25        int32           packet_size;                            // whole packet size
     26        int32           payload_size;                           // only the payload
     27
     28        uint16          key;                                            // parsed key value
     29
     30        REFERENCE_TIME  tStart, tStop;                  // to be used later
     31
     32public:
     33        CMPCPacket();
     34        virtual ~CMPCPacket();
     35
     36        // loading packets
     37        int Load(CMPCReader *reader);
     38        void Release();
     39};
    1140
    1241
     
    2958        int                             block_pwr;                             
    3059        int                             seek_pwr;
    31         int64                   total_samples;
    3260
    3361        // replay gain
     
    4371        int64                   seek_table_size;
    4472
     73        // current position
     74        int64                   total_samples;
     75        int64                   current_sample;
     76
    4577        // internals
    4678        CMPCReader              *reader;                                // file reader interface
    4779
    48         // packet parsing
    49         int                             key;                                    // key for current packet
    50         uint8                   *packet;                                // packet payload
    51         int                             packet_max_size;                // maximum allowed packet size
    52         int                             packet_size;                    // size of currently loaded payload
    53         int64                   packet_pos;                             // absolute position in file
     80        // buffer for decoder specific info
     81        uint8                   *extradata;
     82        int                             extradata_max_size;             // total size
     83        int                             extradata_size;                 // current size of extradata
    5484       
    5585public:
     
    5989        // I/O for MPC file
    6090        int Open(CMPCReader *reader);
    61         int ReadNextPacket();
    6291
    6392        // parsing packets
    64         int ReadStreamHeader();
    65         int ReadReplaygain();
    66         int ReadSeekOffset();
    67         int ReadSeekTable();
     93        int ReadStreamHeader(CMPCPacket *packet);
     94        int ReadReplaygain(CMPCPacket *packet);
     95        int ReadSeekOffset(CMPCPacket *packet);
     96        int ReadSeekTable(CMPCPacket *packet);
     97        void StoreExtraDataPacket(CMPCPacket *packet);
     98
     99        // parsing out packets
     100        int ReadAudioPacket(CMPCPacket *packet, int64 *cur_sample);
     101        int Seek(int64 seek_sample);
    68102
    69103};
Note: See TracChangeset for help on using the changeset viewer.