00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef _MP3_ADU_TRANSCODER_HH
00022 #define _MP3_ADU_TRANSCODER_HH
00023
00024 #ifndef _FRAMED_FILTER_HH
00025 #include "FramedFilter.hh"
00026 #endif
00027
00028 class MP3ADUTranscoder: public FramedFilter {
00029 public:
00030 static MP3ADUTranscoder* createNew(UsageEnvironment& env,
00031 unsigned outBitrate ,
00032 FramedSource* inputSource);
00033
00034 unsigned outBitrate() const { return fOutBitrate; }
00035 protected:
00036 MP3ADUTranscoder(UsageEnvironment& env,
00037 unsigned outBitrate ,
00038 FramedSource* inputSource);
00039
00040 virtual ~MP3ADUTranscoder();
00041
00042 private:
00043
00044 virtual void doGetNextFrame();
00045 virtual void getAttributes() const;
00046
00047 private:
00048 static void afterGettingFrame(void* clientData,
00049 unsigned numBytesRead, unsigned numTruncatedBytes,
00050 struct timeval presentationTime,
00051 unsigned durationInMicroseconds);
00052 void afterGettingFrame1(unsigned numBytesRead, unsigned numTruncatedBytes,
00053 struct timeval presentationTime,
00054 unsigned durationInMicroseconds);
00055
00056 private:
00057 unsigned fOutBitrate;
00058 unsigned fAvailableBytesForBackpointer;
00059
00060 unsigned char* fOrigADU;
00061
00062 };
00063
00064 #endif