Commit graph

67 commits

Author SHA1 Message Date
Leon Styhre 3c82bb4dfb Changed the renderer pixel format from RGBA to BGRA.
Also implemented premultiplied alpha for all images, animations and videos and improved the carousel reflection falloff logic.
2022-10-28 00:08:41 +02:00
Leon Styhre 45fa3d2c37 Added a pillarboxThreshold property to control these values for the video element. 2022-10-16 16:40:52 +02:00
Leon Styhre 8f6262a3a9 Fixed an issue where the video player output frame width was not set correctly. 2022-10-01 17:19:53 +02:00
Leon Styhre e7f1a0f36c Updated VideoFFmpegComponent for deprecated functions in FFmpeg 5.1 2022-09-30 23:20:36 +02:00
Leon Styhre bfdeb2e004 Video player code cleanup. 2022-09-29 22:32:57 +02:00
Leon Styhre 993efe8504 Fixed an issue where audio for static videos in the gamelist view would get muted on navigation. 2022-09-29 20:18:33 +02:00
Leon Styhre 720a6fcc22 Added support for fade-in and fade-out of static videos. 2022-09-16 23:54:13 +02:00
Leon Styhre 6fd47a5599 Fixed an issue where the video pillarboxes would not align precisely with the video content. 2022-09-16 23:30:51 +02:00
Leon Styhre a2769b98d4 Added a workaround for playing broken video files with invalid PTS values. 2022-09-08 18:38:19 +02:00
Leon Styhre 389dc6ed79 Added mOpacity video fading support to VideoFFmpegComponent 2022-08-18 22:38:09 +02:00
Leon Styhre 5de2855d60 Added theme support for defining color saturation for the image, video and animation components. 2022-03-17 19:33:09 +01:00
Leon Styhre 06a037d8cf Shader flags are now sent as bit masks instead of via discreet values.
Also changed the shader flags to enums.
2022-03-14 22:30:24 +01:00
Leon Styhre f0c35d8509 Refactored the rendering code into proper classes. 2022-03-14 19:51:48 +01:00
Leon Styhre 32251e0264 Fixed multiple issues with the shader post-processing.
Also removed an unnecessary parameter for the createTexture() function.
2022-03-12 14:22:27 +01:00
Leon Styhre 755b2c9f50 Changed some render variables to more verbose names.
Also fixed an issue with fade transitions for legacy themes.
2022-03-11 23:51:41 +01:00
Leon Styhre 63af859618 Modernized the OpenGL renderer and replaced most fixed function pipeline code with shaders.
Also greatly improved the shader post processing performance and added component dimming support.
2022-03-11 23:17:04 +01:00
Leon Styhre 9e2c24ef79 Fixed an issue where videos would still play if the video theme configuration was broken. 2022-03-06 22:52:13 +01:00
Leon Styhre 2df8a867ad Fixed some compiler errors when building with FFmpeg 5.0 2022-03-06 14:38:19 +01:00
Leon Styhre a97e86a6aa Renamed the menu option to enable or disable audio playback for gamelist videos. 2022-02-20 16:07:27 +01:00
Leon Styhre 73e0e59b8c Fixed an issue where hidden videos would still play. 2022-02-20 15:04:05 +01:00
Leon Styhre f803e23fd2 Added theme support for disabling audio playback for each defined video. 2022-02-19 21:45:31 +01:00
Leon Styhre 77beb39801 Fixed an issue where videos would not get centered if pillarboxes were enabled. 2022-02-19 20:31:54 +01:00
Leon Styhre c4eb1b8b97 Greatly simplified the video controls code.
Also fixed a cosmetic issue with carousel fade transitions.
2022-02-19 17:04:23 +01:00
Leon Styhre 0266a6e7e6 Fixed a video fade-in issue when using the GLES renderer. 2022-02-15 22:34:26 +01:00
Leon Styhre 5ac6bcb902 Added opacity support to the scanline shader. 2022-02-15 22:13:11 +01:00
Leon Styhre e0540ee03b Video pillarboxes and scanline rendering can now be controlled from the theme configuration. 2022-02-12 17:46:31 +01:00
Leon Styhre c35a297d9a Large update to get the new theme engine up and running. 2022-01-29 18:41:22 +01:00
Leon Styhre a443f86235 Removed a huge amount of unnecessary Window* function arguments. 2022-01-19 18:01:54 +01:00
Leon Styhre 0c8efee8ad General refactoring and code cleanup. 2022-01-16 18:18:28 +01:00
Leon Styhre 8a6652552f Set the clang-format option SpaceBeforeCpp11BracedList to true. 2022-01-16 12:09:55 +01:00
Leon Styhre c62a069448 Fixed an issue where the audio device was accessed after it had been closed. 2022-01-05 00:08:50 +01:00
Leon Styhre 2bbbab7d70 Small optimization in VideoFFmpegComponent. 2021-11-18 17:25:09 +01:00
Leon Styhre af52d9b0ac Changed most increment and decrement operators from postfix to prefix for es-core. 2021-11-17 17:48:49 +01:00
Leon Styhre 9937476e18 Replaced some mutex locks with atomic variables.
Also removed an SDL audio issue workaround from AudioManager.
2021-11-16 17:49:05 +01:00
Leon Styhre 6bc4a09c9b Multiple thread safety improvements to AudioManager and VideoFFmpegComponent.
Also some general refactoring and re-enabling of some SDL_AudioStream functions.
2021-11-15 22:43:06 +01:00
Leon Styhre 36b7146d7f Made the video player shut down slightly faster under some circumstances. 2021-11-12 23:48:12 +01:00
Leon Styhre 3e12fcb420 General refactoring and minor optimizations throughout the codebase. 2021-11-09 22:40:08 +01:00
Leon Styhre d3b135e387 Set the FFmpeg video player HW decoding as disabled by default. 2021-11-08 17:58:36 +01:00
Leon Styhre ac4710a18e Added proper support for the Raspberry Pi 4. 2021-11-07 23:54:52 +01:00
Leon Styhre c5a1555de3 Added proper frame drop support to the FFmpeg video player.
Also made multiple large optimizations.
2021-11-07 18:14:38 +01:00
Leon Styhre 63767347f2 Fixed numerous compiler warnings reported by the -Wall and -Wpedantic flags. 2021-09-19 14:37:10 +02:00
Leon Styhre 0b6d987263 Fixed lots of compiler warnings reported by the -Wall and -Wpedantic flags. 2021-09-18 09:53:26 +02:00
Leon Styhre 91339bf1fa (Windows) Fixed a MinGW compiler error. 2021-08-18 18:52:41 +02:00
Leon Styhre 7b5d673050 Replaced the internal Vector2i data type and functions with the GLM library equivalent.
Also applied some code formatting changes for braced lists using clang-format.
2021-08-17 18:41:45 +02:00
Leon Styhre 1fb0ccef0d Replaced the internal Vector2f data type and functions with the GLM library equivalent. 2021-08-16 18:25:01 +02:00
Leon Styhre 722468129e Replaced all internal matrix data types and functions with the GLM library equivalents.
Also changed some vectors.
2021-08-15 19:30:31 +02:00
Leon Styhre 9bbba93edf Added experimental hardware decoding support to VideoFFmpegComponent.
Also fixed some memory leaks and removed the video frame skipping code as it caused more harm than good.
2021-07-14 19:13:25 +02:00
Leon Styhre 3b4bb74ac0 VideoFFmpegComponent now prioritizes audio by dropping video frames if the computer can't keep up. 2021-07-09 19:47:33 +02:00
Leon Styhre 23fdc00044 Formatted the es-core source tree using clang-format. 2021-07-07 20:31:46 +02:00
Leon Styhre 45d3bb9bad Small refactoring of VideoFFmpegComponent. 2021-07-04 11:36:16 +02:00