Skip to content

Implement Media Capture API #48

@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 (Phase 1: Implement MediaDeviceInfo marshalling & EnumerateDevices #49)
  2. Constraint type marshalling (Phase 2: Implement MediaTrackCapabilities, MediaTrackSettings, & constraint marshalling #50)
  3. GetUserMedia with full constraint handling (Phase 3: Implement GetUserMedia with full constraint handling #51)
  4. MediaStreamTrack constraint methods (Phase 4: Implement MediaStreamTrack constraint methods #52)
  5. Complete MediaStream & MediaStreamTrack interop (Phase 5: Complete MediaStream & MediaStreamTrack interop #53)

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

Branch

All work on: feature/48-implement-media-capture-api

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions