[browser] add exception handling.
[vuplus_dvbapp] / lib / dvb / tstools.cpp
index ad55509..6cd855c 100644 (file)
@@ -40,7 +40,7 @@ int eDVBTSTools::openFile(const char *filename, int nostreaminfo)
        if (f->open(filename, 1) < 0)
                return -1;
 
-       setSource(src, filename);
+       setSource(src, nostreaminfo ? NULL : filename);
 
        return 0;
 }
@@ -212,6 +212,8 @@ int eDVBTSTools::getPTS(off_t &offset, pts_t &pts, int fixed)
                                                        break;
                                                case 0x71: // AC3 / DTS
                                                        break;
+                                               case 0x72: // DTS - HD
+                                                       break;
                                                default:
                                                        eDebug("skip unknwn stream_id_extension %02x\n", payload[9+offs]);
                                                        continue;
@@ -702,6 +704,7 @@ int eDVBTSTools::findFrame(off_t &_offset, size_t &len, int &direction, int fram
        }
        off_t start = offset;
 
+#if 0
                        /* backtrack to find the previous sequence start, in case of MPEG2 */
        if ((data & 0xFF) == 0x00) {
                do {
@@ -716,6 +719,8 @@ int eDVBTSTools::findFrame(off_t &_offset, size_t &len, int &direction, int fram
                        start = offset;  /* Failed to find corresponding sequence start, so never mind */
        }
 
+#endif
+
                        /* let's find the next frame after the given offset */
        do {
                if (m_streaminfo.getStructureEntry(offset, data, 1))
@@ -731,9 +736,11 @@ int eDVBTSTools::findFrame(off_t &_offset, size_t &len, int &direction, int fram
 //             eDebug("%08llx@%llx (next)", data, offset);
        } while (((data & 0xFF) != 9) && ((data & 0xFF) != 0x00)); /* next frame */
 
+#if 0
                        /* align to TS pkt start */
        start = start - (start % 188);
        offset = offset - (offset % 188);
+#endif
 
        len = offset - start;
        _offset = start;