Commit Graph

343 Commits

Author SHA1 Message Date
Paul Gilbert
bd010bc79f COMMON: Converted Common::BitStream to use DisposeAfterUse 2016-09-10 11:16:07 -04:00
Eugene Sandulenko
fab199d37e JANITORIAL: Make GPL headers uniform 2016-09-03 12:46:38 +02:00
Eugene Sandulenko
9d3a2c1c7f Merge pull request #786 from dreammaster/titanic
TITANIC: Starship Titanic engine
2016-08-01 00:27:28 +03:00
Eugene Sandulenko
7b7b1cf0d6 VIDEO: Hid verbose debug output deeper 2016-07-25 23:24:42 +03:00
Paul Gilbert
789760295d VIDEO: Add titanic to list of engines using AVIDecoder 2016-07-17 13:10:07 -04:00
Paul Gilbert
bb2d290dca VIDEO: Handle STRN chunks in AVI file streams to set stream name 2016-07-17 13:09:20 -04:00
Paul Gilbert
fa6e12aaab VIDEO: Add support for a track filtering callback function
This is needed for Starship Titanic, where videos can have a secondary
video track. It was simpler to use the callback as a means to select
one video track each across two decoders than trying to make VideoDecoder
and/or AVIDecoder support decoding from multiple video tracks simultaneously
2016-07-17 13:08:31 -04:00
Paul Gilbert
62f2763bf7 VIDEO: Respect RIFF filesize field when decoding AVI files
Starship Titanic in particular needs this, since some of the videos
have extra junk at the end of the file, such as ycursors.avi,
and parsing fails if we don't respect the filesize field
2016-07-15 19:27:42 -04:00
Colin Snover
28d4f5b0e4 VIDEO: Expose API for providing a memory location to draw VMDs
In SSCI, VMD is drawn by a standard CelObjMem wrapped by a
ScreenItem, giving the location of the bitmap memory to the
decoder. The decoder already supports this, but the API was
previously hidden behind the AdvancedVMDDecoder wrapper
(which is more convenient to use than the VMDDecoder class).
2016-07-10 09:35:24 -05:00
Ori Avtalion
3564032330 JANITORIAL: Reduce audio header dependencies 2016-04-14 16:10:21 +03:00
Bastien Bouclet
6d8eebbf7b VIDEO: Stay on the first edit when playing QT videos backwards
We don't support playing videos with multiple edits backwards. Taking the code
path to move to the next edit when playing backwards sets the current edit index
to an invalid value with the video still trying to play. Which results in out of
bounds reads, and ultimately a crash.

This fixes multiple crashes in Myst. Using the key without the chest on
Stoneship, resetting the clock tower puzzle, and using the switch in the trees
in Channelwood.

This was a regression introduced in a59f5db505.
2016-02-13 17:54:07 +01:00
Matthew Hoops
561d1a1d62 VIDEO: Switch to all packetized streams for AVI
ZVision does not currently, but that's OK
2015-08-30 21:01:39 -04:00
Matthew Hoops
de2f4e6982 VIDEO: Add support for MP3 in AVI 2015-08-30 19:53:53 -04:00
Matthew Hoops
14e57ca76f VIDEO: Switch MPEG-PS audio code to use the packetized MP3 code 2015-08-30 19:53:53 -04:00
Matthew Hoops
49885d686e VIDEO: Implement fallback dithering for QuickTime videos
Used for any codec without direct dithering support
2015-04-12 20:12:38 -04:00
Matthew Hoops
b170b08822 VIDEO: Add support for dithering in QuickTime videos 2015-04-11 14:37:04 -04:00
Matthew Hoops
f342d63431 IMAGE: Allow for choosing dither type 2015-04-11 14:36:37 -04:00
Matthew Hoops
cfc64157a0 VIDEO: Allow AVI tracks to be dithered via the Codec
Video for Windows made the Codec do the dithering work
2015-04-11 14:36:26 -04:00
Matthew Hoops
f6d7c5e176 IMAGE: Add functions to allow for videos to be dithered 2015-04-11 14:36:18 -04:00
Matthew Hoops
cb25b7b5ee VIDEO: Make the QuickTime code error out again if the frame data can't be found
The case shouldn't actually ever happen; the off-by-one bug when seeking to the last frame of the media (in an edit) caused this originally
2015-01-20 20:10:59 -05:00
Matthew Hoops
7d1ee5563a VIDEO: Remove the "-1" edit hack
With the previous commits' fixes, it's no longer needed
2015-01-20 20:10:59 -05:00
Matthew Hoops
1a0f104acf VIDEO: Fix potential off-by-one frame time after seek
If seeking to the final frame of an edit, _nextFrameStartTime wouldn't be adjust properly and would wrongly say that it's at the end of the edit. This never affected anything because of the edit "-1" hack.
2015-01-20 20:10:59 -05:00
Matthew Hoops
8e2a438dd9 VIDEO: Fix edit frame calculation
An edit that seeks to the last frame of the media would not show
2015-01-20 20:10:59 -05:00
Matthew Hoops
aaf4d38a56 VIDEO: Round the edit time offset instead of truncating it
Allows for the KQ6 Mac intro to play without the edit "-1" hack
2015-01-20 20:10:58 -05:00
Matthew Hoops
a59f5db505 VIDEO: Fix timing with frames going past the edit boundary 2015-01-20 20:10:58 -05:00
Eugene Sandulenko
8e0d7d7255 Merge pull request #559 from fedor4ever/master
VIDEO: Add Theora support to systems which use libtremor
2015-01-11 21:12:01 +01:00
Matthew Hoops
7054bcd9c5 VIDEO: Add MPEG-PS demuxer
For use with ZVision and later MADE
2015-01-08 00:45:13 -05:00
Fedor Strizhnev
7225101e62 Add Theora support to systems which use libtremor 2015-01-05 16:53:35 +03:00
Matthew Hoops
bed532587b VIDEO: Fix check to see if the frame rate is a whole number
Thanks to Marisa-Chan for spotting
2014-12-24 10:38:28 -05:00
Fedor
b0250e72d8 VIDEO: Mark TheoraDecoder as used by pegasus 2014-12-22 12:14:18 -05:00
Matthew Hoops
124ac887fd VIDEO: Make AVIAudioTrack::resetStream() virtual
In case a subclass (like Zork) needs to override it
2014-11-02 20:45:38 -05:00
Matthew Hoops
dfc3bcae20 VIDEO: Separate AVI video and audio track reading
Relying on the videos to have 'initial frames' for audio tracks is not the best way to handle AVI videos. Now videos without initial frames (or broken interleaving) will buffer properly.
2014-11-02 20:15:06 -05:00
Filippos Karapetis
b845d41d16 VIDEO: Remove trailing whitespace 2014-10-28 15:38:51 +02:00
Matthew Hoops
b2676c412d VIDEO: Fix seeking in AVI videos with no initial audio frames 2014-09-28 15:29:42 -04:00
Matthew Hoops
422922fec2 VIDEO: Add wrapper around setEndTime() to specify an end frame 2014-08-17 12:24:28 -04:00
Willem Jan Palenstijn
a22f9bccf3 VIDEO: Reduce BinkDecoder stack usage
See bug #6677.
2014-07-08 21:18:12 +02:00
Eugene Sandulenko
8d70dd68ac AUDIO: Added stup for MP3 audiostreams in AVI
This is used in German release of Full Pipe. Unfortunately our
current MP3 decoder cannot work with streamed MP3s, and bails out
at the AVI header since there is no full MP3 header yet.
2014-06-08 22:54:07 +03:00
Matthew Hoops
1ea4b36c3b VIDEO: Document PRMI as being Premiere metadata 2014-05-27 23:57:39 -04:00
Matthew Hoops
5891ef4d89 VIDEO: Handle Truemotion dimensions specially
Truemotion uses its own demuxer and seems to follow its own AVI rules. Work around it by coercing the video's dimensions to use the codec's internal dimensions.
2014-05-27 00:09:11 -04:00
Joel Teichroeb
32e85a957d VIDEO: Use || instead of the currently incorrect &&
The code currenly has 4 logically dead lines. Instead of requiring
both newWidth and newHeight to be non zero, just make sure one of
them is non zero and set the other one to the current size.
2014-04-11 19:53:03 -07:00
Matthew Hoops
5e715f244b VIDEO: Handle the raw AVI video chunk the same as the others 2014-03-02 20:59:00 -05:00
Matthew Hoops
acec700c11 IMAGE: Share the same pool of codecs between PICT and QuickTime 2014-02-28 00:32:06 -05:00
Matthew Hoops
05e9ff136a IMAGE: Share the same pool of codecs between bitmap and AVI 2014-02-28 00:32:06 -05:00
Matthew Hoops
231a02c759 VIDEO: Use the bitmap header compression field for AVI codecs 2014-02-28 00:32:06 -05:00
Matthew Hoops
08ea14a8d0 IMAGE: Make Codec take a stream reference; change function name to decodeFrame 2014-02-28 00:27:37 -05:00
Matthew Hoops
c432b96cf6 IMAGE: Merge the JPEG codec into the ImageDecoder 2014-02-28 00:27:36 -05:00
Matthew Hoops
b568ac73b9 IMAGE: Move video codecs to image/ 2014-02-28 00:27:36 -05:00
Matthew Hoops
740b6e8fbd IMAGE: Move all ImageDecoders to image/ 2014-02-28 00:27:28 -05:00
Johannes Schickel
8f3a923686 VIDEO: Make GPL headers consistent in themselves. 2014-02-18 02:39:39 +01:00
Eugene Sandulenko
9b8e6f54fc VIDEO: Add additional FourCC appearing in some Zvision engine game versions 2014-02-07 09:42:58 +02:00