Skip to content

Releases: whyb/HwCodecDetect

v0.2.8

16 Jun 04:04

Choose a tag to compare

New Features

✨ Custom ffmpeg Path Support

  • Added a GUI option to specify a custom ffmpeg executable path
  • The custom path is now used across all detection and test modules
  • Improved ffmpeg discovery logic in utilities

✨ Automatic ffmpeg Installation (install_ffmpeg_if_needed)

  • New module to automatically detect if ffmpeg is installed
  • If missing, prompts and guides the user through installation
  • Significantly improved installation logic with 306+ lines of enhancements

✨ Colorful Terminal Output

  • Added vibrant color-coded output for bit depth and chroma detection results
  • Enhanced test runner output with colorized status indicators
  • Improved readability of console output across all modules

✨ Hardware Device Index Support

  • Added device index configuration for hardware encoders/decoders
  • New codec_defs.py module defining available hardware devices and codecs
  • GUI now supports selecting hardware device indices

Bug Fixes

🐛 Vulkan hwupload Format Compatibility

  • Fixed issue where Vulkan hwupload only accepted semi-planar HW-friendly pixel formats
  • Added proper format validation for Vulkan hardware uploads

🐛 tkinter ImportError

  • Fixed ImportError when tkinter is not available in certain Python environments
  • Added graceful fallback when running in headless mode

🐛 Subprocess Timeout

  • Set subprocess timeout to 10 seconds to prevent indefinite hangs
  • Improved error handling for timed-out ffmpeg operations

Refactoring & Improvements

🔧 Major Codebase Restructuring

  • Extracted hardware codec definitions into dedicated codec_defs.py module
  • Extracted theme/color definitions into dedicated theme.py module
  • Reduced gui.py by 873 lines through modularization
  • Overall: +499 lines added, -873 lines removed across 8 files

🔧 Improved Test Runner

  • Refactored run_tests.py for better code organization
  • Enhanced test output formatting
  • Added support for custom ffmpeg path in test execution

🔧 Optimization

  • Optimized GUI layout and logic
  • Improved error handling and user feedback across all modules

v0.2.7

29 May 03:38

Choose a tag to compare

  • The UI was redesigned.
  • Merge branch 'ui'

Supported Platforms:

  • Windows: x64, x86 (32-bit)
  • macOS: Apple Silicon (ARM64), Intel (x64)
  • Linux: x64, ARM64, x86

Note: Windows ARM users should use the Windows x86 or x64 binary.

v0.2.6

11 May 03:49

Choose a tag to compare

  • Fix wrong stty config after tests on Linux ( @peasoft )
  • Better table printing(markdown friendly) ( @peasoft )
  • More Robust FFmpeg Installation Logic
  • Update README

Supported Platforms:

  • Windows: x64, x86 (32-bit)
  • macOS: Apple Silicon (ARM64), Intel (x64)
  • Linux: x64, ARM64, x86

Note: Windows ARM users should use the Windows x86 or x64 binary.

v0.2.5

24 Apr 06:45

Choose a tag to compare

Release Notes

  • Add subprocess creationflags: CREATE_NO_WINDOW
  • Add Apple VideoToolbox and D3D12VA decoders
  • Fix Decoder definitions table(miss d3d12va)
  • fix decoder_bitdepth_test miss d3d12va

Note: Windows ARM users should use the Windows x86 or x64 binary.

v0.2.4

15 Apr 04:01

Choose a tag to compare

HwCodecDetect v0.2.4 Release Notes

Release Overview

This release includes 1575 total lines changed across 9 files, combining improvements from both main and ui branches.

🔧 Core Engine Improvements (Main Branch)

New Features

  • Added unified get_temp_path() utility for consistent temporary file management
  • Added --disable-windowed-traceback command line flag for headless environments
  • Implemented pre-flight codec capability check before running detection tests

Enhancements

  • Refactored bit-depth and chroma subsampling detection logic
  • Improved error handling and exception reporting
  • Updated GitHub Actions release workflow
  • Cleaned up module import structure

Fixes

  • Resolved PyInstaller console parameter handling issue
  • Fixed edge cases in 10/12-bit codec detection

🎨 GUI Interface (UI Branch)

All items below marked with [GUI] are only available in UI branch builds

[GUI] MAJOR: Complete graphical user interface added (1267 lines new gui.py module)

  • Full desktop application with modern interface
  • All codec detection features available via GUI
  • Real-time test progress visualization
  • Test result export capabilities

[GUI] New Features:

  • Bit-depth & Chroma sampling test interface
  • Automatic FFmpeg environment validation on startup
  • Built-in version check and update notification system
  • Proper temporary file management for GUI sessions
  • Windows GUI mode runs without console window

[GUI] Fixes & Improvements:

  • Fixed ProRes codec detection for MOV container format
  • Added CI/CD pipeline for GUI executable builds
  • Improved exception handling in GUI context

Build & Deployment

  • Updated version number to v0.2.4
  • PyInstaller spec file optimized for both CLI and GUI builds
  • GitHub Actions workflow updated for dual release artifacts

v0.2.3

13 Apr 04:09

Choose a tag to compare

  • Add Vulkan AV1 Encoder support.
  • Add VideoToolbox ProRes Decoder/Encoder support.

v0.2.2

10 Apr 09:59

Choose a tag to compare

Release Notes

  • Add Microsoft Hardware AV1 Encoder(MediaFoundation) support.

v0.2.1

10 Apr 09:35

Choose a tag to compare

Release Notes:

  • Upgraded to FFmpeg 8.1: Core engine enhancement.
  • D3D12 Hardware Encoding: New support for H.264 and AV1 via Direct3D 12(d3d12va).

Supported Platforms:

  • Windows: x64, x86 (32-bit)
  • macOS: Apple Silicon (ARM64), Intel (x64)
  • Linux: x64, ARM64, x86

Note: Windows ARM users should use the Windows x86 or x64 binary.

v0.2.0

24 Mar 08:37

Choose a tag to compare

Release Notes: HwCodecDetect v1.2.0

  • Added Bit-depth & Chroma Detection: New support for testing 8/10/12-bit and YUV 4:2:0/4:2:2/4:4:4 compatibility at a fixed 1280x720 resolution.

  • Smart Encoding Fallback: Automatically uses software encoding to generate test vectors if hardware encoding fails, ensuring consistent decoding tests.

  • UI/Logic Refactoring: Decoupled UI rendering from run_tests.py into a standalone module for better stability and maintainability.

  • Enhanced Interface: Added two new UI notebooks specifically for Bit-depth and Chroma results, while renaming existing resolution-based tabs for clarity.

  • New CLI Argument: Added --no-bitdepth-chroma flag to run_tests to allow skipping extended color-space testing (enabled by default).

  • Bug Fixes: Resolved the execution exception occurring in run_tests.py when initializing the new detection scripts.

v0.1.10

14 Mar 05:46

Choose a tag to compare

Automated multi-platform build for CLI and GUI.

  • CLI Version: main branch
  • GUI Version: ui branch

Supported Platforms:

  • Windows: x64, x86 (32-bit)
  • macOS: Apple Silicon (ARM64), Intel (x64)
  • Linux: x64, ARM64, x86

Note: Windows ARM users should use the Windows x86 or x64 binary.