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

Unified Diff: media/filters/ffmpeg_demuxer.cc

Issue 1811413004: media: Record counts of detected src= audio, video, and text tracks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Note the fix to DetectedAudio/VideoCodecHash UMA in their histogram summaries Created 4 years, 9 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
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/filters/ffmpeg_demuxer.cc
diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
index 1d8361b4974eccb02e35e08b352345868d9ca14d..16735f0031c108b2373fe48d4cda08c645f10c29 100644
--- a/media/filters/ffmpeg_demuxer.cc
+++ b/media/filters/ffmpeg_demuxer.cc
@@ -114,6 +114,16 @@ static void UmaHistogramAspectRatio(const char* name, const T& size) {
kCommonAspectRatios100, arraysize(kCommonAspectRatios100)));
}
+// Record detected track counts by type corresponding to a src= playback.
+// Counts are split into 50 buckets, capped into [0,100] range.
+static void RecordDetectedTrackTypeStats(int audio_count,
+ int video_count,
+ int text_count) {
+ UMA_HISTOGRAM_COUNTS_100("Media.DetectedTrackCount.Audio", audio_count);
+ UMA_HISTOGRAM_COUNTS_100("Media.DetectedTrackCount.Video", video_count);
+ UMA_HISTOGRAM_COUNTS_100("Media.DetectedTrackCount.Text", text_count);
+}
+
// Record audio decoder config UMA stats corresponding to a src= playback.
static void RecordAudioCodecStats(const AudioDecoderConfig& audio_config) {
UMA_HISTOGRAM_ENUMERATION("Media.AudioCodec", audio_config.codec(),
@@ -1100,19 +1110,30 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
start_time_ = kInfiniteDuration();
base::TimeDelta max_duration;
+ int detected_audio_track_count = 0;
+ int detected_video_track_count = 0;
+ int detected_text_track_count = 0;
for (size_t i = 0; i < format_context->nb_streams; ++i) {
AVStream* stream = format_context->streams[i];
const AVCodecContext* codec_context = stream->codec;
const AVMediaType codec_type = codec_context->codec_type;
if (codec_type == AVMEDIA_TYPE_AUDIO) {
- if (audio_stream)
- continue;
-
- // Log the codec detected, whether it is supported or not.
+ // Log the codec detected, whether it is supported or not, and whether or
+ // not we have already detected a supported codec in another stream.
UMA_HISTOGRAM_SPARSE_SLOWLY("Media.DetectedAudioCodecHash",
HashCodecName(GetCodecName(codec_context)));
+ detected_audio_track_count++;
+
+ if (audio_stream)
+ continue;
} else if (codec_type == AVMEDIA_TYPE_VIDEO) {
+ // Log the codec detected, whether it is supported or not, and whether or
+ // not we have already detected a supported codec in another stream.
+ UMA_HISTOGRAM_SPARSE_SLOWLY("Media.DetectedVideoCodecHash",
+ HashCodecName(GetCodecName(codec_context)));
+ detected_video_track_count++;
+
if (video_stream)
continue;
@@ -1137,10 +1158,8 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
}
}
#endif
- // Log the codec detected, whether it is supported or not.
- UMA_HISTOGRAM_SPARSE_SLOWLY("Media.DetectedVideoCodecHash",
- HashCodecName(GetCodecName(codec_context)));
} else if (codec_type == AVMEDIA_TYPE_SUBTITLE) {
+ detected_text_track_count++;
if (codec_context->codec_id != AV_CODEC_ID_WEBVTT || !text_enabled_) {
continue;
}
@@ -1218,6 +1237,10 @@ void FFmpegDemuxer::OnFindStreamInfoDone(const PipelineStatusCB& status_cb,
}
}
+ RecordDetectedTrackTypeStats(detected_audio_track_count,
+ detected_video_track_count,
+ detected_text_track_count);
+
if (!audio_stream && !video_stream) {
MEDIA_LOG(ERROR, media_log_) << GetDisplayName()
<< ": no supported streams";
« no previous file with comments | « no previous file | tools/metrics/histograms/histograms.xml » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698