From dad8255c86fd6f00a3ff7ce6416ccb10156d7356 Mon Sep 17 00:00:00 2001
From: jstebbins <jstebbins.hb@gmail.com>
Date: Mon, 1 Aug 2011 18:18:52 +0000
Subject: [PATCH] libhb: fix mis-detection of mov files as mpeg PS Tightens the
 mpeg PS detection further to prevent mis-detection of mov files as mpeg PS.
 Hopefully doesn't cause faulures to detect real mpeg PS files.

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@4150 b64f7644-9d1e-0410-96f1-a4d463321fa5
---
 libhb/stream.c | 18 ++++++++++--------
 1 file changed, 10 insertions(+), 8 deletions(-)

diff --git a/libhb/stream.c b/libhb/stream.c
index d4f810c99..905cdd951 100644
--- a/libhb/stream.c
+++ b/libhb/stream.c
@@ -408,7 +408,6 @@ static int hb_stream_check_for_ps(hb_stream_t *stream)
     uint8_t buf[2048*4];
     uint8_t sc_buf[4];
     int pos = 0;
-    int hits = 0;
 
     fseek(stream->file_handle, 0, SEEK_SET);
 
@@ -427,16 +426,19 @@ static int hb_stream_check_for_ps(hb_stream_t *stream)
             {
                 int pes_offset, prev, data_len;
                 uint8_t sid;
-
-                if ( ++hits == 3 )
-                    return 1;
-                pes_offset = 14 + (buf[13] & 0x7);
-                sid = buf[pes_offset+3];
-                data_len = (buf[pes_offset+4] << 8) + buf[pes_offset+5];
+                uint8_t *b = buf+offset;
+
+                // Skip the pack header
+                pes_offset = 14 + (b[13] & 0x7);
+                b +=  pes_offset;
+                // Get the next stream id
+                sid = b[3];
+                data_len = (b[4] << 8) + b[5];
                 if ( data_len && sid > 0xba && sid < 0xf9 )
                 {
                     prev = ftell( stream->file_handle );
-                    pos = pes_offset + 6 + data_len + prev;
+                    pos = prev - ( sizeof(buf) - offset );
+                    pos += pes_offset + 6 + data_len;
                     fseek( stream->file_handle, pos, SEEK_SET );
                     if ( fread(sc_buf, 1, 4, stream->file_handle) != 4 )
                         return 0;
-- 
2.40.0