JRTP如何发1.5K以上的MPEG4帧啊?
GetDocument()->m_pRTPSession=new RTPAppSession;
GetDocument()->m_pRTPSession->SetParentView(this);
GetDocument()->m_pRTPSessionParams=new RTPSessionParams;
GetDocument()->m_pRTPSessionParams->SetOwnTimestampUnit(1.0 /30);//30 video frames per second
GetDocument()->m_pRTPUDPv4TransmissionRarams=new RTPUDPv4TransmissionParams;
GetDocument()->m_pRTPUDPv4TransmissionRarams->SetPortbase(8000);
int status=GetDocument()->m_pRTPSession->Create(*(GetDocument()->m_pRTPSessionParams),GetDocument()->m_pRTPUDPv4TransmissionRarams);
if (status<0)
{
AfxMessageBox("Error occured!");
}
else
AfxMessageBox("Successfully!");
unsigned char DestIp[]={218,79,132,156};
RTPIPv4Address addr(DestIp,8000);
status=GetDocument()->m_pRTPSession->AddDestination(addr);
if (status<0)
{
AfxMessageBox("AddDestination Error occured!");
}
else
AfxMessageBox("AddDestination Successfully!");
GetDocument()->m_pRTPSession->SetDefaultPayloadType(96);
GetDocument()->m_pRTPSession->SetDefaultMark(false);
GetDocument()->m_pRTPSession->SetDefaultTimestampIncrement(160);
GetDocument()->m_pRTPSession->SetMaximumPacketSize(6000);
unsigned char silencebuffer[2000];
for (int i=0;i<2000;i++)
silencebuffer[i]='a';
RTPTime delay(0.020);
RTPTime starttime = RTPTime::CurrentTime();
status = GetDocument()->m_pRTPSession->SendPacket(silencebuffer,2000);
if (status < 0)
{
AfxMessageBox("error!");
}
我发现调用JRTP的SendPacket时,如果帧上大于1388个字节时,JRTP好像把后面的数据都丢了,没发出去,并且发出去的数据的UDP checksum也是error的。接收端也没收到该数据?难道需要自己把大于1.5k的MPEG4帧拆开来,再让JRTP来传?
此外JRTPlib的例子网上好像一个也没有,哪位大哥能提供一个吗?谢谢了?
问题点数:0、回复次数:1Top
1 楼vcmute(BCare4 H1Rest Good9!)回复于 2005-06-02 12:58:57 得分 0
没用过JRTP,但一般是自己打包(即拆帧)Top




