payload_byte = null;
}
if ((PID == 0) && (begin_payload_unit) && (payload_byte != null)) {
- payload_byte = makePAT_byte(pointer_byte, payload_byte, p_table);
+ 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 (payload_byte != null) {
+ if ((payload_byte != null)&& (begin_payload_unit)) {
ByteArrayOutputStream baos = new ByteArrayOutputStream(ts.length);
baos.write(header_byte, 0, header_byte.length);
baos.write(pointer_byte, 0, pointer_byte.length);
baos.write(payload_byte, 0, payload_byte.length);
+ for (int ir = 0; ir < 188-baos.size(); ir++) {
+ baos.write(0xFF);
+ }
return baos.toByteArray();
} else {
return null;
alreadyreaded=true;
int readti=bis.read(tb);
if ((ii==0)&&(readti>187)){
- //Mpeg2TSPacket m2tp2=new Mpeg2TSPacket();
+ Mpeg2TSPacket m2tp2=new Mpeg2TSPacket();
+ m2tp2.readTS_byte(tb);
+ ArrayList<PATData> pats=new ArrayList<PATData>();
+ pats=m2tp2.getPAT();
+ boolean containp_table=false;
+ for (int iii=0;iii<pats.size();iii++){
+ if (pats.get(iii).Program_TABLE==p_table){
+ containp_table=true;
+ }
+ }
+ if (!containp_table){
+ for (int iii=0;iii<pats.size();iii++){
+ if (pats.get(iii).Program_TABLE>0){
+ System.out.println("Program Tableの変更を検知"+Integer.toString(p_table)+" to "+Integer.toString(pats.get(iii).Program_TABLE));
+ p_table=pats.get(iii).Program_TABLE;
+ for (int it=0;it<pids.length;it++){
+ if (pids[it]==pmt_pid){
+ pmt_pid=pats.get(iii).PID;
+ pids[it]=pmt_pid;
+ }
+ }
+ iii=pats.size();
+ }
+ }
+ }
+
wbyte=m2tpp.splitPAT_byte(tb,p_table);
//wbyte=m2tpp.splitPAT(tb, p_table);
/*byte[] wbytet=m2tpp.splitPAT(tb, p_table);