Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(338)

Side by Side Diff: chrome/renderer/media/cast_session.h

Issue 2307653002: Adding CastRemotingSender for media remoting. (Closed)
Patch Set: Rebased. Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_RENDERER_MEDIA_CAST_SESSION_H_ 5 #ifndef CHROME_RENDERER_MEDIA_CAST_SESSION_H_
6 #define CHROME_RENDERER_MEDIA_CAST_SESSION_H_ 6 #define CHROME_RENDERER_MEDIA_CAST_SESSION_H_
7 7
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 21 matching lines...) Expand all
32 class P2PSocketClient; 32 class P2PSocketClient;
33 } // namespace content 33 } // namespace content
34 34
35 class CastSessionDelegate; 35 class CastSessionDelegate;
36 36
37 // This class represents a Cast session and allows the session to be 37 // This class represents a Cast session and allows the session to be
38 // configured on the main thread. Actual work is forwarded to 38 // configured on the main thread. Actual work is forwarded to
39 // CastSessionDelegate on the IO thread. 39 // CastSessionDelegate on the IO thread.
40 class CastSession : public base::RefCounted<CastSession> { 40 class CastSession : public base::RefCounted<CastSession> {
41 public: 41 public:
42 typedef base::Callback<void(const scoped_refptr< 42 using AudioFrameInputAvailableCallback =
43 media::cast::AudioFrameInput>&)> AudioFrameInputAvailableCallback; 43 base::Callback<void(const scoped_refptr<media::cast::AudioFrameInput>&)>;
44 typedef base::Callback<void(const scoped_refptr< 44 using VideoFrameInputAvailableCallback =
45 media::cast::VideoFrameInput>&)> VideoFrameInputAvailableCallback; 45 base::Callback<void(const scoped_refptr<media::cast::VideoFrameInput>&)>;
46 typedef base::Callback<void(const std::vector<char>&)> SendPacketCallback; 46 using SendPacketCallback = base::Callback<void(const std::vector<char>&)>;
47 typedef base::Callback<void(std::unique_ptr<base::BinaryValue>)> 47 using EventLogsCallback =
48 EventLogsCallback; 48 base::Callback<void(std::unique_ptr<base::BinaryValue>)>;
49 typedef base::Callback<void(std::unique_ptr<base::DictionaryValue>)> 49 using StatsCallback =
50 StatsCallback; 50 base::Callback<void(std::unique_ptr<base::DictionaryValue>)>;
51 typedef base::Callback<void(const std::string&)> ErrorCallback; 51 using ErrorCallback = base::Callback<void(const std::string&)>;
52 52
53 CastSession(); 53 CastSession();
54 54
55 // Start encoding of audio and video using the provided configuration. 55 // Start encoding of audio and video using the provided configuration.
56 // 56 //
57 // When Cast sender is started and ready to be used 57 // When Cast sender is started and ready to be used
58 // media::cast::FrameInput will be given through |callback|. 58 // media::cast::FrameInput will be given through |callback|.
59 // If it encounters an error, |error_callback| will be invoked with the 59 // If it encounters an error, |error_callback| will be invoked with the
60 // error message. Both |callback| and |error_callback| will be made on 60 // error message. Both |callback| and |error_callback| will be made on
61 // the main thread. 61 // the main thread.
62 // |StartUDP()| must be called before these methods. 62 // |StartUDP()| must be called before these methods.
63 void StartAudio(const media::cast::FrameSenderConfig& config, 63 void StartAudio(const media::cast::FrameSenderConfig& config,
64 const AudioFrameInputAvailableCallback& callback, 64 const AudioFrameInputAvailableCallback& callback,
65 const ErrorCallback& error_callback); 65 const ErrorCallback& error_callback);
66 void StartVideo(const media::cast::FrameSenderConfig& config, 66 void StartVideo(const media::cast::FrameSenderConfig& config,
67 const VideoFrameInputAvailableCallback& callback, 67 const VideoFrameInputAvailableCallback& callback,
68 const ErrorCallback& error_callback); 68 const ErrorCallback& error_callback);
69 69
70 // Start remoting a stream. |error_callback| will be invoked when any error
71 // occurs. |StartUDP()| must be called before calling this method.
72 void StartRemotingStream(int32_t stream_id,
73 const media::cast::FrameSenderConfig& config,
74 const ErrorCallback& error_callback);
75
70 // This will create the Cast transport and connect to |remote_endpoint|. 76 // This will create the Cast transport and connect to |remote_endpoint|.
71 // |options| is a dictionary which contain optional configuration for the 77 // |options| is a dictionary which contain optional configuration for the
72 // udp transport. 78 // udp transport.
73 // Must be called before initialization of audio or video. 79 // Must be called before initialization of audio or video.
74 void StartUDP(const net::IPEndPoint& remote_endpoint, 80 void StartUDP(const net::IPEndPoint& remote_endpoint,
75 std::unique_ptr<base::DictionaryValue> options, 81 std::unique_ptr<base::DictionaryValue> options,
76 const ErrorCallback& error_callback); 82 const ErrorCallback& error_callback);
77 83
78 // Creates or destroys event subscriber for the audio or video stream. 84 // Creates or destroys event subscriber for the audio or video stream.
79 // |is_audio|: true if the event subscriber is for audio. Video otherwise. 85 // |is_audio|: true if the event subscriber is for audio. Video otherwise.
(...skipping 21 matching lines...) Expand all
101 // because it is owned by this object. 107 // because it is owned by this object.
102 std::unique_ptr<CastSessionDelegate> delegate_; 108 std::unique_ptr<CastSessionDelegate> delegate_;
103 109
104 // Proxy to the IO task runner. 110 // Proxy to the IO task runner.
105 const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; 111 const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
106 112
107 DISALLOW_COPY_AND_ASSIGN(CastSession); 113 DISALLOW_COPY_AND_ASSIGN(CastSession);
108 }; 114 };
109 115
110 #endif // CHROME_RENDERER_MEDIA_CAST_SESSION_H_ 116 #endif // CHROME_RENDERER_MEDIA_CAST_SESSION_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698