Commit Graph
68 Commits
Author SHA1 Message Date
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 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 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
Matthew Hoops acec700c11 IMAGE: Share the same pool of codecs between PICT and QuickTime 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
Johannes Schickel 8f3a923686 VIDEO: Make GPL headers consistent in themselves. 2014-02-18 02:39:39 +01:00
Matthew Hoops b23f764028 VIDEO: Rename the Motion JPEG decoder to JPEG to better reflect its purpose
This JPEG is separate from the modified JPEG format used in MJPEG
2014-01-17 19:17:29 -05:00
Matthew Hoops ef098e2898 VIDEO: Fix potential memory leak when buffering a QuickTime frame 2013-04-15 18:33:54 -04: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
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 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
Matthew Hoops 4a458236f6 COMMON: Make QuickTimeParser::readSampleDesc take the desc size 2012-09-09 13:47:40 -04:00
Bertrand Augereau 341c3abad5 VIDEO: Constified a temporary 2012-09-01 18:57:29 +02:00
Matthew Hoops 18823198ad VIDEO: Merge AdvancedVideoDecoder into VideoDecoder 2012-08-16 14:00:14 -04:00
Matthew Hoops 991710d0a1 VIDEO: Adapt QuickTimeDecoder to the AdvancedVideoDecoder API 2012-07-27 11:32:51 -04: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 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 HoopsandD G Turner 744528cb18 VIDEO: Clean up the SVQ1 code 2012-04-08 03:29:56 +01:00
D G Turner e16270605a VIDEO: Hookup SVQ1 codec to build system and QT Decoder. 2012-04-08 03:29:04 +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 342fd8cc28 VIDEO: Remove unused variable 2012-02-11 11:36:26 +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 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 5fab8cb521 VIDEO: Ensure audio paused status remains after a QuickTime seek 2011-10-07 11:33:24 -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
Matthew Hoops aa49b38c5a Merge remote branch 'upstream/master' into t7g-ios
Conflicts:
	engines/groovie/script.cpp
2011-05-31 14:16:29 -04: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
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 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
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 6d153f311c Merge remote branch 'upstream/master' into t7g-ios
Conflicts:
	video/qt_decoder.cpp
2011-04-13 16:04:29 -04: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