1 #ifndef ADM_ODML_AUDIO_H 2 #define ADM_ODML_AUDIO_H 3 #include <BVector.h> 4 5 #include "ADM_audioStream.h" 6 class odmlIndex; 7 /** 8 \class ADM_aviAudioAccess 9 \brief provided audio access 10 */ 11 class ADM_aviAudioAccess : public ADM_audioAccess 12 { 13 protected: 14 15 uint32_t length; 16 uint32_t pos; 17 FILE *fd; 18 uint32_t currentIndex; 19 BVector <odmlIndex> myIndex; 20 uint32_t nbIndex; 21 WAVHeader *wavHeader; 22 uint64_t currentPosition; 23 public: 24 ADM_aviAudioAccess(odmlIndex *idx,WAVHeader *hdr, 25 uint32_t nbchunk, 26 const char *name, 27 uint32_t extraLen, 28 uint8_t *extraData); 29 30 virtual ~ADM_aviAudioAccess(); 31 32 canSeekTime(void)33 virtual bool canSeekTime(void) {return false;}; canSeekOffset(void)34 virtual bool canSeekOffset(void) {return true;}; canGetDuration(void)35 virtual bool canGetDuration(void) {return false;}; getDurationInUs(void)36 virtual uint64_t getDurationInUs(void) {return 0;}; getLength(void)37 virtual uint32_t getLength(void) {return length;} goToTime(uint64_t timeUs)38 virtual bool goToTime(uint64_t timeUs) {ADM_assert(0);return true;} 39 virtual bool isCBR(void) ; 40 virtual uint64_t getPos(void); 41 bool updatePos(void); 42 bool nextIndex(void); 43 44 45 46 virtual bool getPacket(uint8_t *buffer, uint32_t *size, uint32_t maxSize,uint64_t *dts); 47 virtual bool setPos(uint64_t pos); 48 }; 49 50 51 #endif 52 //EOF 53