Re: [mediacapture-transform] Track transferability requirement adds complexity to some common use cases (#116)

Hi, want to chime in here and add my 2 cents. We use MediaStreamTrackGenerator and MediaStreamTrackProcessor at dialpad.com for the common background replacement usecase in our video conferencing application.

1. Having MediaStreamTrackGenerator and MediaStreamTrackProcessor on the main window does help us. We play around with the track constraints (like frame rate, dimensions) in the application to manage the performance of the app. Having a single track + retaining the ownership of it in the main window helps simplify the process of applying these constraints. We could still do those by doing a postMessage, but that would be additional code overhead for us.
    - Want to additionally highlight that MediaStreamTrack operations are done by application with or without a usecase needing worker. So we prefer these MediaStreamTrack operations to be done in same fashion in both cases. But a usecase like stopping of the writeable stream (if there is a need to manage it explicitly by application) can rely on postMessage since this needs a worker always. 
2. Creating MediaStreamTrackGenerator and MediaStreamTrackProcessor in a worker would mean doing two track transfers. The input track being transferred to the worker and then the output track transferred to the main window. The current chrome's implementation doesn't need those transfers and instead relies on transferring the streams. Given how resource intensive a video conferencing application can get, we prefer to benefit from an optimal mode for the transfer of frames (if one exists) over the transferring of the track objects.

-- 
GitHub Notification of comment by arjunvade
Please view or discuss this issue at https://github.com/w3c/mediacapture-transform/issues/116#issuecomment-3629946592 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Tuesday, 9 December 2025 02:36:52 UTC