# HG changeset patch # User mosu # Date 1105887559 0 # Node ID 35a6c4db00ae8e3504ce2697b9d5a313b857c492 # Parent 7c433bf88d1e3a91d7ad27be70ba173a58af6fa1 More support for AVC in Matroska. diff -r 7c433bf88d1e -r 35a6c4db00ae libmpdemux/demux_mkv.c --- a/libmpdemux/demux_mkv.c Sun Jan 16 14:22:37 2005 +0000 +++ b/libmpdemux/demux_mkv.c Sun Jan 16 14:59:19 2005 +0000 @@ -98,6 +98,7 @@ int reorder_timecodes; demux_packet_t **cached_dps; int num_cached_dps, num_allocated_dps; + float max_pts; /* generic content encoding support */ mkv_content_encoding_t *encodings; @@ -2865,6 +2866,8 @@ memcpy(dp->buffer, buffer, size); dp->pos = demuxer->filepos; dp->pts = mkv_d->last_pts; + if ((track->num_cached_dps > 0) && (dp->pts < track->max_pts)) + block_fref = 1; if (block_fref == 0) /* I or P frame */ flush_cached_dps (demuxer, track); if (block_bref != 0) /* I frame, don't cache it */ @@ -2878,6 +2881,8 @@ } track->cached_dps[track->num_cached_dps] = dp; track->num_cached_dps++; + if (dp->pts > track->max_pts) + track->max_pts = dp->pts; } static int