Technical Overview

A quick orientation to what’s under the hood. Nothing here changes how you use the app — skip to the feature pages if you’re after a specific control.

Stack

QCView is a Qt 6.11 Quick / QML application with a native player surface drawn under the UI for low-latency, color-managed video output.

  Windows macOS
UI Qt Quick / QML Qt Quick / QML
GPU Direct3D 11 + DirectComposition (multi-visual for HDR) Metal
HW decode Vulkan-video for ProRes, D3D11 for h.264/h.265 via FFmpeg (with software fallback) VideoToolbox via FFmpeg
Audio WASAPI shared mode, MMCSS “Pro Audio” priority CoreAudio AudioUnit
HDR output HDR10 (PQ / ST.2084, BT.2020) via DXGI swapchain EDR (Extended Dynamic Range, linear-light)

The video frame path is hardware-accelerated end-to-end on both platforms — no CPU staging for the main pipeline.

Pipeline modes

The pipeline mode controls the precision the source frame is carried at through OCIO and to the display. QCView picks one automatically based on the source format.

Mode Texture Bit depth When QCView picks it
Normal RGBA8 8-bit Standard video (.mp4, .mov 8-bit) — best performance
High-Res RGBA16 12-bit ProRes 4444, 16-bit TIFF / PNG
Ultra-High-Res RGBA16F 16-bit float EXR sequences; OCIO chains needing float headroom
HDR RGBA16F 16-bit float HDR video sources (HDR10, HLG)

Higher precision modes use more memory per cached frame (8 bytes/pixel vs. 4 for Normal); cache window sizing accounts for this automatically.

HDR

Windows: HDR10 output can be used when Windows HDR mode is enabled. The player surface is its own DirectComposition visual so the HDR swapchain can use PQ/ST.2084 + BT.2020 without dragging the Qt UI’s sRGB swapchain along with it. scRGB (sRGB linear) is always available, but not reccomended since HDR mode on monitors is HDR10 and this forces Windows to translate.

macOS: EDR (Extended Dynamic Range) is a linear-light system where 1.0 = SDR white and values above 1.0 are brighter, up to the display’s headroom. The ACES 2.0 and Blender 5.1 OCIO configs include Linear sRGB EDR and Linear P3 EDR display outputs for this workflow.

Audio

WASAPI on Windows and CoreAudio on macOS, float32 stereo at 48 kHz. The audio mixer is shared cross-platform.

Multi-stream broadcast deliveries (5.1, 7.1, multiple discrete language stems, etc.) are routed per channel — you pick which file’s channel goes to which output from the Audio routing controls in the Inspector. Per-clip routing also applies inside a playlist.

Image sequences

EXR (multi-layer + multi-part with layer extraction), TIFF, PNG, JPEG, and JPEG-2000 / HTJ2K (via OpenJPH). Frames are loaded into a ring-buffer cache centered on the playhead position, with current > ahead > behind priority and automatic eviction outside the cache window.

Color

Live OCIO chains are evaluated per frame on the GPU. Bundled configs: ACES 2.0, ACES 1.3, Blender 5.1. Screenshots and annotation exports apply the OCIO transform to the saved pixels.


This site uses Just the Docs, a documentation theme for Jekyll.