In our current code/interfaces, there is a TODO to take device capabilities into account: https://cs.chromium.org/chromium/src/media/mojo/interfaces/remoting.mojom?rcl=2b187a7107fee4575ce45395e8482c119e1283c4&l=100 The above needs to be expanded. In particular, we currently assume the "lowest common denominator" of codec, etc. support: https://cs.chromium.org/chromium/src/media/remoting/renderer_controller.cc?rcl=015b482288344aacfd96680e234d064ad79e3635&l=209 Instead, we should take codec, DRM key systems, max resolution/framerate, etc. capabilities into account. This will allow us to, for example, remote VP9 or 4K video on the latest Chromecast Ultra.
xjz's working on this as part of a larger "mirroring service" project.
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6dc1110db5bdfca6ddbd2f5026d237435471377e commit 6dc1110db5bdfca6ddbd2f5026d237435471377e Author: Xiangjun Zhang <xjz@chromium.org> Date: Mon Jul 24 23:49:11 2017 Media Remoting: Activate remoting based on device capabilities. This CL passed the remoting sink metadata to remoting source. The media remoting is activated based on device capabilities. Bug: 705177 , 734672 Change-Id: If5498fca9df02f22046dbe3274058a5583bd1339 Reviewed-on: https://chromium-review.googlesource.com/569038 Commit-Queue: Xiangjun Zhang <xjz@chromium.org> Reviewed-by: Nasko Oskov <nasko@chromium.org> Reviewed-by: Derek Cheng <imcheng@chromium.org> Reviewed-by: Yuri Wiitala <miu@chromium.org> Cr-Commit-Position: refs/heads/master@{#489145} [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/chrome/browser/media/cast_remoting_connector.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/chrome/browser/media/cast_remoting_connector.h [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/chrome/browser/media/cast_remoting_connector_unittest.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/chrome/renderer/resources/extensions/media_router_bindings.js [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/mojo/interfaces/mirror_service_remoting.mojom [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/mojo/interfaces/remoting.mojom [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/mojo/interfaces/remoting_common.mojom [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/remoting_cdm_controller.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/remoting_cdm_factory.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/renderer_controller.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/renderer_controller_unittest.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/shared_session.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/shared_session.h [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/sink_availability_observer.cc [modify] https://crrev.com/6dc1110db5bdfca6ddbd2f5026d237435471377e/media/remoting/sink_availability_observer.h
Comment 1 by sko...@chromium.org
, May 31 2017