RetroShade is a lightweight, GPU-accelerated image and video editing library featuring a Qt-based user interface. It leverages a custom build of OpenCV 4.10.0 for efficient media I/O and CUDA 12.6 for high-performance processing. Future plans include OpenCL support to extend compatibility to non-NVIDIA GPUs.
- Qt 6.8.2 UI: Intuitive and responsive user interface built with Qt.
- Custom OpenCV 4.10.0: Streamlined OpenCV build optimized for image and video I/O.
- CUDA 12.6 Acceleration: GPU-powered effects for real-time processing.
- OpenCL Acceleration: All effects are also implemented using OpenCL for broader GPU compatibility.
- Modular Effect System: Easily extendable architecture for adding new effects.
- Sample Projects: Includes example projects demonstrating various effects.
VideoEditorBeta/
│
├── bin/ # Precompiled binaries (e.g., DLLs)
│ └── *.dll
│
├── lib/ # Static or dynamic libraries (if any)
│
├── include/ # External include files (if any)
│
├── Header Files/ # General header files
│ ├── utils.h
│ ├── timer.h
│ ├── image.h
│ └── ...
│
├── Source Files/ # Main application source code
│ ├── main.cpp
│ ├── utils.cpp
│ ├── image.cpp
│ └── ...
│
├── Resource Files/ # Resource-related files
│ ├── resource.h
│ ├── VideoEditorBeta.rc
│ └── Resource.qrc
│
├── UI/ # User interface components
│ ├── mainWindow.cpp/.h/.ui
│ ├── EffectButton.cpp/.h
│ └── ColorButton.cpp/.h
│
└── Effects/ # Video/image processing effects
├── <EffectName>/ # One folder per effect
│ ├── Image/ # Image-specific effect implementation
│ │ ├── image<EffectName>.h
│ │ └── image<EffectName>.cpp
│ │
│ ├── Video/ # Video-specific effect implementation
│ │ ├── video<EffectName>.h
│ │ └── video<EffectName>.cpp
│ │
│ └── Launcher/ # Shared launcher logic for the effect
│ ├── <EffectName>.h
│ ├── <EffectName>.cpp
│ └── CUDA/ # CUDA-specific GPU code
│ ├── <EffectName>_launcher.cu
│ └── <EffectName>_launcher.cuh
│
└── ...
- Visual Studio 2022
- With Desktop development with C++ workload
- Qt 6.8.2
- CUDA Toolkit 12.6
- [OpenCV 4.10.0 (custom build)] – already included
-
Clone the Repository
Open a terminal or Git Bash and run:git clone https://github.com/erfan-ops/VideoEditorBeta.git cd VideoEditorBeta -
Open the Solution
- Launch Visual Studio.
- Open
VideoEditorBeta.sln.
-
Configure Project
- Ensure
QtandCUDAinclude/lib paths are correctly set in Project Properties. - You may need to adjust:
VC++ Directories→ Include and Library pathsLinker→ Input (e.g., CUDA libraries)
- Ensure
-
Build the Project
- Set build mode to
ReleaseorDebug. - Press Ctrl + Shift + B or select Build → Build Solution.
- Set build mode to
-
Run the App
- After building, run the executable from
x64/Release/or directly from Visual Studio.
- After building, run the executable from
- ✅ OpenCL Support: Complete support added for AMD and Intel GPUs.
- Additional Effects: Implement more video effects such as sharpening, color correction, and transitions.
- Cross-Platform Support: Enhance compatibility with macOS and Linux systems.
This project is licensed under the MIT License. See the LICENSE file for details.
Contributions are welcome! Please fork the repository and submit a pull request for any enhancements or bug fixes.
For questions or suggestions, please open an issue on the GitHub repository.