00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _WAV_AUDIO_FILE_SERVER_MEDIA_SUBSESSION_HH
00023 #define _WAV_AUDIO_FILE_SERVER_MEDIA_SUBSESSION_HH
00024
00025 #ifndef _FILE_SERVER_MEDIA_SUBSESSION_HH
00026 #include "FileServerMediaSubsession.hh"
00027 #endif
00028
00029 class WAVAudioFileServerMediaSubsession: public FileServerMediaSubsession{
00030 public:
00031 static WAVAudioFileServerMediaSubsession*
00032 createNew(UsageEnvironment& env, char const* fileName, Boolean reuseFirstSource,
00033 Boolean convertToULaw = False);
00034
00035
00036
00037 protected:
00038 WAVAudioFileServerMediaSubsession(UsageEnvironment& env, char const* fileName,
00039 Boolean reuseFirstSource, Boolean convertToULaw);
00040
00041 virtual ~WAVAudioFileServerMediaSubsession();
00042
00043 protected:
00044 virtual void seekStreamSource(FramedSource* inputSource, double& seekNPT, double streamDuration, u_int64_t& numBytes);
00045 virtual void setStreamSourceScale(FramedSource* inputSource, float scale);
00046 virtual FramedSource* createNewStreamSource(unsigned clientSessionId,
00047 unsigned& estBitrate);
00048 virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock,
00049 unsigned char rtpPayloadTypeIfDynamic,
00050 FramedSource* inputSource);
00051 virtual void testScaleFactor(float& scale);
00052 virtual float duration() const;
00053
00054 protected:
00055 Boolean fConvertToULaw;
00056
00057
00058
00059 unsigned char fAudioFormat;
00060 unsigned char fBitsPerSample;
00061 unsigned fSamplingFrequency;
00062 unsigned fNumChannels;
00063 float fFileDuration;
00064 };
00065
00066 #endif