00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "H263plusVideoFileServerMediaSubsession.hh"
00026 #include "H263plusVideoRTPSink.hh"
00027 #include "ByteStreamFileSource.hh"
00028 #include "H263plusVideoStreamFramer.hh"
00029
00030 H263plusVideoFileServerMediaSubsession*
00031 H263plusVideoFileServerMediaSubsession::createNew(UsageEnvironment& env,
00032 char const* fileName,
00033 Boolean reuseFirstSource) {
00034 return new H263plusVideoFileServerMediaSubsession(env, fileName, reuseFirstSource);
00035 }
00036
00037 H263plusVideoFileServerMediaSubsession
00038 ::H263plusVideoFileServerMediaSubsession(UsageEnvironment& env,
00039 char const* fileName,
00040 Boolean reuseFirstSource)
00041 : FileServerMediaSubsession(env, fileName, reuseFirstSource) {
00042 }
00043
00044 H263plusVideoFileServerMediaSubsession::~H263plusVideoFileServerMediaSubsession() {
00045 }
00046
00047 FramedSource* H263plusVideoFileServerMediaSubsession
00048 ::createNewStreamSource(unsigned , unsigned& estBitrate) {
00049 estBitrate = 500;
00050
00051
00052 ByteStreamFileSource* fileSource = ByteStreamFileSource::createNew(envir(), fFileName);
00053 if (fileSource == NULL) return NULL;
00054 fFileSize = fileSource->fileSize();
00055
00056
00057 return H263plusVideoStreamFramer::createNew(envir(), fileSource);
00058 }
00059
00060 RTPSink* H263plusVideoFileServerMediaSubsession::createNewRTPSink(Groupsock* rtpGroupsock,
00061 unsigned char rtpPayloadTypeIfDynamic,
00062 FramedSource* ) {
00063 return H263plusVideoRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic);
00064 }