skyscraper8/skyscraper8/Dvb/Descriptors/0x5F_PrivateDataSpecifierDescriptor.cs
2025-06-03 11:48:18 +02:00

45 lines
1.3 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using skyscraper5.Mpeg2;
using skyscraper5.Skyscraper.Plugins;
namespace skyscraper5.Dvb.Descriptors
{
[SkyscraperPlugin]
[TsDescriptor(0x5f,"NIT","BAT","SDT","EIT","PMT", "Astra SGT")]
[BannedTable("CAT")] // <-- Scientific Atlanta is known to put private_data_specifier_descriptors into the CAT, however this is a private extension.
public class PrivateDataSpecifierDescriptor : TsDescriptor
{
public PrivateDataSpecifierDescriptor(byte[] buffer)
{
if (buffer.Length != 4)
{
Valid = false;
return;
}
if (BitConverter.IsLittleEndian)
Array.Reverse(buffer);
PrivateDataSpecifier = BitConverter.ToUInt32(buffer, 0);
}
public PrivateDataSpecifierDescriptor(uint value)
{
PrivateDataSpecifier = value;
}
public uint PrivateDataSpecifier { get; private set; }
public override byte[] Serialize()
{
byte[] bytes = BitConverter.GetBytes(PrivateDataSpecifier);
if (BitConverter.IsLittleEndian)
Array.Reverse(bytes);
return bytes;
}
}
}