| Index: content/renderer/media/video_track_adapter.h
|
| diff --git a/content/renderer/media/video_track_adapter.h b/content/renderer/media/video_track_adapter.h
|
| index 0df314d279933fcd6bccb8623a051f845dec71b1..c26ca142981f7335469c4af6d2240d3279495208 100644
|
| --- a/content/renderer/media/video_track_adapter.h
|
| +++ b/content/renderer/media/video_track_adapter.h
|
| @@ -27,6 +27,8 @@ namespace content {
|
| class VideoTrackAdapter
|
| : public base::RefCountedThreadSafe<VideoTrackAdapter> {
|
| public:
|
| + typedef base::Callback<void(bool mute_state)> OnMutedCallback;
|
| +
|
| explicit VideoTrackAdapter(
|
| const scoped_refptr<base::MessageLoopProxy>& io_message_loop);
|
|
|
| @@ -34,12 +36,16 @@ class VideoTrackAdapter
|
| // a resolution within the boundaries of the arguments.
|
| // Must be called on the main render thread. |frame_callback| is guaranteed to
|
| // be released on the main render thread.
|
| + // |source_frame_rate| is used to calculate a prudent interval to check for
|
| + // passing frames and inform of the result via |on_muted_state_callback|.
|
| void AddTrack(const MediaStreamVideoTrack* track,
|
| VideoCaptureDeliverFrameCB frame_callback,
|
| int max_width, int max_height,
|
| double min_aspect_ratio,
|
| double max_aspect_ratio,
|
| - double max_frame_rate);
|
| + double max_frame_rate,
|
| + double source_frame_rate,
|
| + const OnMutedCallback& on_muted_state_callback);
|
| void RemoveTrack(const MediaStreamVideoTrack* track);
|
|
|
| // Delivers |frame| to all tracks that have registered a callback.
|
| @@ -67,6 +73,15 @@ class VideoTrackAdapter
|
| double max_frame_rate);
|
| void RemoveTrackOnIO(const MediaStreamVideoTrack* track);
|
|
|
| + void StartTrackMonitoringOnIO(
|
| + const OnMutedCallback& on_muted_state_callback,
|
| + double source_frame_rate);
|
| +
|
| + // Compare |frame_counter_snapshot| with the current |frame_counter_|, and
|
| + // inform of the situation (muted, not muted) via |set_muted_state_callback|.
|
| + void CheckFramesReceivedOnIO(const OnMutedCallback& set_muted_state_callback,
|
| + uint64 old_frame_counter_snapshot);
|
| +
|
| // |thread_checker_| is bound to the main render thread.
|
| base::ThreadChecker thread_checker_;
|
|
|
| @@ -84,6 +99,12 @@ class VideoTrackAdapter
|
| FrameAdapters;
|
| FrameAdapters adapters_;
|
|
|
| + // Running frame counter, accessed on the IO-thread.
|
| + uint64 frame_counter_;
|
| +
|
| + // Frame rate configured on the video source, accessed on the IO-thread.
|
| + float source_frame_rate_;
|
| +
|
| DISALLOW_COPY_AND_ASSIGN(VideoTrackAdapter);
|
| };
|
|
|
|
|