if (payload_byte != null) {
if ((PID == 0) && (begin_payload_unit)) {
//cal.showPAT(tsbyte);
- pat_list_now = readPAT_byte(payload_byte);
- pat_list_all.addAll(pat_list_now);
+ if (isPAT(payload_byte)){
+ pat_list_now = readPAT_byte(payload_byte);
+ pat_list_all.addAll(pat_list_now);
+ }
}
for (int i = 0; i < pat_list_now.size(); i++) {
if ((PID == pat_list_now.get(i).PID) && (PID != 0)) {
if ((PID == 0) && (begin_payload_unit) && (payload_byte != null)) {
byte[] new_pointer=new byte[1];
new_pointer[0]=0;
- payload_byte = makePAT_byte(new_pointer, payload_byte, p_table);
- //payload_byte = makePAT_byte(pointer_byte, payload_byte, p_table);
- bPAT_payload = payload_byte;
+ if (isPAT(payload_byte)){
+ payload_byte = makePAT_byte(new_pointer, payload_byte, p_table);
+ if (payload_byte.length>0){
+ bPAT_payload = payload_byte;
+ }
+ }
}
if ((payload_byte != null)&& (begin_payload_unit)) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(ts.length);
}
return baos.toByteArray();
}
-
+ public boolean isPAT(byte[] byte_tmp){
+ calc cal=new calc();
+ if ((cal.byte2int(byte_tmp,0,8)==0)&&(cal.byte2int(byte_tmp,9,3)==3)&&(cal.byte2int(byte_tmp, 40, 2)==3)){
+ return true;
+ }else{
+ return false;
+ }
+ }
+ public boolean isPMT(byte[] byte_tmp){
+ calc cal=new calc();
+ if ((cal.byte2int(byte_tmp,9,3)==3)&&(cal.byte2int(byte_tmp, 40, 2)==3)&&(cal.byte2int(byte_tmp,64,3)==3)&&(cal.byte2int(byte_tmp,80,4)==15)){
+ return true;
+ }else{
+ return false;
+ }
+ }
private String getCRC32(String s) {
return getCRC32(String2Byte(s), 1);
}