190 changes: 103 additions & 87 deletions mythtv/libs/libmythtv/mpeg/mpegdescriptors.h
Original file line number Diff line number Diff line change
Expand Up @@ -28,20 +28,20 @@ class DescriptorID
video = 0x02,
audio = 0x03,
hierarchy = 0x04,
registration = 0x05,
registration = 0x05, /* implemented */
data_stream_alignment = 0x06,
target_background_grid = 0x07,
video_window = 0x08,
conditional_access = 0x09,
ISO_639_language = 0x0A,
conditional_access = 0x09, /* implemented */
iso_639_language = 0x0A, /* implemented */
system_clock = 0x0B,
multiplex_buffer_utilization= 0x0C,
copyright = 0x0D,
maximum_bitrate = 0x0E,
private_data_indicator = 0x0F,
smoothing_buffer = 0x10,
STD = 0x11,
IBP = 0x12,
std = 0x11,
ibp = 0x12,
carousel_identifier = 0x13,
association_tag = 0x14,
deferred_association_tag = 0x15,
Expand All @@ -52,9 +52,9 @@ class DescriptorID
stream_event = 0x1A,
mpeg4_video = 0x1B,
mpeg4_audio = 0x1C,
IOD = 0x1D,
SL = 0x1E,
FMC = 0x1F,
iod = 0x1D,
sl = 0x1E,
fmc = 0x1F,
external_es_id = 0x20,
mux_code = 0x21,
fmx_buffer_size = 0x22,
Expand All @@ -63,116 +63,132 @@ class DescriptorID
metadata_pointer = 0x25,
metadata = 0x26,
metadata_std = 0x27,
avc_video = 0x28,
avc_video = 0x28, /* implemented */
ipmp = 0x29,
avc_timing__hrd = 0x2A,
MPEG2_AAC_audio = 0x2B,
FlexMuxTiming = 0x2C,
avc_timing_and_hrd = 0x2A, /* partial */
mpeg2_aac_audio = 0x2B,
flex_mux_timing = 0x2C,

// DVB
network_name = 0x40,
service_list = 0x41,
network_name = 0x40, /* implemented */
service_list = 0x41, /* implemented */
dvb_stuffing = 0x42,
satellite_delivery_system = 0x43,
cable_delivery_system = 0x44,
VBI_data = 0x45,
VBI_teletext = 0x46,
bouquet_name = 0x47,
service = 0x48,
country_availability = 0x49,
linkage = 0x4A,
NVOD_reference = 0x4B,
dvb_time_shifted_service = 0x4C,
short_event = 0x4D,
extended_event = 0x4E,
time_shifted_event = 0x4F,
component = 0x50,
mosaic = 0x51,
stream_identifier = 0x52,
CA_identifier = 0x53,
content = 0x54,
parental_rating = 0x55,
teletext = 0x56,
telephone = 0x57,
satellite_delivery_system = 0x43, /* implemented */
cable_delivery_system = 0x44, /* implemented */
vbi_data = 0x45, /* partial */
vbi_teletext = 0x46, /* partial */
bouquet_name = 0x47, /* implemented */
service = 0x48, /* implemented, toString lacking */
country_availability = 0x49, /* implemented */
linkage = 0x4A, /* partial */
nvod_reference = 0x4B, /* partial */
dvb_time_shifted_service = 0x4C, /* partial */
short_event = 0x4D, /* implemented */
extended_event = 0x4E, /* implemented */
time_shifted_event = 0x4F, /* partial */

component = 0x50, /* implemented, toString lacking */
mosaic = 0x51, /* partial */
stream_identifier = 0x52, /* implemented */
ca_identifier = 0x53, /* partial */
content = 0x54, /* implemented */
parental_rating = 0x55, /* partial */
teletext = 0x56, /* partial */
telephone = 0x57, /* partial */
local_time_offset = 0x58,
subtitling = 0x59,
terrestrial_delivery_system = 0x5A,
multilingual_network_name = 0x5B,
multilingual_bouquet_name = 0x5C,
multilingual_service_name = 0x5D,
subtitling = 0x59, /* partial */
terrestrial_delivery_system = 0x5A, /* implemented */
multilingual_network_name = 0x5B, /* partial */
multilingual_bouquet_name = 0x5C, /* partial */
multilingual_service_name = 0x5D, /* partial */
multilingual_component = 0x5E,
private_data_specifier = 0x5F,
service_move = 0x60,
short_smoothing_buffer = 0x61,
frequency_list = 0x62,
partial_transport_stream = 0x63,
data_broadcast = 0x64,
scrambling = 0x65,
data_broadcast_id = 0x66,
transport_stream = 0x67,
DSNG = 0x68,
PDC = 0x69,
AC3 = 0x6A,
ancillary_data = 0x6B,
cell_list = 0x6C,
cell_frequency_link = 0x6D,
announcement_support = 0x6E,
private_data_specifier = 0x5F, /* partial */

service_move = 0x60, /* partial */
short_smoothing_buffer = 0x61, /* partial */
frequency_list = 0x62, /* implemented */
partial_transport_stream = 0x63, /* partial */
data_broadcast = 0x64, /* partial */
scrambling = 0x65, /* partial */
data_broadcast_id = 0x66, /* partial */
transport_stream = 0x67, /* partial */
dsng = 0x68, /* partial */
pdc = 0x69, /* partial */
ac3 = 0x6A, /* partial */
ancillary_data = 0x6B, /* partial */
cell_list = 0x6C, /* partial */
cell_frequency_link = 0x6D, /* partial */
announcement_support = 0x6E, /* partial */
application_signalling = 0x6F,
adaptation_field_data = 0x70,

adaptation_field_data = 0x70, /* partial */
service_identifier = 0x71,
service_availability = 0x72,
default_authority = 0x73,
service_availability = 0x72, /* partial */
default_authority = 0x73, /* implemented */
related_content = 0x74,
TVA_id = 0x75,
dvb_content_identifier = 0x76,
tva_id = 0x75,
dvb_content_identifier = 0x76, /* partial */
time_slice_fec_identifier = 0x77,
ECM_repetition_rate = 0x78,
S2_delivery_system = 0x79,
EAC3 = 0x7A,
DTS = 0x7B,
AAC = 0x7C,

// private
dvb_uk_channel_list = 0x83,
ecm_repetition_rate = 0x78,
s2_delivery_system = 0x79,
eac3 = 0x7A,
dts = 0x7B,
aac = 0x7C,

// ATSC
atsc_stuffing = 0x80,
ac3_audio_stream = 0x81,
ac3_audio_stream = 0x81, /* partial */
scte_frame_rate = 0x82,
scte_component_name = 0x84,
atsc_program_identifier = 0x85,
caption_service = 0x86,
caption_service = 0x86, /* implemented */
content_advisory = 0x87,
atsc_ca_descriptor = 0x88,
atsc_descriptor_tag = 0x89,
scte_cue_identifier = 0x90,

// Dish Network
dish_event_rights = 0x87,
dish_event_mpaa = 0x89,
dish_event_name = 0x91,
dish_event_description = 0x92,
dish_event_properties = 0x94,
dish_event_vchip = 0x95,
dish_event_tags = 0x96,
// SCTE
scte_cue_identifier = 0x8A, /* implemented */

// ATSC
extended_channel_name = 0xA0,
extended_channel_name = 0xA0, /* implemented */
service_location = 0xA1,
atsc_time_shifted_service = 0xA2,
component_name = 0xA3,
component_name = 0xA3, /* implemented */
atsc_data_service = 0xA4,
atsc_pid_count = 0xA5,
atsc_download = 0xA6,
multiprotocol_encapsulation = 0xA7,
DCC_departing_request = 0xA8,
DCC_arriving_request = 0xA9,
DRM_control = 0xAA,
dcc_departing_request = 0xA8,
dcc_arriving_request = 0xA9,
drm_control = 0xAA,
atsc_genre = 0xAB,
atsc_private_information = 0xAD,
atsc_content_identifier = 0xB6,

// private premiere.de
atsc_content_identifier = 0xB6, /* partial */
};
};

class PrivateDescriptorID
{
public:
enum
{
// These can conflict and should only be used
// on these specific networks.

// Private -- UK
dvb_uk_channel_list = 0x83, /* implemented */

// Private -- Dish Network
dish_event_rights = 0x87,
dish_event_mpaa = 0x89, /* implemented */
dish_event_name = 0x91, /* implemented */
dish_event_description = 0x92, /* implemented */
dish_event_properties = 0x94, /* implemented */
dish_event_vchip = 0x95, /* implemented */
dish_event_tags = 0x96, /* implemented */

// Private -- premiere.de
premiere_content_order = 0xF0,
premiere_parental_information = 0xF1,
premiere_content_transmission = 0xF2,
Expand Down
4 changes: 2 additions & 2 deletions mythtv/libs/libmythtv/mpeg/mpegtables.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ uint StreamID::Normalize(uint stream_id, const desc_list_t &desc,
if ((sistandard != "dvb") && (OpenCableVideo == stream_id))
return MPEG2Video;

if (MPEGDescriptor::Find(desc, DescriptorID::AC3))
if (MPEGDescriptor::Find(desc, DescriptorID::ac3))
return AC3Audio;

const unsigned char* d = NULL;
Expand Down Expand Up @@ -916,7 +916,7 @@ QString ProgramMapTable::GetLanguage(uint i) const
const desc_list_t list = MPEGDescriptor::Parse(
StreamInfo(i), StreamInfoLength(i));
const unsigned char *lang_desc = MPEGDescriptor::Find(
list, DescriptorID::ISO_639_language);
list, DescriptorID::iso_639_language);

if (!lang_desc)
return QString::null;
Expand Down