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

Side by Side Diff: media/blink/webmediaplayer_impl.h

Issue 2810333007: [Video] Record the results of background video optimization checks.
Patch Set: Created 3 years, 8 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
« no previous file with comments | « no previous file | media/blink/webmediaplayer_impl.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ 5 #ifndef MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_
6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ 6 #define MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_
7 7
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <memory> 10 #include <memory>
(...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after
451 // Return the pipeline media duration or the value overridden by tests. 451 // Return the pipeline media duration or the value overridden by tests.
452 base::TimeDelta GetPipelineMediaDuration() const; 452 base::TimeDelta GetPipelineMediaDuration() const;
453 453
454 void ReportTimeFromForegroundToFirstFrame(base::TimeTicks foreground_time, 454 void ReportTimeFromForegroundToFirstFrame(base::TimeTicks foreground_time,
455 base::TimeTicks new_frame_time); 455 base::TimeTicks new_frame_time);
456 456
457 // Records |duration| to the appropriate metric based on whether we're 457 // Records |duration| to the appropriate metric based on whether we're
458 // handling a src= or MSE based playback. 458 // handling a src= or MSE based playback.
459 void RecordUnderflowDuration(base::TimeDelta duration); 459 void RecordUnderflowDuration(base::TimeDelta duration);
460 460
461 // Indicates why ShouldPauseVideoWhenHidden() or
462 // ShouldDisableVideoWhenHidden() failed or succeeded for metrics recording.
463 // Must be in sync with the MediaBackgroundOptimizationCandidacyResult enum
464 // in histograms.xml.
465 enum BackgroundOptimizationResult {
466 // Was optimized because shorter than the threshold.
467 SUCCESS_FOR_DURATION,
468 // Was optimized because keyframe distance is shorter than the threshold.
469 SUCCESS_FOR_KEYFRAME_DISTANCE,
470 // Was optimized because it doesn't have audio ignoring the threshold.
471 SUCCESS_FOR_VIDEO_ONLY,
472 // Wasn't optimized because keyframe distance is too big.
473 FAIL_FOR_KEYFRAME_DISTANCE,
474 // Wasn't optimized because is being played remotely.
475 FAIL_FOR_REMOTE,
476 // Wasn't optimized because is a streaming video.
477 FAIL_FOR_STREAMING,
478
479 // Must be the last item and set to the previous item's value.
480 RESULT_MAX = FAIL_FOR_STREAMING
481 };
482
483 // Reports the result of each background optimization check.
484 // Figures the right bucket based on whether the video has audio or not.
485 void ReportBackgroundOptimizationResult(
486 BackgroundOptimizationResult result) const;
487
461 blink::WebLocalFrame* frame_; 488 blink::WebLocalFrame* frame_;
462 489
463 // The playback state last reported to |delegate_|, to avoid setting duplicate 490 // The playback state last reported to |delegate_|, to avoid setting duplicate
464 // states. 491 // states.
465 // TODO(sandersd): The delegate should be implementing deduplication. 492 // TODO(sandersd): The delegate should be implementing deduplication.
466 DelegateState delegate_state_; 493 DelegateState delegate_state_;
467 bool delegate_has_audio_; 494 bool delegate_has_audio_;
468 495
469 blink::WebMediaPlayer::NetworkState network_state_; 496 blink::WebMediaPlayer::NetworkState network_state_;
470 blink::WebMediaPlayer::ReadyState ready_state_; 497 blink::WebMediaPlayer::ReadyState ready_state_;
(...skipping 249 matching lines...) Expand 10 before | Expand all | Expand 10 after
720 base::TimeDelta last_uploaded_frame_timestamp_; 747 base::TimeDelta last_uploaded_frame_timestamp_;
721 748
722 base::CancelableCallback<void(base::TimeTicks)> frame_time_report_cb_; 749 base::CancelableCallback<void(base::TimeTicks)> frame_time_report_cb_;
723 750
724 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl); 751 DISALLOW_COPY_AND_ASSIGN(WebMediaPlayerImpl);
725 }; 752 };
726 753
727 } // namespace media 754 } // namespace media
728 755
729 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_ 756 #endif // MEDIA_BLINK_WEBMEDIAPLAYER_IMPL_H_
OLDNEW
« no previous file with comments | « no previous file | media/blink/webmediaplayer_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698