[vlc-commits] demux: mp4: compute cts_shift when missing
Francois Cartegnie
git at videolan.org
Sun Feb 7 20:21:45 UTC 2021
vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Thu Feb 4 20:24:36 2021 +0100| [a1ad08a051f85a645c0353116c930806cdda6128] | committer: Francois Cartegnie
demux: mp4: compute cts_shift when missing
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a1ad08a051f85a645c0353116c930806cdda6128
---
modules/demux/mp4/mp4.c | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/modules/demux/mp4/mp4.c b/modules/demux/mp4/mp4.c
index c926d47e72..2f12ab7c7e 100644
--- a/modules/demux/mp4/mp4.c
+++ b/modules/demux/mp4/mp4.c
@@ -2686,7 +2686,17 @@ static int TrackCreateSamplesIndex( demux_t *p_demux,
int64_t i_cts_shift = 0;
const MP4_Box_t *p_cslg = MP4_BoxGet( p_demux_track->p_stbl, "cslg" );
if( p_cslg && BOXDATA(p_cslg) )
+ {
i_cts_shift = BOXDATA(p_cslg)->ct_to_dts_shift;
+ }
+ else if( ctts->i_entry_count ) /* Compute for Quicktime */
+ {
+ for( uint32_t i = 0; i < ctts->i_entry_count; i++ )
+ {
+ if( ctts->pi_sample_offset[i] < 0 && ctts->pi_sample_offset[i] < -i_cts_shift )
+ i_cts_shift = -ctts->pi_sample_offset[i];
+ }
+ }
/* Create pts-dts table per chunk */
uint32_t i_index = 0;
More information about the vlc-commits
mailing list