=?gb2312?q?=BB=D8=B8=B4=A3=BA=20Re:=20[Live-devel]=20About=20data=20flow?=
Li bz
paul_li20 at yahoo.com.cn
Tue Jun 14 04:12:32 PDT 2005
Thanks, Ross!
I am sorry I am still a bit confused.
In fact, I am referring the following code in
FramedSource.cpp:
void FramedSource::getNextFrame(unsigned char* to,
unsigned maxSize,afterGettingFunc* afterGettingFunc,
void* afterGettingClientData,onCloseFunc* onCloseFunc,
void* onCloseClientData) {
// Make sure we're not already being read:
if (fIsCurrentlyAwaitingData) {
envir() << "FramedSource[" << this <<
"]::getNextFrame(): attempting to read more than once
at the same time!\n";
exit(1);
}
fTo = to;
fMaxSize = maxSize;
fNumTruncatedBytes = 0; // by default; could be
changed by doGetNextFrame()
fDurationInMicroseconds = 0; // by default; could be
changed by doGetNextFrame()
fAfterGettingFunc = afterGettingFunc;
fAfterGettingClientData = afterGettingClientData;
fOnCloseFunc = onCloseFunc;
fOnCloseClientData = onCloseClientData;
fIsCurrentlyAwaitingData = True;
doGetNextFrame();
}
Here doGetNextFrame(), the first time, it calls
MPEG2TransportStreamFramer::doGetNextFrame(), the
second time, it calls
"ByteStreamFileSource::doGetNextFrame()",
I am wondering, which parameter tells this
doGetNextFrame() function in
FramedSource::getNextFrame() to choose different
virtual function implemented in class
MPEG2TransportStreamFramer and class
ByteStreamFileSource respectively? Thanks for your
detail explaination. Sorry for the trouble.
Paul
___________________________________________________________
ÑÅ»¢Ãâ·ÑGÓÊÏä£ÖйúµÚÒ»¾øÎÞÀ¬»øÓʼþɧÈų¬´óÓÊÏä
http://cn.mail.yahoo.com/?id=77071
More information about the live-devel
mailing list