aboutsummaryrefslogtreecommitdiff
path: root/libavformat/matroska.c
diff options
context:
space:
mode:
authorAurelien Jacobs2007-03-12 21:58:29 +0000
committerAurelien Jacobs2007-03-12 21:58:29 +0000
commit916bf03a699e7ca681df994c2bc8330a087c8b0c (patch)
tree96825ac417445e678d1289734a81b2278c876b89 /libavformat/matroska.c
parentc6fd617aea137c69b985a237c1e4111c15dd0680 (diff)
move timecode calculation out of laces loop
Originally committed as revision 8359 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavformat/matroska.c')
-rw-r--r--libavformat/matroska.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index bd34e81493..717d878a0e 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -2552,18 +2552,18 @@ matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, int size,
if (res == 0) {
int real_v = matroska->tracks[track]->flags & MATROSKA_TRACK_REAL_V;
+ uint64_t timecode = AV_NOPTS_VALUE;
+
+ if (cluster_time != (uint64_t)-1 && cluster_time + block_time >= 0)
+ timecode = cluster_time + block_time;
+
for (n = 0; n < laces; n++) {
- uint64_t timecode = AV_NOPTS_VALUE;
int slice, slices = 1;
if (real_v) {
slices = *data++ + 1;
lace_size[n]--;
}
- if (cluster_time != (uint64_t)-1 && n == 0) {
- if (cluster_time + block_time >= 0)
- timecode = cluster_time + block_time;
- }
/* FIXME: duration */
for (slice=0; slice<slices; slice++) {
@@ -2595,6 +2595,8 @@ matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, int size,
matroska_queue_packet_reordered(matroska, pkt, is_bframe);
else
matroska_queue_packet(matroska, pkt);
+
+ timecode = AV_NOPTS_VALUE;
}
data += lace_size[n];
}