OSDN Git Service
(root)
/
rec10
/
rec10-git.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
09995ae
)
some speed ups.
author
gn64_jp
<gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 29 Oct 2009 00:52:41 +0000
(
00:52
+0000)
committer
gn64_jp
<gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 29 Oct 2009 00:52:41 +0000
(
00:52
+0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@197
4e526526
-5e11-4fc0-8910-
f8fd03428081
jTsSplitter/trunk/src/jtssplitter/Main.java
patch
|
blob
|
history
jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java
patch
|
blob
|
history
jTsSplitter/trunk/src/jtssplitter/Tsfile.java
patch
|
blob
|
history
diff --git
a/jTsSplitter/trunk/src/jtssplitter/Main.java
b/jTsSplitter/trunk/src/jtssplitter/Main.java
index
982e024
..
6024bc0
100644
(file)
--- a/
jTsSplitter/trunk/src/jtssplitter/Main.java
+++ b/
jTsSplitter/trunk/src/jtssplitter/Main.java
@@
-30,10
+30,10
@@
public class Main {
}
Tsfile t1=new Tsfile();
//t1.readTs("D:\\jTssplitter\\test-sp.ts");
}
Tsfile t1=new Tsfile();
//t1.readTs("D:\\jTssplitter\\test-sp.ts");
- //inf="/home/ftpusr/ftp-tmp/tester/test
cs30.tsmix
";
- //outf="/home/ftpusr/ftp-tmp/tester/test.tssp.ts";
-
//inf="D:\\jTssplitter\\NEEDLESS
.ts";
-
//outf="D:\\jTssplitter\\NEEDLESS.split-2
.ts";
+ //inf="/home/ftpusr/ftp-tmp/tester/test
.ts
";
+ //outf="/home/ftpusr/ftp-tmp/tester/test.tssp
2
.ts";
+
inf="D:\\jTssplitter\\test
.ts";
+
outf="D:\\jTssplitter\\test.split-5test
.ts";
//inf="/home/ftpusr/ftp-tmp/tester/NEEDLESS.tsmix.ts";
//outf="/home/ftpusr/ftp-tmp/tester/Needless.tssp.ts";
t1.splitTS(inf,outf,ch);
//inf="/home/ftpusr/ftp-tmp/tester/NEEDLESS.tsmix.ts";
//outf="/home/ftpusr/ftp-tmp/tester/Needless.tssp.ts";
t1.splitTS(inf,outf,ch);
diff --git
a/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java
b/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java
index
068649b
..
eec3663
100644
(file)
--- a/
jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java
+++ b/
jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java
@@
-11,13
+11,15
@@
import jtssplitter.data.PMTData;
/**
*
/**
*
- * @author
Administrator
+ * @author
gn64_jp
*/
public class Mpeg2TSPacket {
public String header;
public String payload;
public String adaptation;
*/
public class Mpeg2TSPacket {
public String header;
public String payload;
public String adaptation;
+ public byte[] bPAT_payload=null;
+ private String bPAT_payload_made="";
//private ArrayList<TsDate> date=new ArrayList<TsDate>();
//date.add(new TsDate("Starter"))
public int type;//
//private ArrayList<TsDate> date=new ArrayList<TsDate>();
//date.add(new TsDate("Starter"))
public int type;//
@@
-166,6
+168,24
@@
public class Mpeg2TSPacket {
*
* p_tableで指定された番組テーブルのみを取り出すPATを作る。
*/
*
* p_tableで指定された番組テーブルのみを取り出すPATを作る。
*/
+ int matchnum=0;
+ byte[] tbb=new byte[ts.length-4];
+ for (int i=0;i<ts.length-4;i++){
+ tbb[i]=ts[4+i];
+ if (bPAT_payload!=null){
+ if (ts[4+i]==bPAT_payload[i]){
+ matchnum++;
+ }
+ }
+ }
+ if (matchnum==ts.length-4){
+ byte[] retb=new byte[188];
+ System.arraycopy(ts,0,retb,0,4);
+ System.arraycopy(bPAT_payload,0,retb,4,184);
+ return retb;
+ }else{
+ bPAT_payload=tbb;
+ }
String tsbyte = byte2String(ts);
String tsheader = "";
header = tsbyte.substring(0, 31);
String tsbyte = byte2String(ts);
String tsheader = "";
header = tsbyte.substring(0, 31);
@@
-201,43
+221,48
@@
public class Mpeg2TSPacket {
}
private String makePAT(String tsheader,String payload_temp, int Table) {
}
private String makePAT(String tsheader,String payload_temp, int Table) {
- int tableid;
int sectionlength;
int sectionlength;
- ArrayList program_number = new ArrayList();
+ StringBuffer sb=new StringBuffer();
+ //ArrayList program_number = new ArrayList();
//System.out.println("Pay:"+payload_temp);
//System.out.println("Pay:"+payload_temp);
- tableid = TSString2Int(payload_temp, 0, 8);
+
//int
tableid = TSString2Int(payload_temp, 0, 8);
sectionlength = TSString2Int(payload_temp, 12, 12);//-40-32;
int patnum = sectionlength * 8 - 72;
sectionlength = TSString2Int(payload_temp, 12, 12);//-40-32;
int patnum = sectionlength * 8 - 72;
- String rets = "";//="00000000";//pointer field
- rets = rets + payload_temp.substring(0, 12);//セクション長の前まで
+ //String rets = "";//="00000000";//pointer field
+ //rets = rets + payload_temp.substring(0, 12);//セクション長の前まで
+ sb.append(payload_temp.substring(0,12));
int new_section_length = (2 * 32 + 32 + 40) / 8;
int new_section_length = (2 * 32 + 32 + 40) / 8;
-
- rets = rets + Int2String(new_section_length, 12);
- rets = rets + payload_temp.substring(24, 64);//ループ前まで
+ sb.append(Int2String(new_section_length, 12));
+ sb.append(payload_temp.substring(24, 64));
+ //rets = rets + Int2String(new_section_length, 12);
+ //rets = rets + payload_temp.substring(24, 64);//ループ前まで
String loop = "";
patnum = patnum / 32;
String loop = "";
patnum = patnum / 32;
- String crcnow = payload_temp.substring(64 + 32 * patnum, 64 + 32 * patnum + 32);
+
//
String crcnow = payload_temp.substring(64 + 32 * patnum, 64 + 32 * patnum + 32);
for (int i = 0; i < patnum; i++) {
int[] pat = new int[2];
pat[0] = TSString2Int(payload_temp, 64 + 32 * i, 16);
pat[1] = TSString2Int(payload_temp, 32 * i + 64 + 19, 13);
if (pat[0] == 0) {
for (int i = 0; i < patnum; i++) {
int[] pat = new int[2];
pat[0] = TSString2Int(payload_temp, 64 + 32 * i, 16);
pat[1] = TSString2Int(payload_temp, 32 * i + 64 + 19, 13);
if (pat[0] == 0) {
- loop = loop+payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1);
+ sb.append(payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1));
+ //loop = loop+payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1);
} else if (pat[0] == Table) {
} else if (pat[0] == Table) {
- loop = loop + payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1);
+ sb.append(payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1));
+ //loop = loop + payload_temp.substring(64 + 32 * i, 95 + 32 * i + 1);
i = patnum;
}
}
i = patnum;
}
}
- rets = rets + loop;
String s2=tsheader.substring(tsheader.length()-8);
String s2=tsheader.substring(tsheader.length()-8);
- s2=s2+
rets
;
+ s2=s2+
sb.toString()
;
String s = getCRC32(s2);
String s = getCRC32(s2);
- rets = rets + s;
- int ill3 = payload_temp.length() - rets.length();
+ sb.append(s);
+ //rets = rets + s;
+ int ill3 = payload_temp.length() - sb.length();
for (int ir = 0; ir < ill3; ir++) {
for (int ir = 0; ir < ill3; ir++) {
- rets = rets + "1";
+ sb.append("1");
+ //rets = rets + "1";
}
}
- return
rets
;
+ return
sb.toString()
;
}
private String getCRC32(String s){
return getCRC32(String2Byte(s),1);
}
private String getCRC32(String s){
return getCRC32(String2Byte(s),1);
@@
-285,11
+310,32
@@
public class Mpeg2TSPacket {
}
private String addzero(int num){
}
private String addzero(int num){
- StringBuffer s2=new StringBuffer();
- for (int i2 = 0; i2 < num; i2++) {
- s2.append("0");// = "0" + s2;
+ switch (num){
+ case 0:
+ return "";
+ case 1:
+ return "0";
+ case 2:
+ return "00";
+ case 3:
+ return "000";
+ case 4:
+ return "0000";
+ case 5:
+ return "00000";
+ case 6:
+ return "000000";
+ case 7:
+ return "0000000";
+ case 8:
+ return "00000000";
+ default:
+ StringBuffer sb=new StringBuffer();
+ for (int i=0;i<num;i++){
+ sb.append("0");
+ }
+ return sb.toString();
}
}
- return s2.toString();
}
private String byte2String(byte[] b) {
StringBuffer sb=new StringBuffer(8*b.length);
}
private String byte2String(byte[] b) {
StringBuffer sb=new StringBuffer(8*b.length);
diff --git
a/jTsSplitter/trunk/src/jtssplitter/Tsfile.java
b/jTsSplitter/trunk/src/jtssplitter/Tsfile.java
index
5e38764
..
4c6653a
100644
(file)
--- a/
jTsSplitter/trunk/src/jtssplitter/Tsfile.java
+++ b/
jTsSplitter/trunk/src/jtssplitter/Tsfile.java
@@
-78,6
+78,8
@@
public class Tsfile {
boolean end=false;
int ik=0;
boolean readend=false;
boolean end=false;
int ik=0;
boolean readend=false;
+ Mpeg2TSPacket m2tpp;
+ m2tpp=new Mpeg2TSPacket();
while (readend==false){
byte[] tstt=new byte[3];
bis.mark(188*2);
while (readend==false){
byte[] tstt=new byte[3];
bis.mark(188*2);
@@
-86,15
+88,15
@@
public class Tsfile {
wbyte=null;
Mpeg2TSPacket m2tp;
m2tp=new Mpeg2TSPacket();
wbyte=null;
Mpeg2TSPacket m2tp;
m2tp=new Mpeg2TSPacket();
- int ii=m2tp.getPIDFirst(tstt);
+ int ii=m2tp
p
.getPIDFirst(tstt);
boolean alreadyreaded=false;
for (int k=0;k<pids.length;k++){
if (ii==pids[k]){
alreadyreaded=true;
int readti=bis.read(tb);
if ((ii==0)&&(readti>187)){
boolean alreadyreaded=false;
for (int k=0;k<pids.length;k++){
if (ii==pids[k]){
alreadyreaded=true;
int readti=bis.read(tb);
if ((ii==0)&&(readti>187)){
- Mpeg2TSPacket m2tp2=new Mpeg2TSPacket();
- wbyte=m2tp
2
.splitPAT(tb,p_table);
+
//
Mpeg2TSPacket m2tp2=new Mpeg2TSPacket();
+ wbyte=m2tp
p
.splitPAT(tb,p_table);
}else if (readti>187){
wbyte=tb;
}else {
}else if (readti>187){
wbyte=tb;
}else {