New issue
Advanced search Search tips

Issue 638505 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2016
EstimatedDays: ----
NextAction: ----
OS: All
Pri: 1
Type: Feature



Sign in to add a comment

Implement audio support in WebRTC protocol

Project Member Reported by sergeyu@chromium.org, Aug 17 2016

Issue description

Currently audio is not supported in chromoting when using the WebRTC-based protocol.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Sep 12 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cd16e206c2182e96019d58d2fa53f6f9d327e6d4

commit cd16e206c2182e96019d58d2fa53f6f9d327e6d4
Author: sergeyu <sergeyu@chromium.org>
Date: Mon Sep 12 19:28:35 2016

Remove dependency on AudioStub in ConnectionToClient

Replaced audio_stub() in ConnectionToClient interface with
CreateAudioStream(). The new method returns AudioSendStream which
doesn't depend on AudioStub. AudioPump class has been moved to
remoting/protocol and it implements AudioSendStream interface for ICE
protocol.
This change makes it possible to implement audio support in
WebrtcConnectionToClient.

Also removed verbatim audio codec as it wasn't used anywhere.

BUG= 638505 

Review-Url: https://codereview.chromium.org/2254673002
Cr-Commit-Position: refs/heads/master@{#418002}

[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/codec/BUILD.gn
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/codec/audio_decoder.cc
[delete] https://crrev.com/e4e4e43dcae4dacb63de05c1b5e8ed02ca498144/remoting/codec/audio_decoder_verbatim.cc
[delete] https://crrev.com/e4e4e43dcae4dacb63de05c1b5e8ed02ca498144/remoting/codec/audio_decoder_verbatim.h
[delete] https://crrev.com/e4e4e43dcae4dacb63de05c1b5e8ed02ca498144/remoting/codec/audio_encoder_verbatim.cc
[delete] https://crrev.com/e4e4e43dcae4dacb63de05c1b5e8ed02ca498144/remoting/codec/audio_encoder_verbatim.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/BUILD.gn
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/audio_capturer.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/chromoting_host.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/chromoting_host_unittest.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/client_session.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/client_session.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/host/client_session_unittest.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/proto/audio.proto
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/BUILD.gn
[rename] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/audio_pump.cc
[rename] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/audio_pump.h
[rename] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/audio_pump_unittest.cc
[add] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/audio_source.h
[add] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/audio_stream.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/connection_to_client.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/connection_unittest.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/fake_connection_to_client.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/fake_connection_to_client.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/ice_connection_to_client.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/ice_connection_to_client.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/protocol_mock_objects.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/webrtc_connection_to_client.cc
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/protocol/webrtc_connection_to_client.h
[modify] https://crrev.com/cd16e206c2182e96019d58d2fa53f6f9d327e6d4/remoting/test/it2me_standalone_host.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/77b42df81a9c802d91dd2575b57d4780df16bf80

commit 77b42df81a9c802d91dd2575b57d4780df16bf80
Author: sergeyu <sergeyu@chromium.org>
Date: Tue Oct 04 02:08:38 2016

Move audio decoding to protocol layer

Previously ChromotingClient was responsible for creation of
AudioDecodeScheduler. Moved that logic to IceConnectionToHost because
WebrtcConnectionToHost will not need it. Also moved AudioDecodeScheduler
from remoting/client to remoting/protocol and simplified it.

BUG= 638505 

Review-Url: https://codereview.chromium.org/2384063004
Cr-Commit-Position: refs/heads/master@{#422671}

[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/BUILD.gn
[delete] https://crrev.com/49a54b594e0c9f6d3ea60d1f21e90507c21423e2/remoting/client/audio_consumer.h
[delete] https://crrev.com/49a54b594e0c9f6d3ea60d1f21e90507c21423e2/remoting/client/audio_decode_scheduler.cc
[delete] https://crrev.com/49a54b594e0c9f6d3ea60d1f21e90507c21423e2/remoting/client/audio_decode_scheduler.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/audio_player.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/audio_player.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/audio_player_unittest.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/chromoting_client.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/client/chromoting_client.h
[delete] https://crrev.com/49a54b594e0c9f6d3ea60d1f21e90507c21423e2/remoting/client/fake_audio_consumer.cc
[delete] https://crrev.com/49a54b594e0c9f6d3ea60d1f21e90507c21423e2/remoting/client/fake_audio_consumer.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/BUILD.gn
[add] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/audio_decode_scheduler.cc
[add] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/audio_decode_scheduler.h
[rename] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/audio_decode_scheduler_unittest.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/connection_to_host.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/fake_connection_to_host.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/fake_connection_to_host.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/ice_connection_to_host.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/ice_connection_to_host.h
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/webrtc_connection_to_host.cc
[modify] https://crrev.com/77b42df81a9c802d91dd2575b57d4780df16bf80/remoting/protocol/webrtc_connection_to_host.h

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 5 2016

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 9 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/24b257a192875a00ab9de76f52d893ff9b9cad21

commit 24b257a192875a00ab9de76f52d893ff9b9cad21
Author: sergeyu <sergeyu@chromium.org>
Date: Sun Oct 09 02:46:28 2016

Add Audio support in Chromoting host when using WebRTC.

This change adds WebrtcVideoStream that sends audio from the host to
the client. Audio is sent in a media stream separate from video.

BUG= 638505 

Review-Url: https://codereview.chromium.org/2392963003
Cr-Commit-Position: refs/heads/master@{#424090}

[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/host/chromoting_host.cc
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/BUILD.gn
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/audio_pump_unittest.cc
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/audio_stream.h
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/connection_unittest.cc
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/fake_audio_source.cc
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/fake_audio_source.h
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_audio_source_adapter.cc
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_audio_source_adapter.h
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_audio_source_adapter_unittest.cc
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_audio_stream.cc
[add] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_audio_stream.h
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_connection_to_client.cc
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_connection_to_client.h
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_video_stream.cc
[modify] https://crrev.com/24b257a192875a00ab9de76f52d893ff9b9cad21/remoting/protocol/webrtc_video_stream.h

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 10 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f06b552d5632f5d07c1b81640dd1ce6b45772532

commit f06b552d5632f5d07c1b81640dd1ce6b45772532
Author: sergeyu <sergeyu@chromium.org>
Date: Mon Oct 10 20:46:53 2016

Add audio support in WebrtcConnectionToHost, audio unittest

WebrtcConnectionToHost now supports audio streaming.
Also added a unittests that tests audio streaming, both for ICE and
WebRTC protocols.

BUG= 638505 

Review-Url: https://codereview.chromium.org/2371323007
Cr-Commit-Position: refs/heads/master@{#424232}

[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/BUILD.gn
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/connection_unittest.cc
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/session_config.cc
[add] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_audio_sink_adapter.cc
[add] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_audio_sink_adapter.h
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_connection_to_host.cc
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_connection_to_host.h
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_transport.cc
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_transport.h
[modify] https://crrev.com/f06b552d5632f5d07c1b81640dd1ce6b45772532/remoting/protocol/webrtc_video_renderer_adapter.cc

Labels: -M-55 M-56
Status: Fixed (was: Started)
Project Member

Comment 7 by bugdroid1@chromium.org, Oct 27 2016

Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84

commit 2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84
Author: sergeyu <sergeyu@chromium.org>
Date: Wed Oct 05 22:51:14 2016

Add WebrtcAudioModule

Previously WebrtcTransport was using webrtc::FakeAudioModule, but it
doesn't work properly when the client tries to read data from audio
tracks. Replaced it with the new remoting::WebrtcAudioModule class.

BUG= 638505 

Review-Url: https://codereview.chromium.org/2394433003
Cr-Commit-Position: refs/heads/master@{#423324}

[modify] https://crrev.com/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84/remoting/protocol/BUILD.gn
[add] https://crrev.com/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84/remoting/protocol/webrtc_audio_module.cc
[add] https://crrev.com/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84/remoting/protocol/webrtc_audio_module.h
[modify] https://crrev.com/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84/remoting/protocol/webrtc_transport.cc
[modify] https://crrev.com/2c5c0c20d9d7a42eabebe05ef66ab4e4bb78ed84/remoting/protocol/webrtc_transport.h

Labels: -merge-merged-2840

Sign in to add a comment