00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef _DV_VIDEO_FILE_SERVER_MEDIA_SUBSESSION_HH
00023 #define _DV_VIDEO_FILE_SERVER_MEDIA_SUBSESSION_HH
00024
00025 #ifndef _FILE_SERVER_MEDIA_SUBSESSION_HH
00026 #include "FileServerMediaSubsession.hh"
00027 #endif
00028
00029 class DVVideoFileServerMediaSubsession: public FileServerMediaSubsession{
00030 public:
00031 static DVVideoFileServerMediaSubsession*
00032 createNew(UsageEnvironment& env, char const* fileName, Boolean reuseFirstSource);
00033
00034 private:
00035 DVVideoFileServerMediaSubsession(UsageEnvironment& env, char const* fileName, Boolean reuseFirstSource);
00036
00037 virtual ~DVVideoFileServerMediaSubsession();
00038
00039 private:
00040 virtual char const* getAuxSDPLine(RTPSink* rtpSink, FramedSource* inputSource);
00041 virtual void seekStreamSource(FramedSource* inputSource, double& seekNPT, double streamDuration, u_int64_t& numBytes);
00042 virtual FramedSource* createNewStreamSource(unsigned clientSessionId, unsigned& estBitrate);
00043 virtual RTPSink* createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource);
00044 virtual float duration() const;
00045
00046 private:
00047 float fFileDuration;
00048 };
00049
00050 #endif