Commit Graph

18 Commits

Author SHA1 Message Date
Azamat H. Hackimov
3f588adb0a Fix audio distortions on MVE playback with pipewire backend
Don't define fixed buffer length for audio device, SDL2 calculates desired length itself.
Minor cleanups and fixes to virtual class and constructor.
2024-08-29 16:29:46 +03:00
Azamat H. Hackimov
f78bd57a81
Merge pull request #489 from Lgt2x/mve-no-sound
Support -nosound option for movie playbacks
2024-07-19 13:41:41 +03:00
Louis Gombert
998e834068 Support -nosound option for movie playbacks 2024-07-14 19:06:21 +02:00
Azamat H. Hackimov
4b8328cdfa Use correct sample size for processing
Change mveaudio_process() to use sample size defined by stream.
2024-07-12 17:03:28 +03:00
Azamat H. Hackimov
976f00a1f3 Use SDL_QueueAudio() instead callbacks on filling sound buffer
Fixes some issues when sound buffer get exhausted before refilling.
2024-07-12 17:03:28 +03:00
Azamat H. Hackimov
c6eb9a8908 MVE: rename lnx_sound to sdl_sound
Now this is cross-platform playback.
2024-07-09 03:42:52 +03:00
Azamat H. Hackimov
4f0e0f87a5 Cleanup MVE library
Remove old implementation, cleanup unused code.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
9672475f70 Update MVE playback on Windows
There only one problem still persist on playback - slow filling sound buffer from std::deque on MSVC Debug mode due extremely slow performance of STL containers on that mode. On Release and RelWithDebInfo playback is fine.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
8fd119bd3d MVE: Make timer code crossplatform 2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
a39ccfc3ca MVE: Implementing class for sound playback
Implemented abstraction layer and SDL backend.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
2f288f6dc9 MVE: use deque for FIFO buffer
Replacing circular ring implementation with queue that keeps decoded data between SDL audio callbacks.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
8d56e1c1ff MVE: Migrate to SDL2 functions
Replaced SDL 1.2 legacy calls to SDL2 equivalents.
Changed spec.size to fixed value 4096 as values obtained from file can produce sound stuttering.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
96c240a4c0 MVE: Add support for big-endian systems 2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
afd7c1a636 MVE: Initial sound support
Sound supported by SDL backend.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
a8784ee524 MVE: Implementing frame playing (main menu)
Reorganized MVE to use own MVESTREAM pointer for each opened MVE file.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
99ec2e3a5e MVE: Refactoring code
Merge libmve.h into mvelib.h
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
b94458f561 MVE: Switch to D2X implementation (first run)
Adapting movie and mve interfaces each other.
Converted open() to fopen() et al. calls.
movie expected image as RGB565 from old mve, but now it's RGB555, so there no need additional conversion. Fixed hicolor related conversion of width in movie's callbacks. Headers cleanup in both subsystems.

Sound and frame callbacks are still unavailable.
2024-07-09 03:40:49 +03:00
Azamat H. Hackimov
a5b86bd0fb MVE: convert libmve files to C++ 2024-07-09 03:40:49 +03:00