Skip to content

Commit 203045e

Browse files
committed
MP4ParserIncremental; fix wrong file offsets
1 parent d5d680c commit 203045e

File tree

1 file changed

+5
-6
lines changed

1 file changed

+5
-6
lines changed

src/AudioTools/AudioCodecs/MP4ParserIncremental.h

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,6 @@ class MP4ParserIncremental : public MP4Parser {
7070
size_t box_bytes_expected = 0; ///< Total expected bytes for the current box
7171
char box_type[5] = {0}; ///< Current box type
7272
int box_level = 0; ///< Current box level (nesting)
73-
uint64_t box_offset = 0; ///< Offset of the current box
7473

7574
/**
7675
* @brief Default incremental data callback. Prints box info.
@@ -215,7 +214,6 @@ class MP4ParserIncremental : public MP4Parser {
215214
box_bytes_expected = payload_size;
216215
strncpy(box_type, type, 5);
217216
box_level = level;
218-
box_offset = fileOffset + parseOffset;
219217

220218
size_t available_payload = bufferSize - parseOffset - headerSize;
221219

@@ -227,7 +225,7 @@ class MP4ParserIncremental : public MP4Parser {
227225
box.data = nullptr;
228226
box.data_size = available_payload;
229227
box.level = box_level;
230-
box.file_offset = box_offset;
228+
box.file_offset = 0;
231229
box.is_complete = false;
232230
box.is_container = false;
233231

@@ -242,7 +240,8 @@ class MP4ParserIncremental : public MP4Parser {
242240
processIncrementalDataCallback(box, p + headerSize, available_payload, false, ref);
243241
}
244242
}
245-
fileOffset += (bufferSize - buffer.available());
243+
//fileOffset += (bufferSize - buffer.available());
244+
fileOffset += (parseOffset + payload_size + 8);
246245
buffer.clear();
247246
parseOffset = 0;
248247
}
@@ -262,13 +261,13 @@ class MP4ParserIncremental : public MP4Parser {
262261
box.size = box_bytes_expected;
263262
box.data_size = to_read;
264263
box.level = box_level;
265-
box.file_offset = box_offset + box_bytes_received;
264+
box.file_offset = 0;
266265
box.is_complete = (box_bytes_received + to_read == box_bytes_expected);
267266
box.is_container = false;
268267
processIncrementalDataCallback(box, buffer.data(), to_read, box.is_complete, ref);
269268
}
270269
box_bytes_received += to_read;
271-
fileOffset += to_read;
270+
//fileOffset += to_read;
272271
buffer.clearArray(to_read);
273272

274273
if (box_bytes_received >= box_bytes_expected) {

0 commit comments

Comments
 (0)