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 (Phase 1: Implement MediaDeviceInfo marshalling & EnumerateDevices #49 )
Constraint type marshalling (Phase 2: Implement MediaTrackCapabilities, MediaTrackSettings, & constraint marshalling #50 )
GetUserMedia with full constraint handling (Phase 3: Implement GetUserMedia with full constraint handling #51 )
MediaStreamTrack constraint methods (Phase 4: Implement MediaStreamTrack constraint methods #52 )
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
Implement full Media Capture and Streams API (MediaStream, MediaStreamTrack, MediaDevices, constraints, DTOs).
Scope
Implementation Order (Dependency Chain)
Key Design Decisions
Child Issues
Branch
All work on: feature/48-implement-media-capture-api