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

Unified Diff: media/formats/webm/webm_stream_parser_unittest.cc

Issue 1826583003: MSE: Record counts of detected MSE audio, video and text tracks (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebased, addressed all comments, includes basic webm and mp4 A/V/T detection tests 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
Index: media/formats/webm/webm_stream_parser_unittest.cc
diff --git a/media/formats/webm/webm_stream_parser_unittest.cc b/media/formats/webm/webm_stream_parser_unittest.cc
index 0386e8fb06125cc368a1664c3764bba8c4548d19..6f497166ed1037834773d70bb4cf1827700a9a28 100644
--- a/media/formats/webm/webm_stream_parser_unittest.cc
+++ b/media/formats/webm/webm_stream_parser_unittest.cc
@@ -6,11 +6,13 @@
#include "media/base/decoder_buffer.h"
#include "media/base/media_tracks.h"
#include "media/base/mock_media_log.h"
+#include "media/base/stream_parser.h"
#include "media/base/test_data_util.h"
#include "media/base/text_track_config.h"
#include "media/formats/webm/webm_stream_parser.h"
#include "testing/gtest/include/gtest/gtest.h"
+using testing::SaveArg;
using testing::_;
namespace media {
@@ -18,7 +20,8 @@ namespace media {
class WebMStreamParserTest : public testing::Test {
public:
WebMStreamParserTest()
- : media_log_(new testing::StrictMock<MockMediaLog>()) {}
+ : media_log_(new testing::StrictMock<MockMediaLog>()),
+ params_(base::TimeDelta()) {}
protected:
void ParseWebMFile(const std::string& filename) {
@@ -28,7 +31,7 @@ class WebMStreamParserTest : public testing::Test {
base::Bind(&WebMStreamParserTest::OnEncryptedMediaInitData,
base::Unretained(this));
- EXPECT_CALL(*this, InitCB(_));
+ EXPECT_CALL(*this, InitCB(_)).WillOnce(SaveArg<0>(&params_));
EXPECT_CALL(*this, NewMediaSegmentCB()).Times(testing::AnyNumber());
EXPECT_CALL(*this, EndMediaSegmentCB()).Times(testing::AnyNumber());
EXPECT_CALL(*this, NewBuffersCB(_, _, _))
@@ -38,7 +41,7 @@ class WebMStreamParserTest : public testing::Test {
base::Bind(&WebMStreamParserTest::InitCB, base::Unretained(this)),
base::Bind(&WebMStreamParserTest::NewConfigCB, base::Unretained(this)),
base::Bind(&WebMStreamParserTest::NewBuffersCB, base::Unretained(this)),
- true, // ignore_text_track
+ false, // don't ignore_text_track
encrypted_media_init_data_cb,
base::Bind(&WebMStreamParserTest::NewMediaSegmentCB,
base::Unretained(this)),
@@ -71,6 +74,7 @@ class WebMStreamParserTest : public testing::Test {
scoped_refptr<testing::StrictMock<MockMediaLog>> media_log_;
scoped_ptr<WebMStreamParser> parser_;
scoped_ptr<MediaTracks> media_tracks_;
+ StreamParser::InitParameters params_;
};
TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) {
@@ -96,4 +100,36 @@ TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) {
EXPECT_EQ(audio_track.language(), "und");
}
+TEST_F(WebMStreamParserTest, VerifyDetectedTrack_AudioOnly) {
+ EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration"))
+ .Times(testing::AnyNumber());
+ ParseWebMFile("bear-320x240-audio-only.webm");
+ EXPECT_EQ(media_tracks_->tracks().size(), 1u);
+ EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Audio);
+ EXPECT_EQ(params_.detected_audio_track_count, 1);
+ EXPECT_EQ(params_.detected_video_track_count, 0);
+ EXPECT_EQ(params_.detected_text_track_count, 0);
+}
+
+TEST_F(WebMStreamParserTest, VerifyDetectedTrack_VideoOnly) {
+ ParseWebMFile("bear-320x240-video-only.webm");
+ EXPECT_EQ(media_tracks_->tracks().size(), 1u);
+ EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Video);
+ EXPECT_EQ(params_.detected_audio_track_count, 0);
+ EXPECT_EQ(params_.detected_video_track_count, 1);
+ EXPECT_EQ(params_.detected_text_track_count, 0);
+}
+
+TEST_F(WebMStreamParserTest, VerifyDetectedTracks_AVText) {
+ EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration"))
+ .Times(testing::AnyNumber());
+ ParseWebMFile("bear-vp8-webvtt.webm");
+ EXPECT_EQ(media_tracks_->tracks().size(), 2u);
+ EXPECT_EQ(media_tracks_->tracks()[0]->type(), MediaTrack::Video);
+ EXPECT_EQ(media_tracks_->tracks()[1]->type(), MediaTrack::Audio);
+ EXPECT_EQ(params_.detected_audio_track_count, 1);
+ EXPECT_EQ(params_.detected_video_track_count, 1);
+ EXPECT_EQ(params_.detected_text_track_count, 1);
+}
+
} // namespace media

Powered by Google App Engine
This is Rietveld 408576698