📄 cvideodatams.cpp
字号:
ofstream outfile1("PacketMessage.txt",std::ios_base::app);
if (!outfile1)
cerr<<"Unable to save session data!\n";
else
outfile1<<"************* video test data file *************"
<<"\n"
<<"VideoPacketSize="<<pFLVideoPacketArrivalMessage->iPacketSize
<<"\t"
<<"VideoPacketInterval="<<m_iVideoPacketInterval
<<"\t"
<<"TimeOfGeneratePacket="<<pFLVideoPacketArrivalMessage->iTimeOfGeneratePacket
<<"\n"
<<"VideoFrameInterval="<<m_iVideoFrameInterval
<<"\t"
<<"TotalPacketNumInFrame="<<12
<<"\t"
// <<"GeneratedPacketNumInFrame="<<pFLVideoPacketArrivalMessage->iPacketIndex
// <<"\n"
<<"VideoDataQueueSize="<<m_lDataQueueSize
<<"\t"
// <<"IsVideoFrameDataOver="<<m_bIsVideoFrameDataOver
// <<"\n"
// <<"VideoFrameSize="<<m_iVideoFrameSize
// <<"\t"
// <<"GeneratedVideoDataPerFrame="<<m_iVideoGeneratedDataPerFrame
<<endl;
///////////////////////////////////////////////////////
*/
/*-----------------------------------------------------------------*/
}
else
{
m_iVideoPacketInterval--;
}
}
else
{
m_iVideoFrameSize=m_iVideoGeneratedDataPerFrame; //得到当前帧的数据量
if(m_iVideoFrameInterval<=0)
{
VideoFrameSetUp();
/*----------------------------------------------------------------*/
//为了统计packetcall吞吐量及时延特性(即frame吞吐量)增加下面几句
static FLVIDEOPACKETCALLARRIVALMESSAGE_TYPE m_FLVideoFrame;
m_FLVideoFrame.iTimeOfGenerateFrame=m_iCurrentSlotNum;
m_FLVideoFrame.lDataBitsOfFrame=m_iVideoFrameSize;
/*
///////////////////////////////////////////////////////
//记录当前Packet消息
ofstream outfile2("FrameMessage.txt",std::ios_base::app);
if (!outfile2)
cerr<<"Unable to save session data!\n";
else
outfile2<<"TimeOfGenerateFrame="<<m_FLVideoFrame.iTimeOfGenerateFrame
<<"\t"
<<"DataBitsOfFrame="<<m_FLVideoFrame.lDataBitsOfFrame
<<endl;
///////////////////////////////////////////////////////*/
/*-----------------------------------------------------------------*/
}
else return;
}
/******************** for test,to be deleted!! ********************/
// cout<<"**********************************************"<<endl;
// cout<<"VideoPacketSize="<<m_iVideoPacketSize<<endl;
// cout<<"VideoDataQueueSize="<<m_lDataQueueSize<<endl;
}
///////////////////////////////////////////////////////////////////////////
// Title: CVideoDataMs::VideoFrameSetUp()
//
// Function: Create a new frame and initialize some variables.In addition,
// generate the first packet of the new frame.
//
// Calling function: no function
//
// Called by function: CVideoDataMs::VideoFrameProcess()
//
// Written by: Dou Zhongzhao
//
// Programming date: 08/29/2001
//
// Revised record:
//
//////////////////////////////////////////////////////////////////////////
void CVideoDataMs::VideoFrameSetUp() //设置新帧的函数
{
m_iVideoGeneratedPacketNumInFrame=0; //当前生成的分组数置0
m_iVideoGeneratedDataPerFrame=0; //当前帧已经生成的数据量置0
m_iVideoFrameInterval=80; //帧间隔初始化为80slot
m_bIsVideoFrameDataOver=false; //标志最后一个packet还没有生成
//生成第一个packet的间隔
VideoPacketIntervalGeneration();
}
// ************ interface functions *****************
int CVideoDataMs::GetVideoBufferSize() //得到缓冲器窗口长度
{
return m_iVideoBufferSize;
}
void CVideoDataMs::SetVideoBufferSize(int ip) //设置缓冲器窗口长度
{
m_iVideoBufferSize=ip;
}
int CVideoDataMs::GetVideoFrameInterval() //得到帧间隔
{
return m_iVideoFrameInterval;
}
void CVideoDataMs::SetVideoFrameInterval(int ip) //设置帧间隔
{
m_iVideoFrameInterval=ip;
}
int CVideoDataMs::GetVideoFrameSize() //得到当前帧的数据量
{
return m_iVideoFrameSize;
}
void CVideoDataMs::SetVideoFrameSize(int ip) //设置当前帧的数据量
{
m_iVideoFrameSize=ip;
}
//int GetVideoGeneratedDataPerFrame() //得到当前帧已经生成的数据量
int CVideoDataMs::GetVideoGeneratedDataPerFrame()
{
return m_iVideoGeneratedDataPerFrame;
}
//void SetVideoGeneratedDataPerFrame(int ip) //设置当前帧已经生成的数据量
void CVideoDataMs::SetVideoGeneratedDataPerFrame(int ip)
{
m_iVideoGeneratedDataPerFrame=ip;
}
int CVideoDataMs::GetVideoTotalPacketNumInFrame() //得到一帧中分组数目
{
return m_iVideoTotalPacketNumInFrame;
}
void CVideoDataMs::SetVideoTotalPacketNumInFrame(int ip) //设置一帧中分组数目
{
m_iVideoTotalPacketNumInFrame=ip;
}
int CVideoDataMs::GetVideoPacketSize() //得到分组的大小
{
return m_iVideoPacketSize;
}
void CVideoDataMs::SetVideoPacketSize(int ip) //设置分组的大小
{
m_iVideoPacketSize=ip;
}
int CVideoDataMs::GetVideoPacketSizeK() //得到参数K
{
return m_iVideoPacketSizeK;
}
void CVideoDataMs::SetVideoPacketSizeK(int ip) //设置参数K
{
m_iVideoPacketSizeK=ip;
}
float CVideoDataMs::GetVideoPacketSizeAlpha() //得到参数α
{
return m_fVideoPacketSizeAlpha;
}
void CVideoDataMs::SetVideoPacketSizeAlpha(float fp) //设置参数α
{
m_fVideoPacketSizeAlpha=fp;
}
int CVideoDataMs::GetVideoPacketSizeMaximum() //得到分组的最大值
{
return m_iVideoPacketSizeMaximum;
}
void CVideoDataMs::SetVideoPacketSizeMaximum(int ip) //设置分组的最大值
{
m_iVideoPacketSizeMaximum=ip;
}
int CVideoDataMs::GetVideoPacketInterval() //得到分组的间隔
{
return m_iVideoPacketInterval;
}
void CVideoDataMs::SetVideoPacketInterval(int ip) //设置分组的间隔
{
m_iVideoPacketInterval=ip;
}
int CVideoDataMs::GetVideoPacketIntervalMaximum() //得到分组间隔最大值
{
return m_iVideoPacketIntervalMaximum;
}
void CVideoDataMs::SetVideoPacketIntervalMaximum(int ip) //设置分组间隔的最大值
{
m_iVideoPacketIntervalMaximum=ip;
}
int CVideoDataMs::GetVideoGeneratedPacketNumInFrame() //得到一帧中已经生成的packet的数量
{
return m_iVideoGeneratedPacketNumInFrame;
}
void CVideoDataMs::SetVideoGeneratedPacketNumInFrame(int ip)//设置一帧中已经生成的packet的数量
{
m_iVideoGeneratedPacketNumInFrame=ip;
}
bool CVideoDataMs::GetIsVideoFrameDataOver() //判断当前帧是否已经生成最后一个packet
{
return m_bIsVideoFrameDataOver;
}
void CVideoDataMs::SetIsVideoFrameDataOver(bool bp) //设置当前帧是否已经生成最后一个packet
{
m_bIsVideoFrameDataOver=bp;
}
//20051212
//*********************来自基类CDataMs纯虚函数的实现******************************
////填充数据队列函数
void CVideoDataMs::FillDataQueue()
{
VideoFrameProcess();
}
////数据移动台业务初始化函数
void CVideoDataMs::DataMsTrafficInitialize()
{
VideoInitialization();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -