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)
- DTO & enum marshalling + EnumerateDevices
- Constraint type marshalling (all wrapper types, EchoCancellation, etc.)
- GetUserMedia with full constraint handling
- MediaStreamTrack constraint methods (GetCapabilities, GetSettings, ApplyConstraints)
- 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.
Implement full Media Capture and Streams API (MediaStream, MediaStreamTrack, MediaDevices, constraints, DTOs).
Scope
Implementation Order (Dependency Chain)
Key Design Decisions
Child Issues
See numbered child issues linked below.