DiiLocationDescriptor::DiiLocationDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
    ASSERT_MIN_DLEN(1);

    transportProtocolLabel = buffer[2];
    for (size_t i = 0; i < descriptorLength - 1; i += 4) {
        ASSERT_MIN_DLEN(i + 5);
        diiLocations.push_back(new DiiLocation(&buffer[i + 3]));
    }
}
FrequencyListDescriptor::FrequencyListDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(1);

	codingType = buffer[2] & 0x03;

	for (size_t i = 0; i < descriptorLength - 1; i += 4) {
		ASSERT_MIN_DLEN(i + 5);
		centreFrequencies.push_back(UINT32(&buffer[i + 3]));
	}
}
ParentalRatingDescriptor::ParentalRatingDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	for (size_t i = 0; i < descriptorLength; i += 4) {
		ASSERT_MIN_DLEN(i + 4);
		parentalRatings.push_back(new ParentalRating(&buffer[i + 2]));
	}
}
GroupLinkDescriptor::GroupLinkDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(5);

	position = buffer[2];
	groupId = r32(&buffer[3]);
}
TVAIdDescriptor::TVAIdDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	for (size_t i = 0; i < descriptorLength; i += 3) {
		ASSERT_MIN_DLEN(i + 3);
		identifier.push_back(new TVAIdentifier(&buffer[i + 2]));
	}
}
CompressedModuleDescriptor::CompressedModuleDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(5);

	compressionMethod = buffer[2];
	originalSize = r32(&buffer[3]);
}
SubtitlingDescriptor::SubtitlingDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	for (size_t i = 0; i < descriptorLength; i += 8) {
		ASSERT_MIN_DLEN(i + 8);
		subtitlings.push_back(new Subtitling(&buffer[i + 2]));
	}
}
Beispiel #8
0
InfoDescriptor::InfoDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(3);

	iso639LanguageCode.assign((char *)&buffer[2], 3);
	info.assign((char *)&buffer[5], descriptorLength - 3);
}
ServiceMoveDescriptor::ServiceMoveDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(6);

	newOriginalNetworkId = UINT16(&buffer[2]);
	newTransportStreamId = UINT16(&buffer[4]);
	newServiceId = UINT16(&buffer[6]);
}
CpcmDeliverySignallingDescriptor::CpcmDeliverySignallingDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
    ASSERT_MIN_DLEN(2);

    extensionTag = buffer[2];
    cpcmVersion = buffer[3];
    selectorBytes.resize(descriptorLength - 2);
    memcpy(&selectorBytes[0], &buffer[4], descriptorLength - 2);
}
Beispiel #11
0
CpDescriptor::CpDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(5);

	cpSystemId = UINT16(&buffer[3]);
	cpPid = DVB_PID(&buffer[5]);

	cpDataBytes.resize(descriptorLength - 5);
	memcpy(&cpDataBytes[0], &buffer[7], descriptorLength - 5);
}
CaDescriptor::CaDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
    ASSERT_MIN_DLEN(4);

    caSystemId = UINT16(&buffer[2]);
    caPid = DVB_PID(&buffer[4]);

    caDataBytes.resize(descriptorLength - 4);
    memcpy(&caDataBytes[0], &buffer[6], descriptorLength - 4);
}
ShortEventDescriptor::ShortEventDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	size_t headerLength = 5;
	ASSERT_MIN_DLEN(headerLength);

	iso639LanguageCode.assign((char *)&buffer[2], 3);
	eventNameLength = buffer[5];

	headerLength += eventNameLength;
	ASSERT_MIN_DLEN(headerLength);

	eventName.assign((char *)&buffer[6], eventNameLength);
	textLength = buffer[6 + eventNameLength];

	headerLength += textLength;
	ASSERT_MIN_DLEN(headerLength);

	text.assign((char *)&buffer[7 + eventNameLength], textLength);
}
LocationDescriptor::LocationDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(1);

	locationTag = buffer[2];
}
ScramblingDescriptor::ScramblingDescriptor(const uint8_t* const buffer):Descriptor(buffer)
{
	ASSERT_MIN_DLEN(1);

	scramblingMode = buffer[2];
}
TimeShiftedServiceDescriptor::TimeShiftedServiceDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(2);

	referenceServiceId = UINT16(&buffer[2]);
}
PrivateDataSpecifierDescriptor::PrivateDataSpecifierDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(4);

	privateDataSpecifier = UINT32(&buffer[2]);
}
PdcDescriptor::PdcDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(3);

	programmeIdentificationLabel = ((buffer[2] & 0x0f) << 16) | UINT16(&buffer[3]);
}
StreamIdentifierDescriptor::StreamIdentifierDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
    ASSERT_MIN_DLEN(1);

    componentTag = buffer[2];
}
AncillaryDataDescriptor::AncillaryDataDescriptor(const uint8_t * const buffer) : Descriptor(buffer)
{
	ASSERT_MIN_DLEN(1);

	ancillaryDataIdentifier = buffer[2];
}