summaryrefslogtreecommitdiff
path: root/src/outputstreamer.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/outputstreamer.cc')
-rw-r--r--src/outputstreamer.cc22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/outputstreamer.cc b/src/outputstreamer.cc
index e652c7e..e5b7436 100644
--- a/src/outputstreamer.cc
+++ b/src/outputstreamer.cc
@@ -31,7 +31,7 @@
#define CSRC_V 42
#define CSRC_A 43
-OutputStreamer::OutputStreamer(QHostAddress addr, quint16 port)
+OutputStreamer::OutputStreamer()
: socket(this)
{
total = 0;
@@ -47,9 +47,6 @@ OutputStreamer::OutputStreamer(QHostAddress addr, quint16 port)
res = lrtp_create_profile(lrtp, PROFILE_OPUS, CSRC_A, OPTION_END);
if(res != 0) printf("O:lrtp_create_profile (a) err: %d\n", res);
-
- this->addr = addr;
- this->port = port;
}
OutputStreamer::~OutputStreamer()
@@ -66,6 +63,14 @@ OutputStreamer::~OutputStreamer()
if(status != LRTP_OK) printf("O:lrtp_close err: %d\n", status);
}
+void OutputStreamer::addPeer(QHostAddress addr, quint16 port)
+{
+ Peer peer;
+ peer.addr = addr;
+ peer.port = port;
+ peers.push_back(peer);
+}
+
void OutputStreamer::newImage(Frame frame)
{
int ret = 0;
@@ -115,8 +120,13 @@ void OutputStreamer::newAudio(framelist_t frames)
void OutputStreamer::sendPackage(const char *data, size_t size)
{
- total += size;
- socket.writeDatagram(data, (quint64)size, addr, port);
+ QList<Peer>::iterator i = peers.begin();
+ while(i != peers.end()) {
+ Peer &peer = *i;
+ socket.writeDatagram(data, (quint64)size, peer.addr, peer.port);
+ total += size;
+ i++;
+ }
}
size_t OutputStreamer::getTotal()