# HG changeset patch # User aurel # Date 1222642528 0 # Node ID 9315ab7b1c0d70a70863ca6b963de1768485c2f0 # Parent 45684dea4c9b886b709d69268cb1615b0a11d3c2 matroskadec: pass duration as parameter of matroska_fix_ass_packet() diff -r 45684dea4c9b -r 9315ab7b1c0d matroskadec.c --- a/matroskadec.c Sat Sep 27 23:12:24 2008 +0000 +++ b/matroskadec.c Sun Sep 28 22:55:28 2008 +0000 @@ -934,7 +934,7 @@ } static void matroska_fix_ass_packet(MatroskaDemuxContext *matroska, - AVPacket *pkt) + AVPacket *pkt, uint64_t display_duration) { char *line, *layer, *ptr = pkt->data, *end = ptr+pkt->size; for (; *ptr!=',' && ptrpts + pkt->convergence_duration; + int64_t end_pts = pkt->pts + display_duration; int sc = matroska->time_scale * pkt->pts / 10000000; int ec = matroska->time_scale * end_pts / 10000000; int sh, sm, ss, eh, em, es, len; @@ -1627,7 +1627,7 @@ pkt->duration = duration; if (st->codec->codec_id == CODEC_ID_SSA) - matroska_fix_ass_packet(matroska, pkt); + matroska_fix_ass_packet(matroska, pkt, duration); dynarray_add(&matroska->packets, &matroska->num_packets, pkt); }