aboutsummaryrefslogtreecommitdiff
path: root/video
AgeCommit message (Collapse)Author
2019-04-13COMMON: Use a prefix table to speed up the Huffman decoderBastien Bouclet
Symbols for codes shorter than the prefix table index width are stored in the table. All the entries in the table with an index starting with the code are set to the symbol value. That way, when decoding it is possible to get the number of bits corresponding to the table width from the bitstream and directly find the symbol value. Longer code still need to be searched for in the codes list.
2019-04-01VIDEO: Fix Bink clearing color commentBastien Bouclet
YUV 000 is a green, not black. Thanks DrMcCoy for noticing and fixing the issue.
2019-04-01VIDEO: Fix an integer overflow when dequantizing the DCT coeffsBastien Bouclet
See https://github.com/FFmpeg/FFmpeg/commit/2968bedf129558024ea87a1aabc4aa2d3a5bcb6e
2019-02-10ZVISION: Boost volume for MPEG cutscenesTorbjörn Andersson
The high-resolution videos play back at much lower volume than the original ones. This adds hard-coded values for how much to amplify each cutscene. It's all done by ear, and it does introduce some clipping, but I think it should be acceptable. Of course, it could also be a problem with the audio decoder, so this may be the wrong approach entirely.
2019-02-02VIDEO: Keep track of the duration of ignored editsBastien Bouclet
Fixes inconsistent videos playing in Caldoria in the DVD version of JMP Pegasus Prime.
2018-11-04VIDEO: Add buffering demuxer to MPEG-PS decoderTorbjörn Andersson
In all my attempts to get the audio and video to sync up in the ZGI videos, there have always been 9-10 frames of video before the audio even starts, even though the audio is timestamped to start before. This attempts to fix that by prioritizing sending audio packets to the decoder in a timely fashion. I do not know if this is the correct way of doing this, and there are still some things that need to be fixed. But pragmatically, it does procude significantly better sync, so...
2018-11-04VIDEO: Use all video PTS'sTorbjörn Andersson
Sometimes (only at the very start of a movie?) there will be a video packet that has a PTS but no frame to display. Save that PTS and use it for the next frame. This doesn't actually improve anything, as far as I can tell, but feels right.
2018-11-04VIDEO: Removed _psmESTypeTorbjörn Andersson
We weren't doing anything with it anyway. And I'm not sure it's even available in the ZGI videos.
2018-11-04VIDEO: Moved MPEGStream creation out of readNextPacket()Torbjörn Andersson
I think it makes things easier to read, and I have some ideas that I want to try which should be easier this way...
2018-11-04VIDEO: Make the video pts sync easier to understandTorbjörn Andersson
2018-11-04VIDEO: Synchronize video to pts timestampsTorbjörn Andersson
This is another attempts at improving the audio/video sync in the MPEG-PS decoder. Unfortunately, the audio probably also needs to be synced to its pts timestamps...
2018-11-04VIDEO: Use the standalone AC-3 decoder in the MPEG-PS codeTorbjörn Andersson
This code comes from clone2727's now defunct (?) ac3 branch, with some minor compile fixes. This represents the latest version of the stalled AC-3 decoder work for Zork: Grand Inquisitor. Note, however, that I have not yet asked for clone2727's permission to use this. I'm just experimenting.
2018-11-04VIDEO: Some minor cleanups to the AC-3 decoderTorbjörn Andersson
2018-11-04VIDEO: Skip DVD code. The sound plays, but audio/video sync is offTorbjörn Andersson
Like most things that make this branch actually work, this comes from clone2727.
2018-11-04VIDEO: After figuring out sample rate, rewind the AC-3 streamTorbjörn Andersson
2018-11-04VIDEO: Committed fixes from clone2727Torbjörn Andersson
This collects the whole frame before trying to decode it. It's still now working right, but it's way better than it was before.
2018-11-04VIDEO: Use liba52 to decode audio. This is still laughably brokenTorbjörn Andersson
At the moment, this produces nothing but misery in the form of Valgrind warnings and horrible noise.
2018-08-18VIDEO: More fixes when building with Theora and TremorCameron Cawley
2018-08-03VIDEO: Fix Theora playback when building with TremorCameron Cawley
2018-07-21VIDEO: QT: Make sure all the edits are in the media boundsBastien Bouclet
In the Spanish version of Riven, the last edit of the video ogk.mov ends one frame after the end of the media causing the playback to fail without this check. Fixes Trac#10633.
2018-07-20VIDEO: Warn instead of error when unhandled TXTS stream found in AVIEric Fry
2018-06-29VIDEO: fix seeking to first/second frame if it exceeds uint16Andrei Prykhodko
2018-06-29VIDEO: Fix seeking the the last frame of QT videos while playing backwardsBastien Bouclet
Fixes Trac#10590.
2018-06-15VIDEO: fix rewinding of FLIC fileswhiterandrek
2018-05-17VIDEO: Add PRINCE to list of engines using the FLIC decoderAdrian Frühwirth
2018-05-17VIDEO: FLIC: Fix decoding of BYTE_RUN/FLI_BRUN chunkswhiterandrek
Our decoder currently only supports the standard FLC format which does not rely on the stored packet count (which is part of the FLI format and limited to 255 packets per line). Instead, the image width should be used as criterion when decoding a frame which allows for more than 255 packets per line. See also https://www.compuphase.com/flic.htm
2018-04-19JANITORIAL: Fix whitespaceAdrian Frühwirth
2017-11-02VIDEO: Express VideoDecoder::endOfVideo using easier to understand logicBastien Bouclet
2017-10-08VIDEO: BINK: Fix plane data clobbering caused by incorrect pitch valueBastien Bouclet
When decoding blocks, the YUV planes' pitches were computed using the target video surface size instead of the block based size, resulting in decoded plane data being overwritten for some video sizes. Affected videos are LEOS-11102.bik and LEOS-11152.bik from Myst III.
2017-09-21VIDEO: Change QT edit list to a Common::ArrayBastien Bouclet
And fix an out of bounds acces when seeking to the end of a video. Skipping samples is needed even when seeking through silent edits because a silent stream is queued for those. Fixes #10219.
2017-09-11JANITORIAL: Silence GCC 7 warningsTorbjörn Andersson
These fall throughs have to be deliberate, or they wouldn't have to check if mode equals 2 in the mode == 2 cases.
2017-09-04VIDEO: Fix reverse playback right to the very start of the videoPaul Gilbert
2017-09-03VIDEO: Simplify AVIDecoder reverse playback special handlingPaul Gilbert
2017-09-03VIDEO: Fix reverse playback in AVIDecoderPaul Gilbert
2017-08-24VIDEO: Use new BitStreamMemory class for PSXStreamDecoderWillem Jan Palenstijn
2017-08-24VIDEO: Use new BitStreamMemory class for SmackerDecoderWillem Jan Palenstijn
2017-08-24COMMON: Remove BitStream base class to allow inlining callsWillem Jan Palenstijn
All users of BitStream were in fact using a specific, hardcoded variant, so we can hardcode that variant, removing the need for virtual calls, and enabling inlining.
2017-08-20VIDEO: Support old-style stereo in VMDsColin Snover
This format is used by the stereo audio VMDs in Lighthouse.
2017-07-27VIDEO: Allow setting the mixer sound type used to play audio tracksBastien Bouclet
2017-07-22VIDEO: Fix AVIDecoder skipping alternate frames in reverse playbackPaul Gilbert
2017-06-30VIDEO: Refactor AVIDecoder for better handling of transparency trackPaul Gilbert
A lot of the standard VideoDecoder methods were still treating the transparency track as part of the video, so methods like getFrameCount would return double the amount it should be. This refactoring properly separates the transparency track into a separate field entirely.
2017-06-30VIDEO: Add method to VideoDecoder to erase a trackPaul Gilbert
2017-06-25VIDEO: Fix transparency track seeking in AVIDecoderPaul Gilbert
2017-06-17VIDEO: Wrap out-of-range VMD audio samples instead of clippingColin Snover
The 16-bit DPCM decompressors in SSCI and Urban Runner use a 16-bit register to store sample data, without any special handling of overflow. As such, out-of-range samples simply wrap around, rather than getting clipped. It is not totally clear if the wrapping behaviour was intentionally exploited to handle extreme transients, but in any case, videos like GK2 5280.VMD that generate samples outside the signed 16-bit range cause a loud pop when using clipping, but play back correctly when wrapping.
2017-04-29VIDEO: Unexpose audio sync API in AdvancedVMDDecoderColin Snover
This change was inadvertently added in commit 44dd029cb17160316b2015321a0a53f8854b6dd3 but is not actually used.
2017-01-11IMAGE: Return correct pixel format for Indeo3Colin Snover
This gives Indeo3 the same behavior as other codecs when encapsulated in a container that provides bit depth information (e.g. AVI). Closes #888.
2017-01-10VIDEO: Fix Two Further Signed vs. Unsigned Compiler Warnings.D G Turner
2016-12-29VIDEO: Further work on 2-track AVI videosPaul Gilbert
It turns out that at least one video in Starship Titanic, for the Lift Indicator, has only a single transparency frame in track 2. The added code, therefore, when it doesn't find an index entry for the desired frame number, works backwards until it finds a valid frame (likely frame 0), and then scans forward. If it hits the end of the video, then it simply uses whatever last frame it last decoded.
2016-12-29VIDEO: Add support for AVI 2-track videos with missing track 2 indexesPaul Gilbert
2016-12-05VIDEO: Add reverse playback support to AviDecoderPaul Gilbert