demux: add {Next,Prev}Chunk

replaces WebPDemuxSetChunk(). makes this consistent with the Frame
interface.

Change-Id: Ia2b1b98cc290f35b41fd14ee35a2a17cecac7ba8
This commit is contained in:
James Zern 2012-06-21 18:27:54 -07:00
parent 31b68fe639
commit 4708393c3b
2 changed files with 17 additions and 6 deletions

View File

@ -853,10 +853,20 @@ int WebPDemuxGetChunk(const WebPDemuxer* const dmux,
return SetChunk(fourcc, chunk_num, iter);
}
int WebPDemuxSetChunk(WebPChunkIterator* const iter, int chunk) {
int WebPDemuxNextChunk(WebPChunkIterator* const iter) {
if (iter != NULL) {
const uint8_t* const header = iter->chunk_.bytes_ - CHUNK_HEADER_SIZE;
return SetChunk((const char*)header, chunk, iter);
const char* const fourcc =
(const char*)iter->chunk_.bytes_ - CHUNK_HEADER_SIZE;
return SetChunk(fourcc, iter->chunk_num_ + 1, iter);
}
return 0;
}
int WebPDemuxPrevChunk(WebPChunkIterator* const iter) {
if (iter != NULL && iter->chunk_num_ > 1) {
const char* const fourcc =
(const char*)iter->chunk_.bytes_ - CHUNK_HEADER_SIZE;
return SetChunk(fourcc, iter->chunk_num_ - 1, iter);
}
return 0;
}

View File

@ -585,10 +585,11 @@ WEBP_EXTERN(int) WebPDemuxGetChunk(const WebPDemuxer* const dmux,
const char fourcc[4], int chunk_number,
WebPChunkIterator* const iter);
// Sets 'iter->chunk_' to point to chunk 'chunk_number'.
// Sets 'iter->chunk_' to point to the next ('iter->chunk_num_' + 1) or previous
// ('iter->chunk_num_' - 1) chunk. These functions do not loop.
// Returns true on success, false otherwise.
WEBP_EXTERN(int) WebPDemuxSetChunk(WebPChunkIterator* const iter,
int chunk_number);
WEBP_EXTERN(int) WebPDemuxNextChunk(WebPChunkIterator* const iter);
WEBP_EXTERN(int) WebPDemuxPrevChunk(WebPChunkIterator* const iter);
// Releases any memory associated with 'iter'.
// Must be called before destroying the associated WebPDemuxer with