]> granicus.if.org Git - handbrake/commitdiff
merge stream: fix potential overflow in pts calculation
authorjstebbins <jstebbins.hb@gmail.com>
Tue, 17 Feb 2015 21:10:59 +0000 (21:10 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Tue, 17 Feb 2015 21:10:59 +0000 (21:10 +0000)
git-svn-id: svn://svn.handbrake.fr/HandBrake/branches/0.10.x@6920 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/stream.c

index d179ff3bb1db727c6d30f765a77457552d844fec..6498331db5626143b5e70a13dc333028a42ced73 100644 (file)
@@ -1558,11 +1558,11 @@ static struct pts_pos hb_sample_pts(hb_stream_t *stream, uint64_t fpos)
             hb_log("hb_sample_pts: no PTS in video packet near %"PRIu64, fpos);
             return pp;
         }
-        pp.pts = ( ( (uint64_t)pes[9] >> 1 ) & 7 << 30 ) |
-                 ( (uint64_t)pes[10] << 22 ) |
-                 ( ( (uint64_t)pes[11] >> 1 ) << 15 ) |
-                 ( (uint64_t)pes[12] << 7 ) |
-                 ( (uint64_t)pes[13] >> 1 );
+        pp.pts = ((((uint64_t)pes[ 9] >> 1 ) & 7) << 30) |
+                 (  (uint64_t)pes[10] << 22)             |
+                 ( ((uint64_t)pes[11] >> 1 )      << 15) |
+                 (  (uint64_t)pes[12] << 7 )             |
+                 (  (uint64_t)pes[13] >> 1 );
 
         if ( ts_isIframe( stream, buf, adapt_len ) )
         {