webmdec: make reader interface consistent.
Change-Id: I39d356ac850f469f2e4dd9f7556bf814e292ef88
diff --git a/webmdec.cc b/webmdec.cc
index da44940..d0e576b 100644
--- a/webmdec.cc
+++ b/webmdec.cc
@@ -118,7 +118,7 @@
}
int webm_read_frame(struct WebmInputContext *webm_ctx, uint8_t **buffer,
- size_t *buffer_size) {
+ size_t *bytes_read, size_t *buffer_size) {
// This check is needed for frame parallel decoding, in which case this
// function could be called even after it has reached end of input stream.
if (webm_ctx->reached_eos) {
@@ -142,7 +142,7 @@
} else if (block_entry_eos || block_entry->EOS()) {
cluster = segment->GetNext(cluster);
if (cluster == NULL || cluster->EOS()) {
- *buffer_size = 0;
+ *bytes_read = 0;
webm_ctx->reached_eos = 1;
return 1;
}
@@ -184,8 +184,9 @@
return -1;
}
webm_ctx->buffer = *buffer;
+ *buffer_size = frame.len;
}
- *buffer_size = frame.len;
+ *bytes_read = frame.len;
webm_ctx->timestamp_ns = block->GetTime(cluster);
webm_ctx->is_key_frame = block->IsKey();
@@ -199,8 +200,9 @@
uint32_t i = 0;
uint8_t *buffer = NULL;
size_t buffer_size = 0;
+ size_t bytes_read = 0;
while (webm_ctx->timestamp_ns < 1000000000 && i < 50) {
- if (webm_read_frame(webm_ctx, &buffer, &buffer_size)) {
+ if (webm_read_frame(webm_ctx, &buffer, &bytes_read, &buffer_size)) {
break;
}
++i;