v1.0.2 - Crash Fix Release
What's Fixed in v1.0.2
Critical Bug Fixes
- Fixed app crash/exit when starting recording - The app would immediately exit when clicking the record button due to thread-affinity issues with mss (screen capture library) and Qt's QThread model.
- Fixed mss thread-local GDI handle errors (
'_thread._local' object has no attribute 'srcdc') at high frame rates (60fps). - Rewrote recording pipeline using Python's native
threading.Threadwith thread-safe queues instead of QThread+QTimer, ensuring mss GDI handles are created and used within the same thread. - Fixed
pyqtSlotsignature mismatch betweenaudio_datasignal andwrite_audio_dataslot that prevented audio from being passed to the encoder. - Added automatic hardware encoder fallback - When hardware encoders (QSV/NVENC/AMF) are not available, automatically falls back to software
libx264instead of crashing. - Improved mss resource cleanup on recording stop, handling thread-local handle errors gracefully.
- System audio (WASAPI loopback) now works correctly when the microphone is turned off.
Technical Changes
- New
RecordingWorkerclass usingthreading.Threadwith audio/commandqueue.Queuefor cross-thread communication. - Frame timing maintained with
time.perf_counter()for precise fps capture. - Removed dependency on QThread/QTimer for the capture/encoding loop.
- Audio data delivered via thread-safe queue instead of relying solely on Qt signals cross-thread.
Installation
- Download
ScreenRecorder-1.0.2-setup.exebelow - Run the installer and follow the prompts
- Launch Screen Recorder from the Start Menu
Portable Version
Download ScreenRecorder-v1.0.2-portable.zip for a portable version that doesn't require installation. Just extract and run ScreenRecorder.exe.