diff options
author | Thomas Vander Stichele <thomas@apestaart.org> | 2006-02-07 18:01:17 +0000 |
---|---|---|
committer | Thomas Vander Stichele <thomas@apestaart.org> | 2006-02-07 18:01:17 +0000 |
commit | 577775354d2b24d2463232cb9c1b2f6b57e864d5 (patch) | |
tree | fb4131130db95b6180b850e0a35f3a5e1b9eda39 /gst | |
parent | 54a95b0f9f16506dc11af9e4db9e7a593e9be272 (diff) | |
download | gst-plugins-bad-577775354d2b24d2463232cb9c1b2f6b57e864d5.tar.gz gst-plugins-bad-577775354d2b24d2463232cb9c1b2f6b57e864d5.tar.bz2 gst-plugins-bad-577775354d2b24d2463232cb9c1b2f6b57e864d5.zip |
gst/qtdemux/qtdemux.c: use the correct variable to check if we can calculate the last chunk. Looks like an obvious b...
Original commit message from CVS:
* gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header),
(qtdemux_parse_trak):
use the correct variable to check if we can calculate
the last chunk. Looks like an obvious bug, and makes
the dump of offsets comparable to other tools
Diffstat (limited to 'gst')
-rw-r--r-- | gst/qtdemux/qtdemux.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/gst/qtdemux/qtdemux.c b/gst/qtdemux/qtdemux.c index af829ef6..a0e865ff 100644 --- a/gst/qtdemux/qtdemux.c +++ b/gst/qtdemux/qtdemux.c @@ -2357,7 +2357,10 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) int samples_per_chunk; first_chunk = QTDEMUX_GUINT32_GET (stsc->data + 16 + i * 12 + 0) - 1; - if (i == n_samples - 1) { + /* the last chunk of each entry is calculated by taking the first chunk + * of the next entry; except if there is no next, where we fake it with + * INT_MAX */ + if (i == n_samples_per_chunk - 1) { last_chunk = INT_MAX; } else { last_chunk = QTDEMUX_GUINT32_GET (stsc->data + 16 + i * 12 + 12) - 1; @@ -2365,8 +2368,8 @@ qtdemux_parse_trak (GstQTDemux * qtdemux, GNode * trak) samples_per_chunk = QTDEMUX_GUINT32_GET (stsc->data + 16 + i * 12 + 4); GST_LOG_OBJECT (qtdemux, - "sample %d has first_chunk %d, last_chunk %d, samples_per_chunk %d", - i, first_chunk, last_chunk, samples_per_chunk); + "entry %d has first_chunk %d, last_chunk %d, samples_per_chunk %d", i, + first_chunk, last_chunk, samples_per_chunk); for (j = first_chunk; j < last_chunk; j++) { guint64 chunk_offset; |