summaryrefslogtreecommitdiff
path: root/chromium/chrome/renderer/media/cast_session.h
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/chrome/renderer/media/cast_session.h')
-rw-r--r--chromium/chrome/renderer/media/cast_session.h116
1 files changed, 0 insertions, 116 deletions
diff --git a/chromium/chrome/renderer/media/cast_session.h b/chromium/chrome/renderer/media/cast_session.h
deleted file mode 100644
index 6a3f79e04fd..00000000000
--- a/chromium/chrome/renderer/media/cast_session.h
+++ /dev/null
@@ -1,116 +0,0 @@
-// Copyright 2013 The Chromium Authors. All rights reserved.
-// Use of this source code is governed by a BSD-style license that can be
-// found in the LICENSE file.
-
-#ifndef CHROME_RENDERER_MEDIA_CAST_SESSION_H_
-#define CHROME_RENDERER_MEDIA_CAST_SESSION_H_
-
-#include <memory>
-#include <vector>
-
-#include "base/callback.h"
-#include "base/macros.h"
-#include "base/memory/ref_counted.h"
-#include "media/cast/cast_config.h"
-#include "net/base/ip_endpoint.h"
-
-namespace base {
-class DictionaryValue;
-class SingleThreadTaskRunner;
-class Value;
-} // namespace base
-
-namespace media {
-namespace cast {
-class AudioFrameInput;
-class VideoFrameInput;
-} // namespace cast
-} // namespace media
-
-class CastSessionDelegate;
-
-// This class represents a Cast session and allows the session to be
-// configured on the main thread. Actual work is forwarded to
-// CastSessionDelegate on the IO thread.
-class CastSession : public base::RefCounted<CastSession> {
- public:
- using AudioFrameInputAvailableCallback =
- base::Callback<void(const scoped_refptr<media::cast::AudioFrameInput>&)>;
- using VideoFrameInputAvailableCallback =
- base::Callback<void(const scoped_refptr<media::cast::VideoFrameInput>&)>;
- using SendPacketCallback = base::Callback<void(const std::vector<char>&)>;
- using EventLogsCallback = base::Callback<void(std::unique_ptr<base::Value>)>;
- using StatsCallback =
- base::Callback<void(std::unique_ptr<base::DictionaryValue>)>;
- // TODO(crbug.com/1007641): remove ErrorCallback and rename ErrorOnceCallback
- // once all occurrences of base::Callback have been removed.
- using ErrorCallback = base::Callback<void(const std::string&)>;
- using ErrorOnceCallback = base::OnceCallback<void(const std::string&)>;
-
- explicit CastSession(scoped_refptr<base::SingleThreadTaskRunner> task_runner);
-
- // Start encoding of audio and video using the provided configuration.
- //
- // When Cast sender is started and ready to be used
- // media::cast::FrameInput will be given through |callback|.
- // If it encounters an error, |error_callback| will be invoked with the
- // error message. Both |callback| and |error_callback| will be made on
- // the main thread.
- // |StartUDP()| must be called before these methods.
- void StartAudio(const media::cast::FrameSenderConfig& config,
- const AudioFrameInputAvailableCallback& callback,
- const ErrorCallback& error_callback);
- void StartVideo(const media::cast::FrameSenderConfig& config,
- const VideoFrameInputAvailableCallback& callback,
- const ErrorCallback& error_callback);
-
- // Start remoting a stream. |error_callback| will be invoked when any error
- // occurs. |StartUDP()| must be called before calling this method.
- void StartRemotingStream(int32_t stream_id,
- const media::cast::FrameSenderConfig& config,
- ErrorOnceCallback error_callback);
-
- // This will create the Cast transport and connect to |remote_endpoint|.
- // |options| is a dictionary which contain optional configuration for the
- // udp transport.
- // Must be called before initialization of audio or video.
- void StartUDP(const net::IPEndPoint& remote_endpoint,
- std::unique_ptr<base::DictionaryValue> options,
- const ErrorCallback& error_callback);
-
- // Creates or destroys event subscriber for the audio or video stream.
- // |is_audio|: true if the event subscriber is for audio. Video otherwise.
- // |enable|: If true, creates an event subscriber. Otherwise destroys
- // existing subscriber and discards logs.
- void ToggleLogging(bool is_audio, bool enable);
-
- // Returns raw event logs in serialized format for either the audio or video
- // stream since last call and returns result in |callback|. Also attaches
- // |extra_data| to the log.
- void GetEventLogsAndReset(bool is_audio,
- const std::string& extra_data, const EventLogsCallback& callback);
-
- // Returns stats in a DictionaryValue format for either the audio or video
- // stream since last call and returns result in |callback|.
- void GetStatsAndReset(bool is_audio, const StatsCallback& callback);
-
- private:
- friend class base::RefCounted<CastSession>;
- virtual ~CastSession();
-
- // This member should never be dereferenced on the main thread.
- // CastSessionDelegate lives only on the IO thread. It is always
- // safe to post task on the IO thread to access CastSessionDelegate
- // because it is owned by this object.
- std::unique_ptr<CastSessionDelegate> delegate_;
-
- // A main thread task runner that might execute JavaScript.
- const scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner_;
-
- // Proxy to the IO task runner.
- const scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_;
-
- DISALLOW_COPY_AND_ASSIGN(CastSession);
-};
-
-#endif // CHROME_RENDERER_MEDIA_CAST_SESSION_H_