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

Unified Diff: content/renderer/media/media_stream_video_source.cc

Issue 617093003: Add MediaStreamSource frame rate calculation to the tracker. Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Adding type name. Fixing IPC type problem. Created 6 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 side-by-side diff with in-line comments
Download patch
Index: content/renderer/media/media_stream_video_source.cc
diff --git a/content/renderer/media/media_stream_video_source.cc b/content/renderer/media/media_stream_video_source.cc
index 6855adef140df2741e1e20096f92b6a480b4a379..c8e0c0c47244a6f35784d3490a9170751e0d867e 100644
--- a/content/renderer/media/media_stream_video_source.cc
+++ b/content/renderer/media/media_stream_video_source.cc
@@ -12,8 +12,10 @@
#include "base/logging.h"
#include "base/strings/string_number_conversions.h"
#include "content/child/child_process.h"
+#include "content/renderer/render_thread_impl.h"
#include "content/renderer/media/media_stream_constraints_util.h"
#include "content/renderer/media/media_stream_video_track.h"
+#include "content/renderer/media/peer_connection_tracker.h"
#include "content/renderer/media/video_track_adapter.h"
namespace content {
@@ -458,7 +460,6 @@ void MediaStreamVideoSource::DoStopSource() {
DVLOG(3) << "DoStopSource()";
if (state_ == ENDED)
return;
- track_adapter_->StopFrameMonitoring();
StopSourceImpl();
state_ = ENDED;
SetReadyState(blink::WebMediaStreamSource::ReadyStateEnded);
@@ -529,7 +530,7 @@ void MediaStreamVideoSource::OnStartDone(MediaStreamRequestResult result) {
track_adapter_->StartFrameMonitoring(
current_format_.frame_rate,
- base::Bind(&MediaStreamVideoSource::SetMutedState,
+ base::Bind(&MediaStreamVideoSource::OnFrameRateCallback,
weak_factory_.GetWeakPtr()));
} else {
@@ -541,6 +542,10 @@ void MediaStreamVideoSource::OnStartDone(MediaStreamRequestResult result) {
FinalizeAddTrack();
}
+std::string MediaStreamVideoSource::TypeName() const {
+ return "";
+}
+
void MediaStreamVideoSource::FinalizeAddTrack() {
DCHECK(CalledOnValidThread());
media::VideoCaptureFormats formats;
@@ -600,13 +605,28 @@ void MediaStreamVideoSource::SetReadyState(
}
}
-void MediaStreamVideoSource::SetMutedState(bool muted_state) {
- DVLOG(3) << "MediaStreamVideoSource::SetMutedState state=" << muted_state;
+void MediaStreamVideoSource::OnFrameRateCallback(float framerate,
+ int dropped_frames) {
DCHECK(CalledOnValidThread());
- if (!owner().isNull()) {
- owner().setReadyState(muted_state
- ? blink::WebMediaStreamSource::ReadyStateMuted
- : blink::WebMediaStreamSource::ReadyStateLive);
+ if (owner().isNull())
+ return;
+ if(owner().readyState() == blink::WebMediaStreamSource::ReadyStateEnded) {
+ track_adapter_->StopFrameMonitoring();
+ return;
+ }
+
+ owner().setReadyState(framerate == 0
+ ? blink::WebMediaStreamSource::ReadyStateMuted
+ : blink::WebMediaStreamSource::ReadyStateLive);
+ const std::string id = TypeName() + " " + owner().name().utf8();
+ DVLOG(3) << "MediaStreamVideoSource::OnFrameRateCallback "
+ << id << " framerate="
+ << framerate << " dropped_frames=" << dropped_frames
+ << " readyState "<< owner().readyState();
+ if (RenderThreadImpl::current()) {
+ const std::string id = TypeName() + " " + owner().name().utf8();
+ RenderThreadImpl::current()->peer_connection_tracker()->TrackAddVideoStats(
+ id, framerate, dropped_frames);
}
}
« no previous file with comments | « content/renderer/media/media_stream_video_source.h ('k') | content/renderer/media/mock_media_stream_video_source.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698