OSDN Git Service

byte2String2 function(using shift function,very quick) implemented.
authorgn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 29 Oct 2009 09:53:04 +0000 (09:53 +0000)
committergn64_jp <gn64_jp@4e526526-5e11-4fc0-8910-f8fd03428081>
Thu, 29 Oct 2009 09:53:04 +0000 (09:53 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@202 4e526526-5e11-4fc0-8910-f8fd03428081

jTsSplitter/trunk/src/jtssplitter/Main.java
jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java

index 56f94a6..11818f9 100644 (file)
@@ -31,8 +31,8 @@ public class Main {
             }
         }
         Tsfile t1=new Tsfile();
-        //inf="'D:\\jTssplitter\\test.ts'";
-        //outf="'D:\\jTssplitter\\test.split-5test.ts'";
+        inf="'D:\\jTssplitter\\test.ts'";
+        outf="'D:\\jTssplitter\\test.split-5test.ts'";
         inf=inf.replace("\"","");
         inf=inf.replace("\'","");
         outf=outf.replace("\"","");
index eec3663..2e878f6 100644 (file)
@@ -53,15 +53,16 @@ public class Mpeg2TSPacket {
         byte[] b=new byte[2];
         b[0]=ts[1];
         b[1]=ts[2];
-        //String s=byte2String(b);
+        //String s=byte2String2(b);
         //s=s.substring(3,16);
-        return Integer.parseInt(byte2String(b).substring(3,16),2);
+
+        return Integer.parseInt(byte2String2(b).substring(3,16),2);
     }
     public void readTS(byte[] ts) {
         /**
          * 188バイトのtsから読み出したbyteを与える
          */
-        String tsbyte = byte2String(ts);
+        String tsbyte = byte2String2(ts);
         //header = tsbyte.substring(0, 31);
         payload = tsbyte.substring(32);
         //starter = TSString2Int(tsbyte, 0, 8);
@@ -186,7 +187,7 @@ public class Mpeg2TSPacket {
         }else{
             bPAT_payload=tbb;
         }
-        String tsbyte = byte2String(ts);
+        String tsbyte = byte2String2(ts);
         String tsheader = "";
         header = tsbyte.substring(0, 31);
         payload = tsbyte.substring(32);
@@ -345,11 +346,39 @@ public class Mpeg2TSPacket {
             if ((sb2.length() < 8) & (sb2.length() > 0)) {
                 sb2.insert(0,addzero(8-sb2.length()));
             }
-            String s3=sb2.toString();
             sb.append(sb2);
         }
         return sb.toString();
     }
+    private String byte2String2(byte[] b){
+        int bl=b.length;
+        bl=bl-bl%8;
+        bl=bl/8;
+        StringBuffer sb=new StringBuffer();
+        for (int i=0;i<bl;i++){
+            long retl=0;
+            for (int j=0;j<8;j++){
+                retl=retl<<8;
+                int ri=b[i*8+j]&0xFF;
+                retl=retl+ri;
+            }
+            sb.append(Long2String(retl,64));
+        }
+        int bl2=b.length%8;
+        bl2=(bl2-bl2%4)/4;
+        for (int i=0;i<bl2;i++){
+            int reti=0;
+            for (int j=0;j<4;j++){
+                reti=reti<<8;
+                reti=reti+(b[bl*8+4*i+j]&0xFF);
+            }
+            sb.append(Int2String(reti,32));
+        }
+        for (int i=0;i<(b.length%8)%4;i++){
+            sb.append(Int2String(b[bl*8+bl2*4+i]&0xFF,8));
+        }
+        return sb.toString();
+    }
 
     private String byte2HexString(byte[] b) {
         String ret = "";