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

Side by Side Diff: media/formats/webm/webm_stream_parser_unittest.cc

Issue 2815303006: Convert MediaLog from being ref counted to owned by WebMediaPlayer. (Closed)
Patch Set: Rebase. 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 | « media/formats/webm/webm_stream_parser.cc ('k') | media/formats/webm/webm_tracks_parser.h » ('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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 #include "media/formats/webm/webm_stream_parser.h" 5 #include "media/formats/webm/webm_stream_parser.h"
6 6
7 #include <memory> 7 #include <memory>
8 8
9 #include "base/bind.h" 9 #include "base/bind.h"
10 #include "media/base/decoder_buffer.h" 10 #include "media/base/decoder_buffer.h"
11 #include "media/base/demuxer.h" 11 #include "media/base/demuxer.h"
12 #include "media/base/media_tracks.h" 12 #include "media/base/media_tracks.h"
13 #include "media/base/mock_media_log.h" 13 #include "media/base/mock_media_log.h"
14 #include "media/base/stream_parser.h" 14 #include "media/base/stream_parser.h"
15 #include "media/base/test_data_util.h" 15 #include "media/base/test_data_util.h"
16 #include "media/base/text_track_config.h" 16 #include "media/base/text_track_config.h"
17 #include "testing/gtest/include/gtest/gtest.h" 17 #include "testing/gtest/include/gtest/gtest.h"
18 18
19 using testing::SaveArg; 19 using testing::SaveArg;
20 using testing::_; 20 using testing::_;
21 21
22 namespace media { 22 namespace media {
23 23
24 class WebMStreamParserTest : public testing::Test { 24 class WebMStreamParserTest : public testing::Test {
25 public: 25 public:
26 WebMStreamParserTest() 26 WebMStreamParserTest() {}
27 : media_log_(new testing::StrictMock<MockMediaLog>()) {}
28 27
29 protected: 28 protected:
30 void ParseWebMFile(const std::string& filename, 29 void ParseWebMFile(const std::string& filename,
31 const StreamParser::InitParameters& expected_params) { 30 const StreamParser::InitParameters& expected_params) {
32 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile(filename); 31 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile(filename);
33 parser_.reset(new WebMStreamParser()); 32 parser_.reset(new WebMStreamParser());
34 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = 33 Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb =
35 base::Bind(&WebMStreamParserTest::OnEncryptedMediaInitData, 34 base::Bind(&WebMStreamParserTest::OnEncryptedMediaInitData,
36 base::Unretained(this)); 35 base::Unretained(this));
37 36
38 EXPECT_CALL(*this, InitCB(_)); 37 EXPECT_CALL(*this, InitCB(_));
39 EXPECT_CALL(*this, NewMediaSegmentCB()).Times(testing::AnyNumber()); 38 EXPECT_CALL(*this, NewMediaSegmentCB()).Times(testing::AnyNumber());
40 EXPECT_CALL(*this, EndMediaSegmentCB()).Times(testing::AnyNumber()); 39 EXPECT_CALL(*this, EndMediaSegmentCB()).Times(testing::AnyNumber());
41 EXPECT_CALL(*this, NewBuffersCB(_)) 40 EXPECT_CALL(*this, NewBuffersCB(_))
42 .Times(testing::AnyNumber()) 41 .Times(testing::AnyNumber())
43 .WillRepeatedly(testing::Return(true)); 42 .WillRepeatedly(testing::Return(true));
44 parser_->Init( 43 parser_->Init(
45 base::Bind(&WebMStreamParserTest::InitF, base::Unretained(this), 44 base::Bind(&WebMStreamParserTest::InitF, base::Unretained(this),
46 expected_params), 45 expected_params),
47 base::Bind(&WebMStreamParserTest::NewConfigCB, base::Unretained(this)), 46 base::Bind(&WebMStreamParserTest::NewConfigCB, base::Unretained(this)),
48 base::Bind(&WebMStreamParserTest::NewBuffersCB, base::Unretained(this)), 47 base::Bind(&WebMStreamParserTest::NewBuffersCB, base::Unretained(this)),
49 false, // don't ignore_text_track 48 false, // don't ignore_text_track
50 encrypted_media_init_data_cb, 49 encrypted_media_init_data_cb,
51 base::Bind(&WebMStreamParserTest::NewMediaSegmentCB, 50 base::Bind(&WebMStreamParserTest::NewMediaSegmentCB,
52 base::Unretained(this)), 51 base::Unretained(this)),
53 base::Bind(&WebMStreamParserTest::EndMediaSegmentCB, 52 base::Bind(&WebMStreamParserTest::EndMediaSegmentCB,
54 base::Unretained(this)), 53 base::Unretained(this)),
55 media_log_); 54 &media_log_);
56 bool result = parser_->Parse(buffer->data(), buffer->data_size()); 55 bool result = parser_->Parse(buffer->data(), buffer->data_size());
57 EXPECT_TRUE(result); 56 EXPECT_TRUE(result);
58 } 57 }
59 58
60 // Verifies only the detected track counts by track type, then chains to the 59 // Verifies only the detected track counts by track type, then chains to the
61 // InitCB mock. 60 // InitCB mock.
62 void InitF(const StreamParser::InitParameters& expected_params, 61 void InitF(const StreamParser::InitParameters& expected_params,
63 const StreamParser::InitParameters& params) { 62 const StreamParser::InitParameters& params) {
64 EXPECT_EQ(expected_params.detected_audio_track_count, 63 EXPECT_EQ(expected_params.detected_audio_track_count,
65 params.detected_audio_track_count); 64 params.detected_audio_track_count);
(...skipping 13 matching lines...) Expand all
79 return true; 78 return true;
80 } 79 }
81 80
82 MOCK_METHOD1(NewBuffersCB, bool(const StreamParser::BufferQueueMap&)); 81 MOCK_METHOD1(NewBuffersCB, bool(const StreamParser::BufferQueueMap&));
83 MOCK_METHOD2(OnEncryptedMediaInitData, 82 MOCK_METHOD2(OnEncryptedMediaInitData,
84 void(EmeInitDataType init_data_type, 83 void(EmeInitDataType init_data_type,
85 const std::vector<uint8_t>& init_data)); 84 const std::vector<uint8_t>& init_data));
86 MOCK_METHOD0(NewMediaSegmentCB, void()); 85 MOCK_METHOD0(NewMediaSegmentCB, void());
87 MOCK_METHOD0(EndMediaSegmentCB, void()); 86 MOCK_METHOD0(EndMediaSegmentCB, void());
88 87
89 scoped_refptr<testing::StrictMock<MockMediaLog>> media_log_; 88 testing::StrictMock<MockMediaLog> media_log_;
90 std::unique_ptr<WebMStreamParser> parser_; 89 std::unique_ptr<WebMStreamParser> parser_;
91 std::unique_ptr<MediaTracks> media_tracks_; 90 std::unique_ptr<MediaTracks> media_tracks_;
92 }; 91 };
93 92
94 TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) { 93 TEST_F(WebMStreamParserTest, VerifyMediaTrackMetadata) {
95 EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration")) 94 EXPECT_MEDIA_LOG(testing::HasSubstr("Estimating WebM block duration"))
96 .Times(testing::AnyNumber()); 95 .Times(testing::AnyNumber());
97 StreamParser::InitParameters params(kInfiniteDuration); 96 StreamParser::InitParameters params(kInfiniteDuration);
98 params.detected_audio_track_count = 1; 97 params.detected_audio_track_count = 1;
99 params.detected_video_track_count = 1; 98 params.detected_video_track_count = 1;
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
187 EXPECT_FLOAT_EQ(mmdata.primary_g.y(), 0.2f); 186 EXPECT_FLOAT_EQ(mmdata.primary_g.y(), 0.2f);
188 EXPECT_FLOAT_EQ(mmdata.primary_b.x(), 0.1f); 187 EXPECT_FLOAT_EQ(mmdata.primary_b.x(), 0.1f);
189 EXPECT_FLOAT_EQ(mmdata.primary_b.y(), 0.2f); 188 EXPECT_FLOAT_EQ(mmdata.primary_b.y(), 0.2f);
190 EXPECT_FLOAT_EQ(mmdata.white_point.x(), 0.1f); 189 EXPECT_FLOAT_EQ(mmdata.white_point.x(), 0.1f);
191 EXPECT_FLOAT_EQ(mmdata.white_point.y(), 0.2f); 190 EXPECT_FLOAT_EQ(mmdata.white_point.y(), 0.2f);
192 EXPECT_EQ(mmdata.luminance_max, 40); 191 EXPECT_EQ(mmdata.luminance_max, 40);
193 EXPECT_EQ(mmdata.luminance_min, 30); 192 EXPECT_EQ(mmdata.luminance_min, 30);
194 } 193 }
195 194
196 } // namespace media 195 } // namespace media
OLDNEW
« no previous file with comments | « media/formats/webm/webm_stream_parser.cc ('k') | media/formats/webm/webm_tracks_parser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698