remove threaded textures for now at least; makes RageTextureLock
much harder, causes a lot of nondeterministically-timed competing
CPU use, and we can probably optimize more easily this way
- Add support for doing YUV colorspace conversion in hardware,
using a fragment shader. This speeds up high-resolution movies
substantially, and provides 32-bit color depth with the data
cost of 16-bit textures.
- optimize rewinding
enabled.
- This is simpler--two fewer entry points, and a trivial decode path.
- Puts the mechanics of frame skipping in the decoder's control. Previously,
all we did was skip conversion and texture updates. Now, the decoder
can be smarter: skip B-frames, or skip to a keyframe.
- This allows for faster decodes, using slice-based conversion: YUV conversion
can be done at the same time as decoding.
don't make spurious calls to GetFrame (waste of CPU)
- fix DecodeFrame setting FRAME_DECODED without actually decoding a frame on EOF
after loop
update comment
(probably not related to "movie not looping" problems)
We could make MovieDecoder the arch class, with MovieTexture_Generic
replacing RageMovieTexture, but it forces a pull-based API, and DShow
insists on being callback-based ...