X-Git-Url: http://g0dil.de/git?a=blobdiff_plain;f=Packets%2FMPEGDVBBundle%2FMPESection.cc;h=0e1c1fe8cd652e56b6031e32b78e714c6af8754a;hb=bd9f9d3fd6fbcff0112a7bf48ab9284da9576b11;hp=d6b2d5e9e4e8867b64eaa2007f96fa0f85487b2c;hpb=664602bd7e14a365bca130805a1a08a1b347c473;p=senf.git diff --git a/Packets/MPEGDVBBundle/MPESection.cc b/Packets/MPEGDVBBundle/MPESection.cc index d6b2d5e..0e1c1fe 100644 --- a/Packets/MPEGDVBBundle/MPESection.cc +++ b/Packets/MPEGDVBBundle/MPESection.cc @@ -1,9 +1,9 @@ // $Id$ // // Copyright (C) 2007 -// Fraunhofer Institut fuer offene Kommunikationssysteme (FOKUS) -// Kompetenzzentrum fuer Satelitenkommunikation (SatCom) -// Thorsten Horstmann +// Fraunhofer Institute for Open Communication Systems (FOKUS) +// Competence Center NETwork research (NET), St. Augustin, GERMANY +// Thorsten Horstmann // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -36,14 +36,15 @@ #define prefix_ ///////////////////////////////cc.p//////////////////////////////////////// -//prefix_ boost::uint32_t senf::Parse_MPESection::calcCrc() -// const -//{ -// return std::for_each( -// data().begin(), -// boost::prior(data().end(), 4), -// crc32_t() ).checksum(); -//} + +prefix_ boost::uint32_t senf::MPESectionParser::calcCrc() + const +{ + return std::for_each( + data().begin(), + boost::prior(data().end(), 4), + crc32_t() ).checksum(); +} prefix_ void senf::MPESectionType::dump(packet p, std::ostream & os) @@ -56,7 +57,7 @@ prefix_ void senf::MPESectionType::dump(packet p, std::ostream & os) << " private_indicator: " << p->private_indicator() << "\n" << std::dec << " section_length: " << p->section_length() << "\n" - << std::hex + << std::hex << " MAC_address_6: 0x" << unsigned(p->mac_addr_6()) << "\n" << " MAC_address_5: 0x" << unsigned(p->mac_addr_5()) << "\n" << " payload_scrambling_control: 0x" << p->payload_scrmbl_ctrl() << "\n" @@ -92,22 +93,22 @@ prefix_ senf::PacketInterpreterBase::factory_t senf::MPESectionType::nextPacketT if (p->ip_datagram_version().value() == 4) return IPv4Packet::factory(); if (p->ip_datagram_version().value() == 6) - return IPv4Packet::factory(); + return IPv6Packet::factory(); } return no_factory(); } prefix_ void senf::MPESectionType::finalize(packet p) { - p->llc_snap_flag() = p.next().is() ? 1 : 0; + p->llc_snap_flag() = p.next(nothrow) && p.next().is() ? 1 : 0; p->section_length() = p.data().size() - 3; -// p->crc() = p->calcCrc(); + p->crc() = p->calcCrc(); } ///////////////////////////////cc.e//////////////////////////////////////// #undef prefix_ - + // Local Variables: // mode: c++ // fill-column: 100