We've tried to create an ADM outside of the peerconnection factory and pass it in, which allows us to list the input and output devices, but it looks like we would have to fix the input device once and for all for the Perrconnectionfactory, and hence all the peer connections created thereafter.ADM => PCF => PC => CreateAudioSource => MSTrack => AddTrack()
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/1c366089-126f-2d41-e4a8-0497958f2440%40gmail.com.
I understand your viewpoint Sergio, but given title of this thread "ADM and device selection"; are there any real issues with the"external ADM" approach there? The transport mechanism/API is imho another (broader and more difficult) topic.Also, please note that on most mobile platforms, device handling can be done completely outside the native WebRTC stack.
--On Wed, Oct 25, 2017 at 11:05 AM, Sergio Garcia Murillo <sergio.garcia.murillo@gmail.com> wrote:--Hi Henrik,On 25/10/2017 10:33, Henrik Andreasson wrote:
We've tried to create an ADM outside of the peerconnection factory and pass it in, which allows us to list the input and output devices, but it looks like we would have to fix the input device once and for all for the Perrconnectionfactory, and hence all the peer connections created thereafter.ADM => PCF => PC => CreateAudioSource => MSTrack => AddTrack()
It is not clear to me what the actual problem is with this approach. Does it work but you would prefer an alternative (more clean or more inline with Chrome) solution or are there stillissues that you can't resolve?
IMHO using an external ADM allows little flexibility, from my investigation (please, correct me if I am wrong) if you want to implement a track/device based audio processing you need to provide a dummy external ADM and override the AudioSourceInterface and track sinks to be able to get/fetch the audio data anyway.
Also, (again please correct if I am wrong) it seems there are two different ways of delivering data to the voe channel that work simultaneously, one via the adm RegisterAudioCallback(webrtc::AudioTransport*) and the other via AudioSourceInterfae::AddSink(webrtc::AudioTrackSinkInterface * sink).
Overall it is quite difficult (at least it has been for me) to understand the whole audio processing and IMHO it should be more similar to what chrome currently implements (which would allow device selection by default on the AudioSource), allowing to plug new input/output devices without needing to overwrite quite a lot of code. I also acknowledge that this change would require quite a huge refactor and is far from trivial, so just my 2 cents ;)
Best regards
Sergio
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/1c366089-126f-2d41-e4a8-0497958f2440%40gmail.com.
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAD2mqc7m9%3DXg_tjC5P4e3ruvawMGpZhRF%3DyN7iJGaWzMVCiVew%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAHgZEq7dzYU8oZnRTxtRtmgucp2V_h4YAksxOJ_RE0bwMh11Xw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAD2mqc7B98SL8EpmVba540bjw8mPzzXc36WUDLWDecy5cf2aTA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CAHgZEq7wwJRFxE7sRhUgYv%2BDAZOK5pcpprsvHvFDcA67bjA5%3Dg%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrt...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CACKRbQdpxGeq3RArSGPK%2BLoN5TUA2oDcPuyTj9vO7nnnFh0AhA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CACKRbQdpxGeq3RArSGPK%2BLoN5TUA2oDcPuyTj9vO7nnnFh0AhA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
---
You received this message because you are subscribed to the Google Groups "discuss-webrtc" group.
To unsubscribe from this group and stop receiving emails from it, send an email to discuss-webrtc+unsubscribe@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/b234daa4-9a55-5c8b-6cb0-4b9e53c81adb%40gmail.com.
This may also help,https://cs.chromium.org/chromium/src/content/renderer/media/webrtc_audio_device_impl.h?dr=CSs/Kaiduan
To view this discussion on the web visit https://groups.google.com/d/msgid/discuss-webrtc/CACKRbQcz477NiH1zNgC_OUeiLDJ_gRqq8pAVz7RU0%2BnP1Bvf5Q%40mail.gmail.com.