SDRAngel
4.11.5
Developer docs for <a href="https://github.com/f4exb/sdrangel">SDRangel<\a>, an Open Source Qt5 / OpenGL 3.0+ SDR and signal analyzer frontend to various hardware.
plugins
channelrx
demoddatv
datvudpstream.cpp
Go to the documentation of this file.
1
// Copyright (C) 2019 F4EXB //
3
// written by Edouard Griffiths //
4
// //
5
// This program is free software; you can redistribute it and/or modify //
6
// it under the terms of the GNU General Public License as published by //
7
// the Free Software Foundation as version 3 of the License, or //
8
// (at your option) any later version. //
9
// //
10
// This program is distributed in the hope that it will be useful, //
11
// but WITHOUT ANY WARRANTY; without even the implied warranty of //
12
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
13
// GNU General Public License V3 for more details. //
14
// //
15
// You should have received a copy of the GNU General Public License //
16
// along with this program. If not, see <http://www.gnu.org/licenses/>. //
18
19
#include <algorithm>
20
#include "
datvudpstream.h
"
21
22
const
int
DATVUDPStream::m_tsBlocksPerFrame
= 7;
// The usual value
23
24
DATVUDPStream::DATVUDPStream
(
int
tsBlockSize) :
25
m_active(false),
26
m_address(QHostAddress::LocalHost),
27
m_port(8882),
28
m_tsBlockSize(tsBlockSize),
29
m_tsBlockIndex(0)
30
{
31
m_tsBuffer
=
new
char
[
m_tsBlocksPerFrame
*
m_tsBlockSize
];
32
}
33
34
DATVUDPStream::~DATVUDPStream
()
35
{
36
delete
[]
m_tsBuffer
;
37
}
38
39
void
DATVUDPStream::pushData
(
const
char
*chrData,
int
nbTSBlocks)
40
{
41
if
(!
m_active
) {
42
return
;
43
}
44
45
for
(
int
i
= 0;
i
< nbTSBlocks;
i
++)
46
{
47
if
(
m_tsBlockIndex
<
m_tsBlocksPerFrame
)
48
{
49
std::copy(chrData +
i
*
m_tsBlockSize
, chrData + (
i
+1)*m_tsBlockSize,
m_tsBuffer
+
m_tsBlockIndex
*m_tsBlockSize);
50
m_tsBlockIndex
++;
51
}
52
else
53
{
54
m_udpSocket
.writeDatagram(
m_tsBuffer
,
m_tsBlocksPerFrame
*
m_tsBlockSize
,
m_address
,
m_port
);
55
m_tsBlockIndex
= 0;
56
}
57
}
58
}
DATVUDPStream::m_active
bool m_active
Definition:
datvudpstream.h:42
DATVUDPStream::m_tsBlocksPerFrame
static const int m_tsBlocksPerFrame
Definition:
datvudpstream.h:39
DATVUDPStream::m_tsBlockSize
int m_tsBlockSize
Definition:
datvudpstream.h:46
DATVUDPStream::m_address
QHostAddress m_address
Definition:
datvudpstream.h:44
i
int32_t i
Definition:
decimators.h:244
DATVUDPStream::DATVUDPStream
DATVUDPStream(int tsBlockSize)
Definition:
datvudpstream.cpp:24
DATVUDPStream::m_udpSocket
QUdpSocket m_udpSocket
Definition:
datvudpstream.h:43
DATVUDPStream::pushData
void pushData(const char *chrData, int nbTSBlocks)
Definition:
datvudpstream.cpp:39
DATVUDPStream::~DATVUDPStream
~DATVUDPStream()
Definition:
datvudpstream.cpp:34
DATVUDPStream::m_tsBuffer
char * m_tsBuffer
Definition:
datvudpstream.h:48
DATVUDPStream::m_tsBlockIndex
int m_tsBlockIndex
Definition:
datvudpstream.h:47
DATVUDPStream::m_port
quint16 m_port
Definition:
datvudpstream.h:45
datvudpstream.h
Generated on Fri Aug 2 2019 17:56:30 for SDRAngel by
1.8.13