00001
00002
00003
00004
00005 #ifndef _AUDIO_CODEC_H_
00006 #define _AUDIO_CODEC_H_
00007
00008 #include <sys/types.h>
00009
00010 #include "Codec.h"
00011 #include "A_Format.h"
00012
00013
00014 class A_Track;
00015 class VideoFile;
00016
00017
00022 class A_Codec: public Codec, public A_Format {
00023 public:
00024 A_Codec( A_Track *Track );
00025
00026 virtual ~A_Codec();
00027
00032 virtual int encodeAudio( int16_t **daten, int samples );
00033
00038 virtual int encodeAudio( float **daten, int samples );
00039
00043 virtual int decodeAudio( int16_t **&daten, int samples );
00044
00048 virtual int decodeAudio( float **&daten, int samples );
00049
00052 virtual int SeekSample( int64_t sample );
00053
00056 virtual int SeekTime( double seconds );
00057
00061 virtual double BitsPerSecond( void ) { return 0; }
00062
00065 A_Track *Track( void ) { return track; }
00066
00067 protected:
00070 virtual int encode( float **daten, int sampels );
00071
00074 virtual int decode( float **daten, int sampels );
00075
00076 A_Track *track;
00077
00078 private:
00079
00080
00084 void alloc_buffers( long len );
00085
00088 int16_t **sample_puffer_int16;
00089
00092 float **sample_puffer_float;
00093
00096 long sample_puffer_len;
00097
00100 int sample_puffer_channels;
00101
00102
00103 };
00104
00105
00106 #endif