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