RTPSink* AC3AudioFileServerMediaSubsession ::createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) { AC3AudioStreamFramer* audioSource = (AC3AudioStreamFramer*)inputSource; return AC3AudioRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic, audioSource->samplingRate()); }
RTPSink* MPEG1or2DemuxedServerMediaSubsession ::createNewRTPSink(Groupsock* rtpGroupsock, unsigned char rtpPayloadTypeIfDynamic, FramedSource* inputSource) { if ((fStreamIdTag&0xF0) == 0xC0 /*MPEG audio*/) { return MPEG1or2AudioRTPSink::createNew(envir(), rtpGroupsock); } else if ((fStreamIdTag&0xF0) == 0xE0 /*video*/) { return MPEG1or2VideoRTPSink::createNew(envir(), rtpGroupsock); } else if (fStreamIdTag == 0xBD /*AC-3 audio*/) { // Get the sampling frequency from the audio source; use it for the RTP frequency: AC3AudioStreamFramer* audioSource = (AC3AudioStreamFramer*)inputSource; return AC3AudioRTPSink::createNew(envir(), rtpGroupsock, rtpPayloadTypeIfDynamic, audioSource->samplingRate()); } else { return NULL; } }