move timecode calculation out of laces loop

Originally committed as revision 8359 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Aurelien Jacobs 18 years ago
parent c6fd617aea
commit 916bf03a69
  1. 12
      libavformat/matroska.c

@ -2552,18 +2552,18 @@ matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, int size,
if (res == 0) { if (res == 0) {
int real_v = matroska->tracks[track]->flags & MATROSKA_TRACK_REAL_V; int real_v = matroska->tracks[track]->flags & MATROSKA_TRACK_REAL_V;
for (n = 0; n < laces; n++) {
uint64_t timecode = AV_NOPTS_VALUE; 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++) {
int slice, slices = 1; int slice, slices = 1;
if (real_v) { if (real_v) {
slices = *data++ + 1; slices = *data++ + 1;
lace_size[n]--; lace_size[n]--;
} }
if (cluster_time != (uint64_t)-1 && n == 0) {
if (cluster_time + block_time >= 0)
timecode = cluster_time + block_time;
}
/* FIXME: duration */ /* FIXME: duration */
for (slice=0; slice<slices; slice++) { 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); matroska_queue_packet_reordered(matroska, pkt, is_bframe);
else else
matroska_queue_packet(matroska, pkt); matroska_queue_packet(matroska, pkt);
timecode = AV_NOPTS_VALUE;
} }
data += lace_size[n]; data += lace_size[n];
} }

Loading…
Cancel
Save