Skip to content
Snippets Groups Projects
Commit 2980e7b5 authored by tho's avatar tho
Browse files

minor steps for the psi2ts module

parent 327ec4aa
No related branches found
No related tags found
No related merge requests found
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
// Custom includes // Custom includes
//#include "psi2ts.cc.mpp" //#include "psi2ts.cc.mpp"
#define prefix_ #define prefix_
///////////////////////////////cc.p//////////////////////////////////////// ///////////////////////////////cc.p////////////////////////////////////////
...@@ -59,14 +60,18 @@ prefix_ void Psi2TsModule::onRequest() ...@@ -59,14 +60,18 @@ prefix_ void Psi2TsModule::onRequest()
advance_max( end, 184, sec_end); advance_max( end, 184, sec_end);
do { do {
senf::TransportPacket tsPacket (senf::TransportPacket::create()); senf::TransportPacket tsPacket (senf::TransportPacket::create(188));
tsPacket->continuity_counter() = next_continuity_counter(); tsPacket->continuity_counter() = next_continuity_counter();
if (state_ == IDLE) { if (state_ == IDLE) {
state_ = PROC; state_ = PROC;
tsPacket->pusi() = true; tsPacket->pusi() = true;
} }
senf::DataPacket::createAfter( tsPacket, boost::make_iterator_range(begin, end)); senf::PacketData & payloadData (tsPacket.next().data());
std::copy( begin, end, payloadData.begin() );
tsPacket.finalize(); tsPacket.finalize();
output.write( tsPacket);
advance_max( begin, 184, sec_end); advance_max( begin, 184, sec_end);
advance_max( end, 184, sec_end); advance_max( end, 184, sec_end);
} while (begin != end); } while (begin != end);
......
...@@ -24,16 +24,61 @@ ...@@ -24,16 +24,61 @@
\brief psi2ts unit tests */ \brief psi2ts unit tests */
// Custom includes // Custom includes
#include "senf/PPI/DebugModules.hh"
#include "senf/PPI/Setup.hh"
#include <senf/Packets/MPEGDVBBundle/MPESection.hh>
#include <senf/Packets/MPEGDVBBundle/TransportPacket.hh>
#include "psi2ts.hh" #include "psi2ts.hh"
#include "../../Utils/auto_unit_test.hh" #include "../../Utils/auto_unit_test.hh"
#include <boost/test/test_tools.hpp> #include <boost/test/test_tools.hpp>
#include <boost/lambda/lambda.hpp>
#define prefix_ #define prefix_
///////////////////////////////cc.p//////////////////////////////////////// ///////////////////////////////cc.p////////////////////////////////////////
void check_transportpacket_header(senf::TransportPacket tsPacket, bool pusi, unsigned pid, unsigned counter)
{
BOOST_CHECK_EQUAL( tsPacket->sync_byte(), senf::TransportPacketType::SYNC_BYTE+0 );
BOOST_CHECK_EQUAL( tsPacket->transport_error_indicator(), false );
BOOST_CHECK_EQUAL( tsPacket->pusi(), pusi );
BOOST_CHECK_EQUAL( tsPacket->transport_priority(), false );
BOOST_CHECK_EQUAL( tsPacket->transport_scrmbl_ctrl(), 0x0u );
BOOST_CHECK_EQUAL( tsPacket->adaptation_field_ctrl(), 0x1u );
BOOST_CHECK_EQUAL( tsPacket->continuity_counter(), counter );
}
BOOST_AUTO_UNIT_TEST(one_section_to_one_transportpacket) BOOST_AUTO_UNIT_TEST(one_section_to_one_transportpacket)
{ {
BOOST_CHECK_EQUAL(1, 1+0); senf::ppi::module::debug::ActiveSource source;
senf::ppi::module::debug::PassiveSink sink;
Psi2TsModule psi2ts;
senf::ppi::connect(source, psi2ts);
senf::ppi::connect(psi2ts, sink);
senf::ppi::init();
std::string payload_data ( "psi2ts_test: one_section_to_one_transportpacket");
senf::Packet payload (senf::DataPacket::create(payload_data));
payload.finalize();
source.submit(payload);
BOOST_CHECK_EQUAL( sink.size(), 1u);
senf::TransportPacket tsPacket = sink.pop_front().as<senf::TransportPacket>();
check_transportpacket_header( tsPacket, true, 0, 1);
senf::PacketData & ts_data = tsPacket.next().data();
BOOST_CHECK_EQUAL_COLLECTIONS(
ts_data.begin(),
boost::next( ts_data.begin(), payload_data.size()),
payload_data.begin(),
payload_data.end());
// BOOST_CHECK( std::find_if(
// boost::next( ts_data.begin(), payload_data.size()),
// ts_data.end(),
// boost::lambda::_1 != 0xffu) == ts_data.end() );
} }
///////////////////////////////cc.e//////////////////////////////////////// ///////////////////////////////cc.e////////////////////////////////////////
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment