void DVVideoFileServerMediaSubsession::seekStreamSource(FramedSource* inputSource, double seekNPT) { // First, get the file source from "inputSource" (a framer): DVVideoStreamFramer* framer = (DVVideoStreamFramer*)inputSource; ByteStreamFileSource* fileSource = (ByteStreamFileSource*)(framer->inputSource()); // Then figure out where to seek to within the file: if (fFileDuration > 0.0) { u_int64_t seekByteNumber = (u_int64_t)(((int64_t)fFileSize*seekNPT)/fFileDuration); fileSource->seekToByteAbsolute(seekByteNumber); } }
void DVVideoFileServerMediaSubsession ::setStreamSourceDuration(FramedSource* inputSource, double streamDuration, u_int64_t& numBytes) { // First, get the file source from "inputSource" (a framer): DVVideoStreamFramer* framer = (DVVideoStreamFramer*)inputSource; ByteStreamFileSource* fileSource = (ByteStreamFileSource*)(framer->inputSource()); // Then figure out how many bytes to limit the streaming to: if (fFileDuration > 0.0) { numBytes = (u_int64_t)(((int64_t)fFileSize*streamDuration)/fFileDuration); fileSource->seekToByteRelative(0, numBytes); } }