Commit Graph

467 Commits

Author SHA1 Message Date
richiesams
f2477610cf VIDEO: Add AVI LIST handling for ZVision custom types 2013-08-18 19:52:55 -05:00
Matthew Hoops
0d6f611963 VIDEO: Ignore some AVI lists with metadata 2013-08-16 21:17:51 -04:00
Filippos Karapetis
62043e949d VIDEO: Add an over-ridable wrapper for the AVI audio track handler
Reimplementation of 7a49802c01b0c39be4e86335689db8f3359fde68

This is based on a suggestion made by clone2727, so the original
idea belongs to him.
Engines can now override the common AVI audio track handler with a
custom one. This is needed for the Z-Engine AVI videos, since they
use a custom audio decoder that is only used in the two Z-Engine
games, and has its own fake AVI audio format (17). This clashes with
the MS IMA ADPCM format, and therefore shouldn't pollute the common
AVI video decoder code. The addition of this over-ridable method
allows the Z-Engine to add its own custom AVI decoder while avoiding
code duplication.
2013-08-15 15:09:30 -05:00
richiesams
95d1ef68ab Merge branch 'master' into zvision 2013-08-15 14:14:02 -05:00
Einar Johan Trøan Sømåen
6454721e31 VIDEO: Set stereo as bool instead of writing channel amount directly 2013-08-12 00:12:14 +02:00
richiesams
372c55fd8b VIDEO: Disable SCI_32 plugin guard for DUCK Truemotion
ZVision AVI videos use DUCK Truemotion
2013-08-11 16:43:39 -05:00
Johannes Schickel
7f8308e0eb Merge pull request #365 from lordhoto/protected-pixels
Make Graphics::Surface::pixels protected.
2013-08-07 12:24:59 -07:00
Matthew Hoops
6e9390feb8 VIDEO: Don't allow VideoDecoder::seek() to be overridden
A new seekIntern() that performs the actual seeking is to be overriden instead. Having the caller override seek() and then call VideoDecoder::seek() kind of defeated the purpose of stopping/starting the audio.
2013-08-06 22:26:15 -04:00
Matthew Hoops
043bd1b9f9 VIDEO: Clean up the AVI decoder 2013-08-05 23:29:22 -04:00
Johannes Schickel
8fc54d6d77 VIDEO: Fix regression in Urban Runner videos.
This is a regression from 6fce92b0ea. Thanks to
DrMcCoy for tracking this down.
2013-08-04 01:07:34 +02:00
Johannes Schickel
0cb1504a5b VIDEO: Do not set Surface::pixels directly anymore. 2013-08-03 04:14:08 +02:00
Johannes Schickel
e0c9c1d261 VIDEO: Take advantage of Surface::getPixels. 2013-08-03 04:02:49 +02:00
Johannes Schickel
6fce92b0ea VIDEO: Prefer getBasePtr over direct Surface::pixels access. 2013-08-03 04:02:49 +02:00
Sven Hesse
989ea7cb56 JANITORIAL: Remove trailing whitespace 2013-07-14 19:01:47 +02:00
clone2727
279c9f7841 Merge pull request #343 from clone2727/mpeg2-avi
Add back support for sword1/2 MPEG-2 cutscenes
2013-07-05 15:28:06 -07:00
Matthew Hoops
7da9b342aa VIDEO: Fix Indeo3 luma scale
Now black is really black
2013-06-30 23:25:46 -04:00
Matthew Hoops
b1a993ace0 VIDEO: Switch Indeo3 decoding to using the common YUV410 conversion code
It now runs much faster and looks better too. Thanks to DrMcCoy for testing.
2013-06-30 17:53:49 -04:00
Sven Hesse
4b3f5149b5 VIDEO: Add hypothetical 32bpp support 2013-06-30 19:07:04 +02:00
Sven Hesse
231586d924 VIDEO: Add hypothetical 32bpp support 2013-06-30 19:00:17 +02:00
Matthew Hoops
1ff09c581b VIDEO: Mark AVIDecoder as being used by sword1/sword2 2013-06-20 19:56:39 -04:00
Matthew Hoops
aa2d41701d VIDEO: Allow AVI frame rate to be overriden with a constant
Required for sword1/sword2 MPEG videos
2013-06-20 00:04:37 -04:00
Matthew Hoops
f39c9d58bd VIDEO: Hook up MPEG decoder to AVI 2013-06-20 00:02:50 -04:00
Matthew Hoops
0b81e59d0a VIDEO: Update AVI code for parsing sword1/sword2 MPEG-2 files 2013-06-20 00:02:32 -04:00
Matthew Hoops
36bc47df44 VIDEO: Add an MPEG 1/2 decoder 2013-06-19 23:59:04 -04:00
Thomas Fach-Pedersen
c3de517fb4 VIDEO: Wrap 8-bit smacker audio properly
The accumulator 'bases' is 16-bit but when used in 8-bit audio we need to
wrap as if 'bases' is 8-bit. Clipping on output is no longer required.

This fixes noise in The Neverhood's in-game "making of" videos,
particularly the section called "Construction, powertools & painting",
hash 0x21080009.

The intro video in The Neverhood is 16-bit audio and was not affected by
this bug. No other videos or games have been tested.
2013-05-28 00:58:10 +02:00
Eugene Sandulenko
0638308ef1 Merge pull request #330 from johndoe123/neverhood
NEVERHOOD: Neverhood engine
2013-05-15 09:19:34 -07:00
Willem Jan Palenstijn
1022996309 Merge branch 'master' 2013-05-08 20:47:44 +02:00
johndoe123
060287a4f8 NEVERHOOD: Improve frame-exact seeking for Scene2802
Thanks to clone2727 for his help!
2013-05-08 20:47:38 +02:00
Max Horn
814aa2e8b7 VIDEO: Remove unused CDToonsDecoder::_currentFrame member var 2013-04-18 23:50:20 +02:00
Matthew Hoops
43d264cb2f VIDEO: Fix uninitialized track pointers 2013-04-16 10:40:16 -04:00
Matthew Hoops
1d778360fe VIDEO: Fix potential memory leak when adding a stream file track 2013-04-15 18:35:11 -04:00
Matthew Hoops
ef098e2898 VIDEO: Fix potential memory leak when buffering a QuickTime frame 2013-04-15 18:33:54 -04:00
Sven Hesse
fad5cf7243 VIDEO: Fix a typo (minus vs. plus) in the VMD decoder 2013-04-13 15:22:06 +02:00
Torbjörn Andersson
21ed47ce13 VIDEO: Fix Smacker crash, as per madmoose's suggestion
Apparently, in some movies the Smacker decoder would peek ahead
past the end of the bitstream, even though it didn't necessarily
use all of those bits later. Fix that by first checking how many
bits are still available. (This was originally reported for the
mg1shoot.smk cutscene in the 4 CD version of The Feeble Files.)
2013-02-18 20:12:35 +01:00
Johannes Schickel
59dde54519 Merge pull request #301 from lordhoto/c++11-playground
RFC: Allow use of override and nullptr. Also allow C++11 compilation.
2013-01-26 05:25:14 -08:00
Filippos Karapetis
866961bde9 VIDEO: Hook some more of our ADPCM decoder variants to our AVI video decoder
Information for the AVI audio track format IDs has been taken from libav.
Thanks to clone2727 for his great help on this.
2013-01-26 03:43:15 +02:00
Einar Johan Trøan Sømåen
5d4d65d6d9 JANITORIAL: Fix ){ -> ) { 2013-01-24 20:15:13 +01:00
Johannes Schickel
0e3f8d68c4 VIDEO: Silence C++11 narrowing warnings. 2013-01-09 07:24:37 +01:00
D G Turner
b65b196e56 VIDEO: Add support for missing copyFrame type in FLIC decoder.
Thanks to Tomaz^ for this patch.
2012-12-26 02:41:31 +00:00
Matthew Hoops
ce1268b73d VIDEO: Allow for QuickTime movies to be played backwards
Still doesn't handle videos with multiple edits
2012-12-15 20:43:43 -05:00
Matthew Hoops
9ae56146bb VIDEO: Add API changes to allow videos to be played backwards 2012-12-15 20:41:41 -05:00
clone2727
91317c3630 Merge pull request #293 from clone2727/qtmidi
Add support for QuickTime Music playback
2012-12-13 15:49:40 -08:00
Matthew Hoops
0bcd441405 VIDEO: Fix seeking when playing with a custom rate 2012-12-13 17:46:02 -05:00
Matthew Hoops
81ea69cd33 VIDEO: Fix setRate when _lastTimeChange is less than a frame
Thanks to bgK for noticing
2012-12-09 13:56:06 -05:00
Matthew Hoops
1f233be2e4 VIDEO: Add some documentation to Codec and its derivatives 2012-12-04 21:15:44 -05:00
Matthew Hoops
285e1be135 VIDEO: Improve performance of the Cinepak decoder 2012-12-04 20:19:00 -05:00
Matthew Hoops
3b581a3b68 VIDEO: Rework the way the next video track is selected
Fixes missing the last frame in some decoders
2012-12-02 22:15:11 -05:00
Einar Johan Trøan Sømåen
cf87fcba85 VIDEO: Include surface.h in bink_decoder.h 2012-11-27 01:54:59 +01:00
Matthew Hoops
121faeaa94 VIDEO: Add preliminary API functions for seeking to a frame 2012-11-26 17:44:36 -05:00
Matthew Hoops
db908fcdc4 VIDEO: Add support for playing videos at a modified speed
Currently this only works for positive (forward) playback, but will eventually work for negative (backward).
2012-11-24 01:03:36 -05:00
D G Turner
46027e5303 VIDEO: Fix SVQ1 videos to error out on B Frames. 2012-11-18 21:00:07 +00:00
D G Turner
d2c2c5ec01 VIDEO: Fix compiler warning in SVQ1 codec. 2012-11-18 20:52:47 +00:00
Matthew Hoops
51b2904cc1 VIDEO: Improve a Cinepak heuristic
Brings it inline with the FFmpeg/libav version again
2012-11-14 18:30:54 -05:00
Matthew Hoops
6a1fa88b56 VIDEO: Clarify some VideoDecoder documentation 2012-11-14 13:35:16 -05:00
Einar Johan Trøan Sømåen
880ac5d494 VIDEO: Mark Theora-decoder as used by Wintermute. 2012-10-23 21:48:47 +02:00
Matthew Hoops
64389c0643 VIDEO: Fix edits with scales not divisible by the media scale
QuickTime docs aren't completely clear on this, but from samples it's clear that the value needs to be rounded
2012-10-12 13:37:32 -04:00
Matthew Hoops
075d0b4812 VIDEO: Fix choosing of the correct edit when seeking
Previously it could be off-by-one
2012-10-12 13:36:23 -04:00
Johannes Schickel
89abab97e3 JANITORIAL: Remove trailing whitespaces.
Powered by:
git ls-files "*.cpp" "*.h" "*.m" "*.mm" | xargs sed -i -e 's/[ \t]*$//'
2012-09-26 04:17:55 +02:00
Matthew Hoops
64e1483102 VIDEO: Make sure track pause status is reset upon stop too 2012-09-23 21:04:40 -04:00
Matthew Hoops
48c70d872e VIDEO: Fix pausing audio in videos 2012-09-22 15:03:15 -04:00
Willem Jan Palenstijn
23de059262 VIDEO: Make getCurFrame declaration consistent
The declaration used int32 while the definition used int.
This should fix building on AmigaOS4 (bug #3570577).
2012-09-21 22:35:15 +02:00
clone2727
2e4ee0b2d0 Merge pull request #275 from clone2727/pegasus
Pegasus engine (The Journeyman Project: Pegasus Prime)
2012-09-20 13:17:39 -07:00
Matthew Hoops
173dace75b VIDEO: Fix SVQ1 color on right/bottom borders 2012-09-19 15:58:18 -04:00
Matthew Hoops
8b46b64ad4 VIDEO: Fix getTime() after a stop() call 2012-09-19 00:36:03 -04:00
Matthew Hoops
09269fce8c GRAPHICS: Implement different luminance ranges
Bink and Theora are now much improved
2012-09-18 16:50:01 -04:00
Matthew Hoops
893a2b37ff GRAPHICS: Rework YUV->RGB code a bit 2012-09-17 19:30:46 -04:00
Torbjörn Andersson
dc207979b3 VIDEO: Indent with tab, not spaces. 2012-09-16 09:37:46 +02:00
Matthew Hoops
d5ed8b1901 Merge remote branch 'upstream/master' into pegasus
Conflicts:
	AUTHORS
2012-09-12 20:18:13 -04:00
Matthew Hoops
8808393b3a VIDEO: Do not close/rewind videos after a stop()
It makes more sense to do this more like a hard "pause" and let the caller stop()/rewind() if they want
2012-09-11 17:38:33 -04:00
Matthew Hoops
4a458236f6 COMMON: Make QuickTimeParser::readSampleDesc take the desc size 2012-09-09 13:47:40 -04:00
Einar Johan Trøan Sømåen
d6be917808 VIDEO: Add support for odd-sized Bink-videos 2012-09-07 16:29:00 +02:00
Matthew Hoops
f35e820e9f Merge remote branch 'upstream/master' into pegasus 2012-09-05 11:45:25 -04:00
Matthew Hoops
058b9b9aca VIDEO: Restrict setEndTime()'s affects to videos that are playing 2012-09-05 11:27:01 -04:00
Bertrand Augereau
341c3abad5 VIDEO: Constified a temporary 2012-09-01 18:57:29 +02:00
Matthew Hoops
2f9b1b67b0 ALL: Mark off some things as used by Pegasus 2012-08-31 22:26:02 -04:00
Matthew Hoops
ddffd74094 VIDEO: Improve setEndTime()
endOfVideo() and needsUpdate() are now more accurate
2012-08-31 21:47:52 -04:00
Matthew Hoops
4b05031042 Revert "VIDEO: Rework SVQ1 codebooks so they're endian-safe"
This reverts commit 1ca81ee6ec.

I was wrong about them not being endian-safe before. Don't stone me.

Conflicts:

	video/codecs/svq1.cpp
2012-08-27 13:25:28 -04:00
Matthew Hoops
6f105e6230 VIDEO: Fix "empty" AVI frames 2012-08-27 11:10:05 -04:00
Matthew Hoops
3e2ff0a443 VIDEO: Fix compilation with some compilers 2012-08-26 20:30:32 -04:00
Matthew Hoops
6f9d84665f COMMON: Add MKTAG16 for 16-bit multi-character constants 2012-08-26 12:38:35 -04:00
Matthew Hoops
c7222ed5a4 VIDEO: Remove obsolete FIXME in the FLIC code 2012-08-25 12:30:28 -04:00
Matthew Hoops
dcdb40f79e VIDEO: Adjust start time after calling rewind() in start()
This wasn't an actual bug, but it makes more sense this way
2012-08-23 23:11:09 -04:00
Matthew Hoops
829c836e0b VIDEO: Update the isPlaying() comment 2012-08-23 22:45:48 -04:00
Matthew Hoops
6c155b6b36 VIDEO: Implement rewinding Smacker audio tracks 2012-08-20 17:06:58 -04:00
Matthew Hoops
e24fd2ffe6 VIDEO: Cleanup VideoDecoder a bit
Functions and their comments now line up better
2012-08-16 22:49:22 -04:00
Matthew Hoops
18823198ad VIDEO: Merge AdvancedVideoDecoder into VideoDecoder 2012-08-16 14:00:14 -04:00
Matthew Hoops
7569ec7dc0 VIDEO: Rename setStopTime() to setEndTime()
To better differentiate with stop()
2012-08-16 13:34:28 -04:00
Matthew Hoops
fb35c7f46f VIDEO: Remove setSystemPalette() 2012-08-16 13:30:32 -04:00
Matthew Hoops
9e7f0e4753 VIDEO: Begin removing some of the deprecated functions from VideoDecoder 2012-08-16 12:27:05 -04:00
Matthew Hoops
7294a1cbcf VIDEO: Remove the Coktel video code from using the VideoDecoder API
After discussing with DrMcCoy, we felt this the best way to proceed. A wrapper class that implements AdvancedVideoDecoder is still around for use in SCI.
2012-08-16 12:17:23 -04:00
Matthew Hoops
92432a136b VIDEO: Convert TheoraDecoder to the new AdvancedVideoDecoder API 2012-08-13 16:25:03 -04:00
Matthew Hoops
7831225b28 VIDEO: Move TheoraDecoder to video/ 2012-08-12 08:58:00 -04:00
Matthew Hoops
5db42076b8 VIDEO: Convert FlicDecoder to the new AdvancedVideoDecoder API
The video no longer automatically loops (unused in-tree) and must have rewind() called manually
2012-08-12 08:43:32 -04:00
Matthew Hoops
48c591a233 VIDEO: Don't allow adding external stream files to unopened videos 2012-08-12 08:33:45 -04:00
Matthew Hoops
a458b91e7e VIDEO: Add set/getStopTime functions to AdvancedVideoDecoder
A video can now be stopped at a requested time
2012-08-12 00:09:23 -04:00
Matthew Hoops
220ca52f43 VIDEO: Fix getTime() when a video is not playing 2012-08-07 14:24:32 -04:00
Matthew Hoops
dd10e7191e VIDEO: Move Track's start()/stop() functions to AudioTrack 2012-07-29 12:38:51 -04:00
Matthew Hoops
9cca8ac9f2 VIDEO: Remove now unused Rewindable and Seekable classes 2012-07-27 11:47:49 -04:00
Matthew Hoops
991710d0a1 VIDEO: Adapt QuickTimeDecoder to the AdvancedVideoDecoder API 2012-07-27 11:32:51 -04:00
Matthew Hoops
21d3fa71af VIDEO: Add functions for getting TrackList iterators internally 2012-07-27 11:14:46 -04:00
Matthew Hoops
90b72e31e4 VIDEO: Cleanup AdvancedVideoDecoder 2012-07-27 11:01:42 -04:00
Matthew Hoops
a364ef8f0f VIDEO: Remove Track::getStartTime()
That should be handled internally instead
2012-07-27 11:01:21 -04:00
Matthew Hoops
1f67c9dbbe VIDEO: Reset pause time when seeking/rewinding 2012-07-26 23:45:05 -04:00
Matthew Hoops
df5d6f7d08 VIDEO: Force an update after a seek 2012-07-26 23:42:35 -04:00
Matthew Hoops
84462fa088 VIDEO: Document more of AdvancedVideoDecoder 2012-07-26 23:36:21 -04:00
Matthew Hoops
2eeee33bd8 VIDEO: Move findNextVideoTrack() to protected 2012-07-26 23:24:54 -04:00
Matthew Hoops
af6e98ba01 VIDEO: Ignore finished video tracks in findNextVideoTrack() 2012-07-26 23:20:25 -04:00
Matthew Hoops
57a06e383b VIDEO: Convert Bink to the new AdvancedVideoDecoder API 2012-07-25 11:22:28 -04:00
Matthew Hoops
c0cece8d13 VIDEO: Add functions for default high color PixelFormat
To be used by video that converts from YUV to RGB
2012-07-25 11:19:36 -04:00
Matthew Hoops
714c6ae119 VIDEO: Add internal helper function for checking on video track end status 2012-07-25 00:44:22 -04:00
Matthew Hoops
09f1519d6d VIDEO: Stop and restart tracks when seeking/rewinding 2012-07-25 00:39:21 -04:00
Matthew Hoops
3117e4a8ff VIDEO: Convert DXADecoder to the AdvancedVideoDecoder API 2012-07-24 13:24:01 -04:00
Matthew Hoops
84e0b3a167 VIDEO: Add helper functions to easily add an external audio track 2012-07-24 13:23:45 -04:00
Matthew Hoops
a652f6669e VIDEO: Rewrite SmackerDecoder to use the new API 2012-07-23 21:04:51 -04:00
Matthew Hoops
3a780a63db VIDEO: Set _startTime when rewinding and seeking 2012-07-23 21:03:49 -04:00
Matthew Hoops
0f0c6f9354 VIDEO: Rewrite the AVI code to use AdvancedVideoDecoder
In addition to using the new API, it should theoretically support multiple audio and video tracks now but that has not been tested.
2012-07-22 14:13:20 -04:00
Matthew Hoops
7654b20362 VIDEO: Merge the three Fixed* VideoTrack classes
Avoids diamond inheritance, which makes it impossible to downcast without rtti
2012-07-22 14:11:11 -04:00
Matthew Hoops
29541dc5f4 VIDEO: Hold tracks in an Array instead of a List
Decoders such as AVI will need to access them by index
2012-07-22 12:17:54 -04:00
Matthew Hoops
9bf17934d3 VIDEO: Take audio start time into account when syncing to audio 2012-07-22 00:58:38 -04:00
Matthew Hoops
4c9c22b374 VIDEO: Make seek/rewind functions in AdvancedVideoDecoder virtual
This is to allow for seeking in videos where not everything is indexed
2012-07-22 00:39:10 -04:00
Matthew Hoops
067e02e90b VIDEO: Add StreamFileAudioTrack wrapper 2012-07-21 17:52:16 -04:00
Matthew Hoops
144b9ce918 VIDEO: Don't try to sync video off of finished audio tracks 2012-07-21 17:38:24 -04:00
Matthew Hoops
24c97b8913 VIDEO: Move PSXStreamDecoder to the new VideoDecoder API 2012-07-21 17:31:00 -04:00
Matthew Hoops
5cdb0f71a4 VIDEO: Fix AudioTrack::endOfTrack() 2012-07-21 17:30:43 -04:00
Matthew Hoops
fc1163ac28 VIDEO: Allow for disabling of automatic audio sync in AdvancedVideoDecoder 2012-07-21 17:30:06 -04:00
Matthew Hoops
1d565a2661 VIDEO: Fix volume/balance settings in AdvancedVideoDecoder 2012-07-21 17:11:09 -04:00
Matthew Hoops
c3cc3620c0 VIDEO: When adding tracks, keep them in sync with the main video status 2012-07-21 14:50:10 -04:00
Matthew Hoops
10341d2b57 VIDEO: Add getDuration() and getStartTime() functions to Track
The AdvancedVideoDecoder::getDuration() function now attempts to calculate duration based on the longest track.
2012-07-21 14:39:03 -04:00
Matthew Hoops
fb1edcd4fe VIDEO: Add getWidth()/getHeight()/getPixelFormat() functions to VideoTrack
The default implementations of those functions in AdvancedVideoDecoder now call into them.
2012-07-21 12:40:16 -04:00
Matthew Hoops
818c16bdd0 VIDEO: Add first draft of the new VideoDecoder API
It is currently named "AdvancedVideoDecoder" until all current VideoDecoders are converted to the new API.
2012-07-20 20:51:42 -04:00
Matthew Hoops
2a1193a6b1 VIDEO: Make rpza decode to its own pixel format 2012-06-12 09:34:24 -04:00
Matthew Hoops
e16ad39e53 VIDEO: Cleanup QTRLE
In particular, the colors are not converted to the screen format upon decoding. The code should also now work with 32bpp screen formats.
2012-06-11 23:16:30 -04:00
Sven Hesse
8c3d2fc741 GOB: Add a way to reopen currently opened IMD/VMD videos
This is a workaround for how Lost in Time behaves in combination
with changes I made to the DataIO code for running Urban Runner
on low-memory devices.

Urban Runner's intro are far to big to have them copied into
memory for these devices, so I made the DataIO code return a
SafeSeekableSubReadStream into the opened archive stream instead.
Unfortunately, Lost in Time might not close a video file when it
closes the data file which it was originally in, especially when
loading a saved game. Since the video player needs to be able to
gaplessly continue a video and there does not, by itself, close
the video if not requested by the scripts, this leads to reading
out of an already closed stream in certain cases.

So, to worka round this issues, the video player tries to reopen
each currently opened video after a data archive was closed, to
make sure that that video is still available. If not, the video
is closed.
2012-06-07 00:29:46 +02:00
Matthew Hoops
10f7e805c2 VIDEO: Add volume/balance control to VideoDecoder 2012-05-28 14:00:16 -04:00
Matthew Hoops
0aacf4c4c0 VIDEO: Make seekToTime() take a const Timestamp reference 2012-05-12 22:05:32 -04:00
Matthew Hoops
9e330174c8 VIDEO: Change getElapsedTime() into getTime()
This name change accompanies a slight meaning change; now it means the current time position from the beginning of the video and not from starting the video.
2012-05-12 21:28:13 -04:00
Matthew Hoops
0f6059580e VIDEO: Update seekToTime() comments to require subframe accuracy now 2012-05-12 21:16:03 -04:00
Matthew Hoops
19d634389d VIDEO: Create the QuickTime scaled surface after reading in a frame
Fixes issues where the codec hasn't been initialized
2012-04-15 16:00:01 -04:00
Matthew Hoops
473a09786d GRAPHICS: Make YUV410 conversion code use bilinear interpolation
SVQ1 no longer looks blocky and now looks a lot closer to what QuickTime outputs
2012-04-14 17:06:31 -04:00
Ori Avtalion
870ab35f5b VIDEO: Change 'class' to 'struct' to match declaration 2012-04-14 15:32:26 +03:00
Sven Hesse
7eef26268c VIDEO: Fix SMK 16bit audio on BE systems 2012-04-13 04:29:26 +02:00
Matthew Hoops
744528cb18 VIDEO: Clean up the SVQ1 code 2012-04-08 03:29:56 +01:00
D G Turner
7b6c4bb8e1 VIDEO: Minor update to SVQ1 decoder, reversing sense of return flags.
This changes the decoder function return flag meaning from "result
error" to "resultValid". This makes it more consistent with normal
C standard of returning 0 on success.
2012-04-08 03:29:50 +01:00
Matthew Hoops
8bf8a08048 VIDEO: Fix SVQ1 plane pitch
All the Myst intro videos now decode correctly
2012-04-08 03:29:48 +01:00
D G Turner
95d7c012d6 VIDEO: Minor updates to SVQ1 decoder, mainly return flags to bool.
Since the returned int values from the decoding functions are just
0 for good or -1 for error, have changed these into an errorFlag
bool. This improves readability and cleans up some of the error
checking code. In addition, have fixed some oversights in formatting
spacing for readability.
2012-04-08 03:29:45 +01:00
D G Turner
c917db0754 VIDEO: Change SVQ1 decoder to skip rather than decode embedded string.
This string field is not used and this avoids having to include a
xor table.
2012-04-08 03:29:42 +01:00
Matthew Hoops
b0646529d1 VIDEO: Fix segfaults on different sized SVQ1 frames 2012-04-08 03:29:40 +01:00
Matthew Hoops
7e05107256 VIDEO: Fix endian issue with SVQ1 2012-04-08 03:29:37 +01:00
D G Turner
2043403207 VIDEO: Add Missing Half-Pel Motion Compensation Code to SVQ1 Codec.
Graphics output is now _almost_ correct.
2012-04-08 03:29:35 +01:00
Matthew Hoops
1ca81ee6ec VIDEO: Rework SVQ1 codebooks so they're endian-safe 2012-04-08 03:29:32 +01:00
D G Turner
7109e26d04 VIDEO: Workaround for out of buffer accesses in SVQ1 codec.
This is a temporary workaround during development.
Keyframe (I) decoding is now working correctly, but Deltaframe (P) is
still giving corrupted output...
2012-04-08 03:29:29 +01:00
D G Turner
d15ff5a03e VIDEO: Correct delete type in SVQ1 decoder. 2012-04-08 03:29:27 +01:00
D G Turner
97746e2281 VIDEO: Correct SVQ1 Header Decoding and Last Frame Buffering.
Header was incorrectly documnented in reference documents.
Corrected with reference to FFMPEG.
Also, added missing buffering of last frame for P frame decoding.
2012-04-08 03:29:24 +01:00
Matthew Hoops
c9bbe5793c VIDEO: Rewrite the SVQ1 VLC code to use Common::Huffman 2012-04-08 03:29:22 +01:00
D G Turner
32ff1f8478 VIDEO: SVQ1 - Add table_size default setting for VLC Table setup. 2012-04-08 03:29:19 +01:00
D G Turner
a3fb8867d0 VIDEO: Fix remaining missing code (getVlc2()) in SVQ1 Codec. 2012-04-08 03:29:17 +01:00
D G Turner
b99565d701 VIDEO: Add remaining SVQ1 code derived from FFMPEG.
This still requires some work to make it usuable, mainly changing the
Variable Length Code reader to work with Common::BitStream input.
2012-04-08 03:29:14 +01:00
D G Turner
9330a7c54d VIDEO: Corrected minor mistake in SVQ1 decoder. 2012-04-08 03:29:11 +01:00
D G Turner
69e76182cb VIDEO: Update SVQ1 WIP with minor corrections.
This mainly fixes the Bitstream to Big Endian, MSB to LSB.
2012-04-08 03:29:09 +01:00
D G Turner
da35b9f5f6 VIDEO: Migrate SVQ1 codec WIP to Common::BitStream. 2012-04-08 03:29:06 +01:00
D G Turner
e16270605a VIDEO: Hookup SVQ1 codec to build system and QT Decoder. 2012-04-08 03:29:04 +01:00
D G Turner
c9c16cd1ee VIDEO: Add initial framework and data tables for Sorenson SVQ1 decoder.
This is based on the SVQ1 decoder from FFMPEG.
2012-04-08 03:29:01 +01:00
Matthew Hoops
765a870445 GRAPHICS: Convert JPEG to the ImageDecoder API 2012-03-20 01:06:48 +01:00
Matthew Hoops
be8c557645 AUDIO: Add support for multiple QuickTime audio tracks
This also cleans up the QuickTime audio code to make it a bit more manageable too
2012-03-19 12:04:46 -04:00
Willem Jan Palenstijn
4637d55337 Merge pull request #171 from clone2727/psx-stream-2
This is a manual merge based on clone2727's merge of his branch
with the sword1 subtitle changes on master.
2012-02-23 22:49:59 +01:00
Matthew Hoops
8fea496890 VIDEO: Clarify which PSX streams we can play 2012-02-23 22:48:18 +01:00
Matthew Hoops
66cd8bdd68 VIDEO: Make PSX streams calculate frame timing solely from CD speed
BS2 videos now play at the proper rate and BS1 videos have improved a/v sync.
2012-02-23 22:48:18 +01:00
Matthew Hoops
ee35d32a36 VIDEO: Implement PSX stream v3 frame support 2012-02-23 22:48:18 +01:00
Matthew Hoops
307908662a VIDEO: Add a PlayStation stream decoder
To be used for sword1/sword2 PSX video playback
2012-02-23 22:48:16 +01:00
Tarek Soliman
a4798602d7 JANITORIAL: Fix missing whitespace in pointer cast
find -name '*.h' -or -name '*.cpp' | xargs sed -r -i 's@\(([A-Za-z0-9]+)\*\)@(\1 *)@g'

This seems to have caught some params as well which is not undesirable IMO.
It also caught some strings containing this which is undesirable so I
excluded them manually. (engines/sci/engine/kernel_tables.h)
2012-02-15 10:07:10 -06:00
Willem Jan Palenstijn
342fd8cc28 VIDEO: Remove unused variable 2012-02-11 11:36:26 +01:00
Bastien Bouclet
9d85382c15 VIDEO: Fix the BINK decoder to play file whose width is 24px
See https://ffmpeg.org/trac/ffmpeg/ticket/962
2012-02-09 16:10:47 +01:00
Bastien Bouclet
1432011fdc VIDEO: Small refactoring of the Bink Decoder
This allows subclassing the Bink decoder to add seeking support
2012-01-09 08:52:08 +01:00
Torbjörn Andersson
4ac19d8870 VIDEO: Fix cppcheck warnings about possible NULL pointer use. 2011-12-28 00:15:50 +01:00
Matthew Hoops
b367772b5f VIDEO: Add support for QuickTime video track edit lists 2011-12-12 12:28:48 -05:00
Matthew Hoops
35a0fb089a VIDEO: Fix QuickTime audio track ends
Fixes videos where the audio track length is smaller than the video track length.
2011-12-12 12:28:48 -05:00
Matthew Hoops
6bbff58314 VIDEO: Rewrite VMD audio streaming
Audio is now decoded in AudioStream classes instead of being decoded ahead of time and then queued.
2011-11-27 15:52:05 +01:00
Christoph Mallon
e578cb8976 ALL: Remove unnecessary forward declarations. 2011-11-21 15:59:19 +01:00
Eugene Sandulenko
f5e4d63a77 Merge pull request #80 from DrMcCoy/newbitstream
COMMON: Rewrite Common::BitStream as a template
2011-10-20 09:27:26 -07:00
Matthew Hoops
842b471e45 VIDEO: Ensure the sample to chunk index remains valid 2011-10-07 14:18:08 -04:00
Matthew Hoops
6a54c7953a VIDEO: Fix getNextFramePacket() to actually be efficient 2011-10-07 11:34:30 -04:00
Matthew Hoops
a064b7bc0b VIDEO: Fix Cinepak variant detection 2011-10-07 11:34:03 -04:00
Matthew Hoops
5fab8cb521 VIDEO: Ensure audio paused status remains after a QuickTime seek 2011-10-07 11:33:24 -04:00
Einar Johan T. Sømåen
9468e6d24e VIDEO: Add missing include to bink_decoder.h 2011-10-02 00:50:43 +02:00
Bastien Bouclet
cf54fc98d5 VIDEO: Fix Bink bundle count lenghts to be computed like ffmpeg does.
Fixes several movies in Myst 3.
2011-09-18 09:38:30 +02:00
Sven Hesse
c9a59235b2 VIDEO: Use the BitStream implementation in Common
Removing/Replacing the custom implementation
2011-08-28 13:55:47 +02:00
Sven Hesse
f1724f1637 COMMON: Rewrite BitStream as a template
This rewrites BitStream as a template, allowing for more different
memory layouts of the actual bit data.
2011-08-27 23:37:07 +02:00
Alyssa Milburn
c39245b771 VIDEO: Remove incorrect TO_LE_16 calls from Bink audio code. 2011-08-06 10:44:16 +02:00
Sven Hesse
62862ecb23 VIDEO: Don't depend on IEEE floats for Bink audio 2011-07-24 23:56:56 +02:00
Littleboy
da60ff3ded JANITORIAL: Fix MSVC warnings
- Conversion from double to float
 - Unary minus operator applied to unsigned type
 - ARRAYSIZE redefinition
2011-07-19 14:12:07 -04:00
Matthew Hoops
d38fa57d1b VIDEO: Fix typo with last commit 2011-07-19 10:15:51 -04:00
Matthew Hoops
7484ba037c VIDEO: Better handle failing loading Smacker videos 2011-07-19 09:41:31 -04:00
Matthew Hoops
724d7ef101 VIDEO: Use C++ versions of exp/ldexp
Should fix compilation on Mac PPC, and MinGW32 on buildbot
2011-07-19 07:35:40 -04:00
Filippos Karapetis
e1ca235c44 BINK decoder: Fixed compilation with MSVC 2011-07-19 10:50:48 +03:00
D G Turner
54f25aa843 COMMON: Renamed Integer Log2 function from log2 to intLog2.
This avoids naming collisions with system libraries on some platforms
i.e. DS, DC where the log2 is realised by macro.
2011-07-19 02:29:13 +01:00
clone2727
6370984b22 Merge pull request #50 from clone2727/bink
Add support for Bink video to SCUMM HE
2011-07-18 16:04:39 -07:00
Matthew Hoops
a50abde1b1 BUILD: Allow for disabling Bink support 2011-07-13 12:08:26 -04:00
Matthew Hoops
f0cc1eb58b VIDEO: Add more to the BinkDecoder class comment 2011-07-02 21:11:21 -04:00
Matthew Hoops
ccfb7cb86f VIDEO: Remember to call reset() from BinkDecoder::close() 2011-07-02 19:53:15 -04:00
Matthew Hoops
7c28d22ca0 VIDEO: Fix mismatched new[]/free 2011-07-02 19:37:46 -04:00
Matthew Hoops
82ed30817d VIDEO: Cleanup Bink a bit
- Fix playing videos back-to-back
- Silence a cast warning
2011-07-02 19:23:49 -04:00
Johannes Schickel
7e4224e52a COMMON: Fix compilation when USE_HASHMAP_MEMORY_POOL is not defined. 2011-07-03 00:16:07 +02:00
Matthew Hoops
4c065363a0 VIDEO: Fix Bink RDFT stereo
Thanks to DrMcCoy
2011-07-02 17:32:36 -04:00
Matthew Hoops
fffe7a9cc0 VIDEO: Remove Bink header check from Smacker 2011-07-02 16:37:24 -04:00
Matthew Hoops
4ace7f626b VIDEO: Add Bink video decoder
Based on eos' code which is in turn based on FFmpeg's code
2011-07-02 16:36:37 -04:00
Max Horn
88913c0139 ALL: Remove trailing whitespaces
This tries to make our code a bit more compliant with our code formatting
conventions. For future use, this is the command I used:
  git ls-files "*.cpp" "*.h" | xargs sed -i -e 's/[ \t]*$//'
2011-06-20 00:59:48 +02:00
Matthew Hoops
547fd1bdca COMMON: Cleanup QuickTime variable and struct naming 2011-06-03 00:58:29 -04:00
Matthew Hoops
2e06681698 COMMON: Begin objectifying QuickTimeParser::SampleDesc further
This is preparation for multiple video and audio tracks
2011-06-02 23:44:40 -04:00
Max Horn
9db33ea544 ALL: Removed last traces of the MPEG2 code 2011-06-01 23:17:43 +02:00
Matthew Hoops
aa49b38c5a Merge remote branch 'upstream/master' into t7g-ios
Conflicts:
	engines/groovie/script.cpp
2011-05-31 14:16:29 -04:00
Max Horn
717a7accf5 BUILD: Always enable indeo3 codec 2011-05-25 13:24:37 +02:00
strangerke
69b1485a22 GIT: Clean up: Suppress SVN tags, now useless 2011-05-12 01:16:22 +02:00
Matthew Hoops
a1d41da096 Merge remote branch 'upstream/master' into t7g-ios
Conflicts:
	audio/decoders/qdm2.h
	common/util.cpp
	engines/groovie/music.cpp
	engines/groovie/resource.h
	video/qt_decoder.cpp
	video/qt_decoder.h
2011-05-11 00:30:28 -04:00
Max Horn
89f40bc02a VIDEO: Cleanup mixed array / type declaration 2011-05-03 13:25:01 +02:00
Ori Avtalion
a896125ee4 VIDEO: Fix flic decoder not including rect.h which is used inline 2011-05-01 18:48:42 +03:00
Johannes Schickel
71bdb86e02 Merge pull request #16 "Add a PixelFormat to Graphics::Surface.".
For further discussion check here:
https://github.com/scummvm/scummvm/pull/16

Conflicts:
	graphics/png.cpp
2011-05-01 16:54:45 +02:00
Ori Avtalion
c46e4a47f2 VIDEO: Fix compilation on SCUMM_BIG_ENDIAN backends 2011-04-28 20:00:19 +03:00
Ori Avtalion
9414d7a6e2 JANITORIAL: Reduce header dependencies in shared code
Some backends may break as I only compiled SDL
2011-04-28 15:08:58 +03:00
Ori Avtalion
845db59e08 VIDEO: Fix incorrect, renamed, guard for TrueMotion1 support 2011-04-28 14:05:45 +03:00
Ori Avtalion
cd6ee0589d JANITORIAL: Format forward declarations to follow convention 2011-04-28 12:20:34 +03:00
Johannes Schickel
79ed190523 VIDEO: Set up the pixel format for the TrueMotion1 codec properly. 2011-04-17 22:09:55 +02:00
Johannes Schickel
da734a4af0 ALL/GRAPHICS: Remove Surface::bytesPerPixel. 2011-04-17 21:27:34 +02:00
Johannes Schickel
f90bbf9cfa VIDEO: Prefer Surface::format over Surface::bytesPerPixel. 2011-04-17 20:55:49 +02:00
Johannes Schickel
5e279996eb VIDEO: Prefer Surface::create taking a PixelFormat over the one taking a byte depth.
Certain codecs seem to use a Surface with Bpp 2, but do not have any proper
format description. Whoever is maintaining these should check this commit and
fix the format properly.
2011-04-17 16:35:12 +02:00
Matthew Hoops
3f124ae6bb VIDEO: Fix QuickTime videos without a video stream
Just in case anyone uses just that instead of Audio::makeQuickTimeStream()...
2011-04-14 10:31:20 -04:00
Matthew Hoops
76105b29b7 AUDIO: Split the QuickTimeAudioDecoder into a new header file
(Mirroring the new adpcm_intern.h file)
2011-04-14 10:25:02 -04:00
Max Horn
84184aabc0 ALL: colour -> color 2011-04-14 14:12:35 +02:00
Matthew Hoops
6d153f311c Merge remote branch 'upstream/master' into t7g-ios
Conflicts:
	video/qt_decoder.cpp
2011-04-13 16:04:29 -04:00
Max Horn
8f70e089ac VIDEO: Use shared ADPCM data tables in VMDDecoder 2011-04-13 12:48:58 +02:00
Max Horn
0ce2ca4e00 COMMON: Replace MKID_BE by MKTAG
MKID_BE relied on unspecified behavior of the C++ compiler,
and as such was always a bit unsafe. The new MKTAG macro
is slightly less elegant, but does no longer depend on the
behavior of the compiler.
Inspired by FFmpeg, which has an almost identical macro.
2011-04-12 16:53:15 +02:00
Matthew Hoops
faee277978 COMMON: Add a DisposeAfterUse flag to QuickTimeParser 2011-04-08 17:04:29 -04:00
Matthew Hoops
88ebf13077 AUDIO: Allow for seeking in a QuickTimeAudioStream 2011-04-08 10:54:13 -04:00
Matthew Hoops
8cf73e3fb4 AUDIO: Split QuickTime audio into a new class
Standalone QuickTime files can now be played as an AudioStream
2011-04-07 19:40:07 -04:00
Matthew Hoops
d718755d73 VIDEO: Cleanup
The VideoDecoder interface to the QuickTimeParser uses almost entirely ScummVM code now, with only trace amounts remaining from FFmpeg.
2011-04-07 00:47:29 -04:00
Matthew Hoops
db71efd94f VIDEO: Split the QuickTime parser from the QuickTime VideoDecoder 2011-04-07 00:21:48 -04:00
Matthew Hoops
b71d2038ae VIDEO: Begin splitting video-specific QuickTime sample description code 2011-04-06 23:06:44 -04:00
Matthew Hoops
82a417b40c VIDEO: Fix broken for statement 2011-04-06 22:21:49 -04:00
Matthew Hoops
d7dfbd4b78 VIDEO: Allow MPEG-4 containers to be parsed 2011-04-06 22:15:36 -04:00
dhewg
d83a83ef50 JANITORIAL: Remove/comment unused vars
Found by GCC 4.6's -Wunused-but-set-variable
2011-03-29 21:57:56 +02:00
Sven Hesse
97966c36e1 VIDEO: Add a workaround for the Inca 2 wisdom gate video
When decompressing directly onto the output surface fails (because
it's too small), retry decompressing into the video buffer first,
which then gets blitted onto the output surface.
2011-03-29 12:47:20 +02:00
Sven Hesse
8291732c94 VIDEO: Fix deLZ77() bound check
The Inca 2 video where Atahualpa walks through the gate after
solving the wisdom challenge now only warns (and graphically
glitches) instead of segfaulting.
2011-03-29 12:39:51 +02:00
Matthew Hoops
94c27e4657 VIDEO: Add a getDuration() function to SeekableVideoDecoder
This function returns the total duration of the video
2011-03-21 18:27:10 -04:00
md5
19d3972f16 VIDEO: Changed several places that use PI to use M_PI instead 2011-03-19 02:29:22 +02:00
Johannes Schickel
a02454644a Merge branch 'master' into osystem-palette
Conflicts:
	backends/platform/wii/osystem_gfx.cpp
2011-02-15 23:42:50 +01:00
Johannes Schickel
3b9da7f03b VIDEO: Adapt VideoDecoder::setSystemPalette to setPalette RGBA->RGB change. 2011-02-15 22:16:59 +01:00
Matthew Hoops
ea67956768 VIDEO: Add some stubs for QuickTime edit list work
The edit lists are actually read in now. Minor cleanup of streams as well.
2011-02-15 11:01:43 -05:00
Matthew Hoops
191d216785 VIDEO: Add another AVI stream type used by Indeo3
svn-id: r55886
2011-02-11 21:46:28 +00:00
Matthew Hoops
0544977daa VIDEO: Fix QDM2 audio
A regression from r55474

svn-id: r55882
2011-02-11 15:02:15 +00:00
Matthew Hoops
61c33feaba VIDEO: Fix QuickTime audio seeking
svn-id: r55877
2011-02-11 04:23:38 +00:00
Sylvain Dupont
247e882711 VIDEO: Added some skipping when bad data is found in Indeo3
Some Urban Runner videos are badly encoded and contain
corrupted data. When the decoder realizes that there is 
some bad data, it skips the rest of the frame.
The original Indeo3 DLL decoder does the same.

svn-id: r55876
2011-02-10 21:41:59 +00:00