| Index: chrome/renderer/media/cast_session.h
|
| diff --git a/chrome/renderer/media/cast_session.h b/chrome/renderer/media/cast_session.h
|
| index 6bec7f9a3f16d949d9446c225e75ad18134044c6..4f6298e16f51442199b72d77aa1a8658fc201d30 100644
|
| --- a/chrome/renderer/media/cast_session.h
|
| +++ b/chrome/renderer/media/cast_session.h
|
| @@ -8,11 +8,15 @@
|
| #include "base/basictypes.h"
|
| #include "base/memory/ref_counted.h"
|
| #include "base/memory/scoped_ptr.h"
|
| +#include "net/base/ip_endpoint.h"
|
|
|
| namespace base {
|
| class MessageLoopProxy;
|
| } // namespace base
|
|
|
| +namespace content{
|
| +class P2PSocketClient;
|
| +};
|
| namespace media {
|
| namespace cast {
|
| struct AudioSenderConfig;
|
| @@ -29,6 +33,24 @@ class CastSession : public base::RefCounted<CastSession> {
|
| public:
|
| CastSession();
|
|
|
| + class SocketFactory {
|
| + public:
|
| + virtual ~SocketFactory();
|
| +
|
| + // Called on IO thread.
|
| + virtual scoped_refptr<content::P2PSocketClient> create() = 0;
|
| + };
|
| +
|
| + // Send the socket factory to the delegate, where create will be
|
| + // called. The delegate will then delete the socket factory on the
|
| + // IO thread. We do it this way because the P2P socket needs to
|
| + // be created on the same thread that the callbacks will be called on.
|
| + // The |remote_endpoint| is the address will be used when calling
|
| + // SendWithDscp on the P2PSocketClient.
|
| + // Takes ownership of socket_factory.
|
| + void SetSocketFactory(scoped_ptr<SocketFactory> socket_factory,
|
| + const net::IPEndPoint& remote_address);
|
| +
|
| // Start encoding of audio and video using the provided configuration.
|
| void StartAudio(const media::cast::AudioSenderConfig& config);
|
| void StartVideo(const media::cast::VideoSenderConfig& config);
|
|
|