aboutsummaryrefslogtreecommitdiff
path: root/video/avi_decoder.h
diff options
context:
space:
mode:
authorPaul Gilbert2016-10-12 20:09:36 -0400
committerPaul Gilbert2016-10-12 20:09:36 -0400
commita333f3c44ccde58438cb0deb9a6398b3008aeeec (patch)
treed7d3ea57b5397ceccc606a1aea882f0335daedbf /video/avi_decoder.h
parent0a186a66d6425212f9e1a340aa84b40709a55527 (diff)
downloadscummvm-rg350-a333f3c44ccde58438cb0deb9a6398b3008aeeec.tar.gz
scummvm-rg350-a333f3c44ccde58438cb0deb9a6398b3008aeeec.tar.bz2
scummvm-rg350-a333f3c44ccde58438cb0deb9a6398b3008aeeec.zip
VIDEO: Support rewind on AVI files with multiple video tracks
Diffstat (limited to 'video/avi_decoder.h')
-rw-r--r--video/avi_decoder.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/video/avi_decoder.h b/video/avi_decoder.h
index db9928d444..4bba07e98f 100644
--- a/video/avi_decoder.h
+++ b/video/avi_decoder.h
@@ -272,10 +272,15 @@ protected:
uint32 chunkSearchOffset;
};
+ class IndexEntries : public Common::Array<OldIndex> {
+ public:
+ OldIndex *find(uint index, uint frameNumber);
+ };
+
AVIHeader _header;
void readOldIndex(uint32 size);
- Common::Array<OldIndex> _indexEntries;
+ IndexEntries _indexEntries;
Common::SeekableReadStream *_fileStream;
bool _decodedHeader;
@@ -296,8 +301,9 @@ protected:
void handleStreamHeader(uint32 size);
void readStreamName(uint32 size);
uint16 getStreamType(uint32 tag) const { return tag & 0xFFFF; }
- byte getStreamIndex(uint32 tag) const;
+ static byte getStreamIndex(uint32 tag);
void checkTruemotion1();
+ uint getVideoTrackOffset(uint trackIndex, uint frameNumber = 0);
void handleNextPacket(TrackStatus& status);
bool shouldQueueAudio(TrackStatus& status);