Skip to content

Implement Media Capture API #47

@General-Fault

Description

@General-Fault

Implement full Media Capture and Streams API (MediaStream, MediaStreamTrack, MediaDevices, constraints, DTOs).

Scope

  • Include: Full Media Capture API surface including MediaStream, MediaStreamTrack, MediaDevices, all constraint types, and related DTOs
  • Exclude: WebRTC API (RtcPeerConnection, RtcRtpSender, etc.), full VideoRenderer implementation
  • Platform: Windows only (C++/CLI)

Implementation Order (Dependency Chain)

  1. DTO & enum marshalling + EnumerateDevices
  2. Constraint type marshalling (all wrapper types, EchoCancellation, etc.)
  3. GetUserMedia with full constraint handling
  4. MediaStreamTrack constraint methods (GetCapabilities, GetSettings, ApplyConstraints)
  5. Complete MediaStream & MediaStreamTrack interop

Key Design Decisions

  • Use existing marshalling patterns from MarshalIceServer.h, MarshalMediaConstraints.h as templates
  • Leverage C++ smart pointers (unique_ptr, shared_ptr, scoped_refptr, ManagedScopedRefPtr)
  • Follow copy/move semantics for efficiency
  • All constraint marshalling in dedicated header (single responsibility)
  • DTOs are pure managed records — marshalling converts native → managed, no round-trip
  • Enums use MarshalEnums.h pattern (switch or bidirectional map)

Child Issues

See numbered child issues linked below.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions