Mercurial > libavformat.hg
comparison matroskaenc.c @ 2507:048f4f45a84c libavformat
Use num_entries directly rather than mixing it with a local copy
author | conrad |
---|---|
date | Wed, 05 Sep 2007 00:25:44 +0000 |
parents | 623cb1c85104 |
children | 9b96804b67c1 |
comparison
equal
deleted
inserted
replaced
2506:623cb1c85104 | 2507:048f4f45a84c |
---|---|
260 } | 260 } |
261 | 261 |
262 static int mkv_add_seekhead_entry(mkv_seekhead *seekhead, unsigned int elementid, uint64_t filepos) | 262 static int mkv_add_seekhead_entry(mkv_seekhead *seekhead, unsigned int elementid, uint64_t filepos) |
263 { | 263 { |
264 mkv_seekhead_entry *entries = seekhead->entries; | 264 mkv_seekhead_entry *entries = seekhead->entries; |
265 int new_entry = seekhead->num_entries; | |
266 | 265 |
267 // don't store more elements than we reserved space for | 266 // don't store more elements than we reserved space for |
268 if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries) | 267 if (seekhead->max_entries > 0 && seekhead->max_entries <= seekhead->num_entries) |
269 return -1; | 268 return -1; |
270 | 269 |
271 entries = av_realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry)); | 270 entries = av_realloc(entries, (seekhead->num_entries + 1) * sizeof(mkv_seekhead_entry)); |
272 if (entries == NULL) | 271 if (entries == NULL) |
273 return AVERROR(ENOMEM); | 272 return AVERROR(ENOMEM); |
274 | 273 |
275 entries[new_entry].elementid = elementid; | 274 entries[seekhead->num_entries ].elementid = elementid; |
276 entries[new_entry].segmentpos = filepos - seekhead->segment_offset; | 275 entries[seekhead->num_entries++].segmentpos = filepos - seekhead->segment_offset; |
277 | 276 |
278 seekhead->entries = entries; | 277 seekhead->entries = entries; |
279 seekhead->num_entries++; | |
280 | 278 |
281 return 0; | 279 return 0; |
282 } | 280 } |
283 | 281 |
284 /** | 282 /** |
339 } | 337 } |
340 | 338 |
341 static int mkv_add_cuepoint(mkv_cues *cues, AVPacket *pkt, offset_t cluster_pos) | 339 static int mkv_add_cuepoint(mkv_cues *cues, AVPacket *pkt, offset_t cluster_pos) |
342 { | 340 { |
343 mkv_cuepoint *entries = cues->entries; | 341 mkv_cuepoint *entries = cues->entries; |
344 int new_entry = cues->num_entries; | |
345 | 342 |
346 entries = av_realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint)); | 343 entries = av_realloc(entries, (cues->num_entries + 1) * sizeof(mkv_cuepoint)); |
347 if (entries == NULL) | 344 if (entries == NULL) |
348 return AVERROR(ENOMEM); | 345 return AVERROR(ENOMEM); |
349 | 346 |
350 entries[new_entry].pts = pkt->pts; | 347 entries[cues->num_entries ].pts = pkt->pts; |
351 entries[new_entry].tracknum = pkt->stream_index + 1; | 348 entries[cues->num_entries ].tracknum = pkt->stream_index + 1; |
352 entries[new_entry].cluster_pos = cluster_pos - cues->segment_offset; | 349 entries[cues->num_entries++].cluster_pos = cluster_pos - cues->segment_offset; |
353 | 350 |
354 cues->entries = entries; | 351 cues->entries = entries; |
355 cues->num_entries++; | |
356 return 0; | 352 return 0; |
357 } | 353 } |
358 | 354 |
359 static offset_t mkv_write_cues(ByteIOContext *pb, mkv_cues *cues, int num_tracks) | 355 static offset_t mkv_write_cues(ByteIOContext *pb, mkv_cues *cues, int num_tracks) |
360 { | 356 { |