[vlc-commits] [Git][videolan/vlc][master] demux: mp4: ignore implicit PTS for old codecs only

Felix Paul Kühne (@fkuehne) gitlab at videolan.org
Sat May 10 10:40:36 UTC 2025



Felix Paul Kühne pushed to branch master at VideoLAN / VLC


Commits:
5d3135de by François Cartegnie at 2025-05-10T10:15:06+00:00
demux: mp4: ignore implicit PTS for old codecs only

refs #28783

- - - - -


3 changed files:

- modules/demux/mp4/essetup.c
- modules/demux/mp4/mp4.c
- modules/demux/mp4/mp4.h


Changes:

=====================================
modules/demux/mp4/essetup.c
=====================================
@@ -784,6 +784,9 @@ int SetupVideoES( demux_t *p_demux, const mp4_track_t *p_track, const MP4_Box_t
                                BOXDATA(p_strf)->i_extra,
                                p_fmt );
             }
+            /* Mostly bogus muxs with old codecs
+             * see 71c4cc66456facb59cd0eef1626be1be1befeb39 */
+            p_cfg->b_ignore_implicit_pts = true;
             break;
         }
 


=====================================
modules/demux/mp4/mp4.c
=====================================
@@ -603,7 +603,7 @@ static vlc_tick_t MP4_TrackGetDTSPTS( demux_t *p_demux, const mp4_track_t *p_tra
         {
             *pi_nzpts = i_dts + MP4_rescale_mtime( delta, p_track->i_timescale );
         }
-        else if( p_track->fmt.i_cat == VIDEO_ES )
+        else if( p_track->b_ignore_implicit_pts )
         {
             *pi_nzpts = INVALID_PTS;
         }
@@ -3162,6 +3162,7 @@ static void TrackConfigApply( const track_config_t *p_cfg,
      p_track->b_chans_reorder = p_cfg->b_chans_reorder;
      p_track->b_forced_spu = p_cfg->b_forced_spu;
      p_track->i_block_flags = p_cfg->i_block_flags;
+     p_track->b_ignore_implicit_pts = p_cfg->b_ignore_implicit_pts;
 }
 
 static int TrackFillConfig( demux_t *p_demux, const mp4_track_t *p_track,


=====================================
modules/demux/mp4/mp4.h
=====================================
@@ -91,6 +91,7 @@ typedef struct
     bool        b_chans_reorder;
 
     bool b_forced_spu; /* forced track selection (never done by default/priority) */
+    bool b_ignore_implicit_pts;
 
     uint32_t    i_block_flags;
 } track_config_t;
@@ -109,6 +110,7 @@ typedef struct
     uint32_t i_switch_group;
 
     bool b_mac_encoding;
+    bool b_ignore_implicit_pts;
 
     es_format_t fmt;
     uint32_t    i_block_flags;



View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/5d3135decaf62be234f9bb8b261d1ac3b19e824d

-- 
View it on GitLab: https://code.videolan.org/videolan/vlc/-/commit/5d3135decaf62be234f9bb8b261d1ac3b19e824d
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