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