X-Git-Url: http://git.osdn.net/view?p=rec10%2Frec10-git.git;a=blobdiff_plain;f=jTsSplitter%2Ftrunk%2Fsrc%2Fjtssplitter%2FTsfile.java;h=b4e463c1db6e3fd73572b7170a931def21a625f5;hp=2c5b307f8e2af05e3252f66beb63d5a0b63a76a8;hb=0d63aeb9de22dafdd78d3d8443523fc0189bf3e2;hpb=bc802949cc01b26876f134bfc49db57e6778c82f diff --git a/jTsSplitter/trunk/src/jtssplitter/Tsfile.java b/jTsSplitter/trunk/src/jtssplitter/Tsfile.java index 2c5b307..b4e463c 100644 --- a/jTsSplitter/trunk/src/jtssplitter/Tsfile.java +++ b/jTsSplitter/trunk/src/jtssplitter/Tsfile.java @@ -8,6 +8,7 @@ import java.util.ArrayList; import java.io.*; import java.util.logging.Level; import java.util.logging.Logger; +import java.util.Arrays; import jtssplitter.data.PATData; import jtssplitter.data.PIDs; import jtssplitter.data.PMTData; @@ -71,6 +72,7 @@ public class Tsfile { PIDs pidss=getTablePID(origpath,p_table); p_table=pidss.Program_Table; pids=pidss.PIDs; + int pmt_pid=pidss.PMT_PID; byte[] tb=new byte[188]; try { FileInputStream in = new FileInputStream(origpath); @@ -100,8 +102,23 @@ public class Tsfile { if ((ii==0)&&(readti>187)){ //Mpeg2TSPacket m2tp2=new Mpeg2TSPacket(); wbyte=m2tpp.splitPAT(tb,p_table); + }else if ((ii==pmt_pid)&&(readti>187)){ + wbyte=tb; + ArrayList pmtss=m2tpp.readPMT(tb, pmt_pid); + int[] new_pids=new int[pmtss.size()+3]; + new_pids[pmtss.size()]=0; + new_pids[pmtss.size()+1]=pmt_pid; + new_pids[pmtss.size()+2]=pmtss.get(0).PCR_PID; + for (int i=0;i187){ wbyte=tb; + }else { readend=true; } @@ -112,10 +129,6 @@ public class Tsfile { if (alreadyreaded==false){ bis.skip(188); } - int bbb=bis.available(); - //if (bis.available()<188){ - // readend=true; - //} if (wbyte!=null){ bos.write(wbyte); } @@ -212,13 +225,17 @@ public class Tsfile { } ret.add(0); ret.add(patd_det.PID); + ret.add(pmt.get(0).Elementary_PID); for (int i=0;i