summaryrefslogtreecommitdiffstats
path: root/src/DabMultiplexer.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-18 11:54:10 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2015-12-18 11:54:10 +0100
commit53e25831c29615132ba3ee5d1d24dc14c45c20aa (patch)
treee72cd73f2b90748495e7fc1d3cbca88a5bc77ab3 /src/DabMultiplexer.cpp
parenta8c51a1bbc1493730567ef1c0367cccce34035eb (diff)
downloaddabmux-53e25831c29615132ba3ee5d1d24dc14c45c20aa.tar.gz
dabmux-53e25831c29615132ba3ee5d1d24dc14c45c20aa.tar.bz2
dabmux-53e25831c29615132ba3ee5d1d24dc14c45c20aa.zip
EDI: Simplify subchannel handling
Diffstat (limited to 'src/DabMultiplexer.cpp')
-rw-r--r--src/DabMultiplexer.cpp17
1 files changed, 8 insertions, 9 deletions
diff --git a/src/DabMultiplexer.cpp b/src/DabMultiplexer.cpp
index 2578cfd..70f3f5e 100644
--- a/src/DabMultiplexer.cpp
+++ b/src/DabMultiplexer.cpp
@@ -442,8 +442,7 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
// For EDI, save ETI(LI) Management data into a TAG Item DETI
TagDETI edi_tagDETI;
TagStarPTR edi_tagStarPtr;
- list<TagESTn> edi_subchannels;
- map<dabSubchannel*, TagESTn*> edi_subchannelToTag;
+ map<dabSubchannel*, TagESTn> edi_subchannelToTag;
// The above Tag Items will be assembled into a TAG Packet
TagPacket edi_tagpacket(edi_conf.tagpacket_alignment);
@@ -550,7 +549,8 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
sstc->STL_high = getSizeDWord(*subchannel) / 256;
sstc->STL_low = getSizeDWord(*subchannel) % 256;
- TagESTn tag_ESTn(edi_stream_id++);
+ TagESTn tag_ESTn;
+ tag_ESTn.id = edi_stream_id++;
tag_ESTn.scid = (*subchannel)->id;
tag_ESTn.sad = (*subchannel)->startAddress;
tag_ESTn.tpl = sstc->TPL;
@@ -558,8 +558,7 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
tag_ESTn.mst_length = getSizeByte(*subchannel) / 8;
assert(getSizeByte(*subchannel) % 8 == 0);
- edi_subchannels.push_back(tag_ESTn);
- edi_subchannelToTag[*subchannel] = &edi_subchannels.back();
+ edi_subchannelToTag[*subchannel] = tag_ESTn;
index += 4;
}
@@ -1696,7 +1695,7 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
subchannel != ensemble->subchannels.end();
++subchannel) {
- TagESTn* tag = edi_subchannelToTag[*subchannel];
+ TagESTn& tag = edi_subchannelToTag[*subchannel];
int sizeSubchannel = getSizeByte(*subchannel);
int result = (*subchannel)->input->readFrame(
@@ -1709,7 +1708,7 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
}
// save pointer to Audio or Data Stream into correct TagESTn for EDI
- tag->mst_data = &etiFrame[index];
+ tag.mst_data = &etiFrame[index];
index += sizeSubchannel;
}
@@ -1807,8 +1806,8 @@ void DabMultiplexer::mux_frame(std::vector<boost::shared_ptr<DabOutput> >& outpu
edi_tagpacket.tag_items.push_back(&edi_tagStarPtr);
edi_tagpacket.tag_items.push_back(&edi_tagDETI);
- for (auto& tag : edi_subchannels) {
- edi_tagpacket.tag_items.push_back(&tag);
+ for (auto& tag : edi_subchannelToTag) {
+ edi_tagpacket.tag_items.push_back(&tag.second);
}
// Assemble into one AF Packet