@@ -49,15 +49,15 @@ public class URILinkageDescriptor extends DVBExtensionDescriptor {
49
49
50
50
private static LookUpList dvb_i_endpoint_type_list = new LookUpList .Builder ().
51
51
add (0x00 ,"Not used" ).
52
- add (0x01 ,"DVB-I Serice List" ).
52
+ add (0x01 ,"DVB-I Service List" ).
53
53
add (0x02 ,"Service List Registry query" ).
54
54
add (0x03 ,"Named DVB-I Service List" ).
55
55
add (0x04 ,0xFF ,"Reserved for future use" ).
56
56
build ();
57
57
58
58
private final int uri_linkage_type ;
59
59
private final int uri_length ;
60
- private final byte [] uri_char ;
60
+ private String uri_char = "" ;
61
61
private int min_polling_interval ;
62
62
private byte [] private_data_byte = null ;
63
63
@@ -69,30 +69,30 @@ public class URILinkageDescriptor extends DVBExtensionDescriptor {
69
69
70
70
public URILinkageDescriptor (final byte [] b , final int offset , final TableSection parent ) {
71
71
super (b , parent );
72
- int localOffset = PRIVATE_DATA_OFFSET ;
73
- uri_linkage_type = getInt (b , localOffset ++, 1 , MASK_8BITS );
74
- uri_length = getInt (b , localOffset ++, 1 , MASK_8BITS );
75
- uri_char = copyOfRange (b , localOffset , localOffset + uri_length );
76
- localOffset += uri_length ;
77
-
72
+ byte [] payload =getBytes (b , PRIVATE_DATA_OFFSET +1 , descriptorLength -1 );
73
+ int localOffset = 0 ;
74
+ uri_linkage_type = getInt (payload , localOffset ++, 1 , MASK_8BITS );
75
+ uri_length = getInt (payload , localOffset ++, 1 , MASK_8BITS );
76
+ uri_char = getString (payload , localOffset , uri_length );
77
+ localOffset += uri_length ;
78
+
78
79
if ((uri_linkage_type == 0x00 ) || (uri_linkage_type == 0x01 )) {
79
- min_polling_interval = getInt (b , localOffset , 2 , MASK_16BITS );
80
- localOffset += 2 ;
80
+ min_polling_interval = getInt (payload , localOffset , 2 , MASK_16BITS );
81
+ localOffset += 2 ;
81
82
}
82
- if ((PRIVATE_DATA_OFFSET + descriptorLength ) < localOffset ) {
83
- if (uri_linkage_type == 0x03 ) { // for DVB-I. Refer to clause 5.1.3.3 of DVB A177
84
- dvb_i_endpoint_type = getInt (b , localOffset ++, 1 , MASK_8BITS );
85
- if (dvb_i_endpoint_type == 0x03 ) {
86
- dvb_i_service_list_name_length = getInt (b , localOffset ++, 1 , MASK_8BITS );
87
- dvb_i_service_list_name = getString (b , localOffset , dvb_i_service_list_name_length );
88
- localOffset += dvb_i_service_list_name_length ;
89
- dvb_i_service_list_provider_name_length = getInt (b , localOffset ++, 1 , MASK_8BITS );
90
- dvb_i_service_list_provider_name = getString (b , localOffset , dvb_i_service_list_provider_name_length );
91
- localOffset += dvb_i_service_list_provider_name_length ;
92
- }
83
+ else if (uri_linkage_type == 0x03 ) { // for DVB-I. Refer to clause 5.1.3.3 of DVB A177
84
+ dvb_i_endpoint_type = getInt (payload , localOffset ++, 1 , MASK_8BITS );
85
+ if (dvb_i_endpoint_type == 0x03 ) {
86
+ dvb_i_service_list_name_length = getInt (payload , localOffset ++, 1 , MASK_8BITS );
87
+ dvb_i_service_list_name = getString (payload , localOffset , dvb_i_service_list_name_length );
88
+ localOffset += dvb_i_service_list_name_length ;
89
+ dvb_i_service_list_provider_name_length = getInt (payload , localOffset ++, 1 , MASK_8BITS );
90
+ dvb_i_service_list_provider_name = getString (payload , localOffset , dvb_i_service_list_provider_name_length );
91
+ localOffset += dvb_i_service_list_provider_name_length ;
93
92
}
94
- private_data_byte = copyOfRange (b , localOffset , localOffset + descriptorLength + 2 );
95
93
}
94
+ if (localOffset < payload .length )
95
+ private_data_byte = copyOfRange (payload , localOffset , payload .length );
96
96
}
97
97
98
98
@ Override
@@ -106,7 +106,7 @@ public DefaultMutableTreeNode getJTreeNode(final int modus) {
106
106
t .add (new KVP ("min_polling_interval" , min_polling_interval ));
107
107
}
108
108
if (uri_linkage_type == 0x03 ) {
109
- t .add (new KVP ("dvb-i endpoint_type " , dvb_i_endpoint_type ).setDescription (getDVBIEndpointType (dvb_i_endpoint_type )));
109
+ t .add (new KVP ("dvb-i end_point_type " , dvb_i_endpoint_type ).setDescription (getDVBIEndpointType (dvb_i_endpoint_type )));
110
110
if (dvb_i_endpoint_type == 0x03 ) {
111
111
t .add (new KVP ("dvb-i service_list_name" , dvb_i_service_list_name ));
112
112
t .add (new KVP ("dvb-i service_list_provider_name" , dvb_i_service_list_provider_name ));
0 commit comments