From 2b621401fd15cf1121c98311fd53ce2759e90f73 Mon Sep 17 00:00:00 2001 From: gn64_jp Date: Wed, 25 Nov 2009 01:08:00 +0000 Subject: [PATCH] fix no-audio bug. git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/rec10@251 4e526526-5e11-4fc0-8910-f8fd03428081 --- jTsSplitter/trunk/src/jtssplitter/Main.java | 2 ++ jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java | 15 ++++++++++----- jTsSplitter/trunk/src/jtssplitter/Tsfile.java | 3 ++- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/jTsSplitter/trunk/src/jtssplitter/Main.java b/jTsSplitter/trunk/src/jtssplitter/Main.java index 2d39df2..60de520 100644 --- a/jTsSplitter/trunk/src/jtssplitter/Main.java +++ b/jTsSplitter/trunk/src/jtssplitter/Main.java @@ -32,6 +32,8 @@ public class Main { ch = Integer.parseInt(args[2].trim(), 10); } } + inf="C:\\Users\\yukikaze\\Desktop\\21test.ts"; + outf="C:\\Users\\yukikaze\\Desktop\\21test_new11.ts"; Tsfile t1 = new Tsfile(); //t1.splitTS(inf, outf, ch); t1.splitTS_byte(inf, outf, ch); diff --git a/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java b/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java index 7c2128f..a1c0adf 100644 --- a/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java +++ b/jTsSplitter/trunk/src/jtssplitter/Mpeg2TSPacket.java @@ -276,7 +276,7 @@ public class Mpeg2TSPacket { int program_info_length = cal.byte2int(payload_temp, 84, 12); boolean end = false; int cur_point = 96 + program_info_length * 8; - if (cur_point > section_length * 8) { + if ((cur_point > section_length * 8 - 1) || (cur_point > payload_temp.length * 8 - 11)) { end = true; } while (end != true) { @@ -388,7 +388,12 @@ public class Mpeg2TSPacket { if (PID == 0) { //showPAT(tsbyte); payload_byte = makePAT_byte(pointer_byte,payload_byte, p_table); - //payload_byte = cal.String2Byte(makePAT(cal.byte2String2(header_byte), cal.byte2String2(payload_byte), p_table)); + /*byte[] bpayload=cal.String2Byte(makePAT(cal.byte2String2(header_byte), cal.byte2String2(payload_byte), p_table)); + if (!Arrays.equals(payload_byte, bpayload)){ + System.out.println("not match"); + }else{ + System.out.println("match"); + }*/ bPAT_payload = payload_byte; } ByteArrayOutputStream baos = new ByteArrayOutputStream(ts.length); @@ -513,10 +518,10 @@ public class Mpeg2TSPacket { pat[0] = cal.byte2int(payload_temp, 64 + 32 * i, 16); pat[1] = cal.byte2int(payload_temp, 32 * i + 64 + 19, 13); if (pat[0] == 0) { - baos.write(payload_temp, nowt, 4); + baos.write(payload_temp, 8+4*i, 4); nowt = nowt + 4; - } else if (pat[0] == Table) { - baos.write(payload_temp, nowt, 4); + } else if (pat[0] == Table) { + baos.write(payload_temp, 8+4*i, 4); nowt = nowt + 4; i = patnum; } diff --git a/jTsSplitter/trunk/src/jtssplitter/Tsfile.java b/jTsSplitter/trunk/src/jtssplitter/Tsfile.java index 1ddcc1c..79b450c 100644 --- a/jTsSplitter/trunk/src/jtssplitter/Tsfile.java +++ b/jTsSplitter/trunk/src/jtssplitter/Tsfile.java @@ -392,7 +392,8 @@ public class Tsfile { m2tp = new Mpeg2TSPacket(); m2tp.setPAT(pat); m2tp.setPMT(pmt); - m2tp.readTS(tb); + //m2tp.readTS(tb); + m2tp.readTS_byte(tb); pat = m2tp.getPAT(); for (int i2=0;i2