Skip to content

Verify HDMI metadata transmission of MaxCLL values #12

@tjdcs

Description

@tjdcs

Problem

While the codebase has complete HDR metadata implementation including MaxCLL transmission via the DeckLink SDK, there's currently no verification mechanism to confirm that MaxCLL values are correctly transmitted via HDMI InfoFrames to connected displays.

Current Implementation

The HDR metadata system is fully implemented:

  • Python API: HDRMetadata class with configurable MaxCLL (default: 1000 cd/m², project default: 10,000 cd/m²)
  • C++ Transmission: MaxCLL sent via bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel
  • Frame Flagging: HDR frames properly marked with bmdFrameContainsHDRMetadata
  • Device Support: HDR capability detection via BMDDeckLinkSupportsHDRMetadata

Missing Verification

  1. No HDMI InfoFrame validation - No mechanism to verify InfoFrame transmission
  2. No display-side verification - Cannot confirm displays receive correct MaxCLL values
  3. No automated testing - HDR metadata transmission not covered in test suite
  4. No debug/monitoring tools - No way to inspect transmitted metadata values

Proposed Solution

Phase 1: Debug Tools

  • Add logging/debug output for transmitted HDR metadata values
  • Create CLI command to display current HDR metadata configuration
  • Add metadata inspection to device-details command

Phase 2: Verification Methods

  • Research external tools for HDMI InfoFrame capture/analysis
  • Investigate DeckLink SDK capabilities for metadata readback
  • Create test patterns with known MaxCLL values for manual verification

Phase 3: Automated Testing

  • Add HDR metadata transmission tests to test suite
  • Mock verification of metadata values in test framework
  • Integration tests with different MaxCLL configurations

Technical Details

Key Files:

  • bmd_sg/decklink/bmd_decklink.py:472-565 - HDRMetadata class
  • cpp/decklink_wrapper.cpp:429-485 - C++ HDR transmission
  • cpp/decklink_wrapper.h:44-52 - HDR metadata structures

MaxCLL Transmission Path:

Python HDRMetadata.maxCLL → C++ HDRMetadata.maxCLL → bmdDeckLinkFrameMetadataHDRMaximumContentLightLevel → HDMI InfoFrame

Acceptance Criteria

  • Ability to verify MaxCLL values reach HDMI output correctly
  • Debug tools to inspect transmitted HDR metadata
  • Test coverage for HDR metadata transmission
  • Documentation of verification procedures

Priority

Medium - Core HDR functionality works, but verification is needed for production confidence and troubleshooting display compatibility issues.

Labels

  • enhancement
  • hdR
  • testing
  • verification

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions