testexttrans.cpp
1.49 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#include "rtpsession.h"
#include "rtpsessionparams.h"
#include "rtpexternaltransmitter.h"
#include "rtperrors.h"
#include "rtpsourcedata.h"
#include "rtpipv4address.h"
#include <stdlib.h>
#include <stdio.h>
#include <iostream>
#include <string>
using namespace jrtplib;
using namespace std;
void checkerror(int rtperr)
{
if (rtperr < 0)
{
cout << "ERROR: " << RTPGetErrorString(rtperr) << endl;
exit(-1);
}
}
class ExtSender : public RTPExternalSender
{
public:
ExtSender() { }
~ExtSender() { }
private:
bool SendRTP(const void *pData, size_t len)
{
return true;
}
bool SendRTCP(const void *pData, size_t len)
{
return true;
}
bool ComesFromThisSender(const RTPAddress *pAddr)
{
return false;
}
};
int main(void)
{
ExtSender sender;
RTPSessionParams sessParams;
RTPExternalTransmissionParams transParams(&sender, 0);
RTPSession session;
sessParams.SetOwnTimestampUnit(1.0/48000.0); // Just set something, not relevant for this test
int status = session.Create(sessParams, &transParams, RTPTransmitter::ExternalProto);
checkerror(status);
RTPExternalTransmissionInfo *pTransInf = static_cast<RTPExternalTransmissionInfo *>(session.GetTransmissionInfo());
RTPExternalPacketInjecter *pPacketInjector = pTransInf->GetPacketInjector();
session.DeleteTransmissionInfo(pTransInf);
for (int i = 0 ; i < 1024*1024 ; i++)
{
if (i%1000 == 0)
cout << "Writing packet " << i << endl;
RTPIPv4Address addr(0x7f000001, 1234);
pPacketInjector->InjectRTP("12345", 5, addr);
}
return 0;
}