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