[vlc-commits] [Git][videolan/vlc][master] demux: ts: don't split pkt on overflow for aligned cases

Steve Lhomme (@robUx4) gitlab at videolan.org
Thu Jan 25 12:13:44 UTC 2024



Steve Lhomme pushed to branch master at VideoLAN / VLC


Commits:
32bd499b by François Cartegnie at 2024-01-25T11:12:57+00:00
demux: ts: don't split pkt on overflow for aligned cases

useless as the startcode always lies in first bytes
if there's no PUSI violation

- - - - -


2 changed files:

- modules/demux/mpeg/ts_pes.c
- test/modules/demux/ts_pes.c


Changes:

=====================================
modules/demux/mpeg/ts_pes.c
=====================================
@@ -268,8 +268,9 @@ bool ts_pes_Gather( ts_pes_parse_callback *cb,
             assert( p_pes->gather.i_data_size > p_pes->gather.i_gathered ||
                     p_pes->gather.i_data_size == 0 );
 
-            /* If we started reading a fixed size */
-            if( p_pes->gather.i_data_size > p_pes->gather.i_gathered && !b_single_payload )
+            /* If we started reading a fixed size that might not end on boundary */
+            if( unlikely(!b_aligned_ts_payload) &&
+                p_pes->gather.i_data_size > p_pes->gather.i_gathered )
             {
                 const size_t i_remain = p_pes->gather.i_data_size - p_pes->gather.i_gathered;
                 /* Append whole block */


=====================================
test/modules/demux/ts_pes.c
=====================================
@@ -173,7 +173,7 @@ int main(void)
     ASSERT(output);
     block_ChainProperties(output, &outputcount, &outputsize, NULL);
     ASSERT(outputcount == 1);
-    ASSERT(outputsize == 256);
+    ASSERT(outputsize == 300);
     RESET;
 
     /* no packets assembly from unit start, early termination by fixed size */



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/32bd499b12bffabec98bfe51dbdcdc9490e3c81e

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/32bd499b12bffabec98bfe51dbdcdc9490e3c81e
You're receiving this email because of your account on code.videolan.org.


VideoLAN code repository instance


More information about the vlc-commits mailing list