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

Side by Side Diff: media/filters/chunk_demuxer_unittest.cc

Issue 23702007: Render inband text tracks in the media pipeline (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: incorporate aaron's comments (10/16) Created 7 years, 2 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 <algorithm> 5 #include <algorithm>
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/message_loop/message_loop.h" 8 #include "base/message_loop/message_loop.h"
9 #include "base/strings/string_number_conversions.h" 9 #include "base/strings/string_number_conversions.h"
10 #include "base/strings/string_split.h" 10 #include "base/strings/string_split.h"
(...skipping 141 matching lines...) Expand 10 before | Expand all | Expand 10 after
152 152
153 ChunkDemuxerTest() { 153 ChunkDemuxerTest() {
154 CreateNewDemuxer(); 154 CreateNewDemuxer();
155 } 155 }
156 156
157 void CreateNewDemuxer() { 157 void CreateNewDemuxer() {
158 base::Closure open_cb = 158 base::Closure open_cb =
159 base::Bind(&ChunkDemuxerTest::DemuxerOpened, base::Unretained(this)); 159 base::Bind(&ChunkDemuxerTest::DemuxerOpened, base::Unretained(this));
160 Demuxer::NeedKeyCB need_key_cb = 160 Demuxer::NeedKeyCB need_key_cb =
161 base::Bind(&ChunkDemuxerTest::DemuxerNeedKey, base::Unretained(this)); 161 base::Bind(&ChunkDemuxerTest::DemuxerNeedKey, base::Unretained(this));
162 AddTextTrackCB add_text_track_cb =
163 base::Bind(&ChunkDemuxerTest::OnTextTrack, base::Unretained(this));
164 demuxer_.reset(new ChunkDemuxer(open_cb, need_key_cb, 162 demuxer_.reset(new ChunkDemuxer(open_cb, need_key_cb,
165 add_text_track_cb, LogCB())); 163 true, LogCB()));
166 } 164 }
167 165
168 virtual ~ChunkDemuxerTest() { 166 virtual ~ChunkDemuxerTest() {
169 ShutdownDemuxer(); 167 ShutdownDemuxer();
170 } 168 }
171 169
172 void CreateInitSegment(bool has_audio, bool has_video, 170 void CreateInitSegment(bool has_audio, bool has_video,
173 bool is_audio_encrypted, bool is_video_encrypted, 171 bool is_audio_encrypted, bool is_video_encrypted,
174 scoped_ptr<uint8[]>* buffer, 172 scoped_ptr<uint8[]>* buffer,
175 int* size) { 173 int* size) {
(...skipping 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
854 // (http://code.google.com/p/googletest/issues/detail?id=395) or when we use 852 // (http://code.google.com/p/googletest/issues/detail?id=395) or when we use
855 // std::string instead of scoped_ptr<uint8[]> (http://crbug.com/130689). 853 // std::string instead of scoped_ptr<uint8[]> (http://crbug.com/130689).
856 MOCK_METHOD3(NeedKeyMock, void(const std::string& type, 854 MOCK_METHOD3(NeedKeyMock, void(const std::string& type,
857 const uint8* init_data, int init_data_size)); 855 const uint8* init_data, int init_data_size));
858 void DemuxerNeedKey(const std::string& type, 856 void DemuxerNeedKey(const std::string& type,
859 const std::vector<uint8>& init_data) { 857 const std::vector<uint8>& init_data) {
860 const uint8* init_data_ptr = init_data.empty() ? NULL : &init_data[0]; 858 const uint8* init_data_ptr = init_data.empty() ? NULL : &init_data[0];
861 NeedKeyMock(type, init_data_ptr, init_data.size()); 859 NeedKeyMock(type, init_data_ptr, init_data.size());
862 } 860 }
863 861
864 scoped_ptr<TextTrack> OnTextTrack(TextKind kind,
865 const std::string& label,
866 const std::string& language) {
867 return scoped_ptr<TextTrack>();
868 }
869
870 void Seek(base::TimeDelta seek_time) { 862 void Seek(base::TimeDelta seek_time) {
871 demuxer_->StartWaitingForSeek(seek_time); 863 demuxer_->StartWaitingForSeek(seek_time);
872 demuxer_->Seek(seek_time, NewExpectedStatusCB(PIPELINE_OK)); 864 demuxer_->Seek(seek_time, NewExpectedStatusCB(PIPELINE_OK));
873 message_loop_.RunUntilIdle(); 865 message_loop_.RunUntilIdle();
874 } 866 }
875 867
876 void MarkEndOfStream(PipelineStatus status) { 868 void MarkEndOfStream(PipelineStatus status) {
877 demuxer_->MarkEndOfStream(status); 869 demuxer_->MarkEndOfStream(status);
878 message_loop_.RunUntilIdle(); 870 message_loop_.RunUntilIdle();
879 } 871 }
(...skipping 1727 matching lines...) Expand 10 before | Expand all | Expand 10 after
2607 2599
2608 TEST_F(ChunkDemuxerTest, StartWaitingForSeekAfterParseError) { 2600 TEST_F(ChunkDemuxerTest, StartWaitingForSeekAfterParseError) {
2609 ASSERT_TRUE(InitDemuxer(true, true)); 2601 ASSERT_TRUE(InitDemuxer(true, true));
2610 EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE)); 2602 EXPECT_CALL(host_, OnDemuxerError(PIPELINE_ERROR_DECODE));
2611 AppendGarbage(); 2603 AppendGarbage();
2612 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(50); 2604 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(50);
2613 demuxer_->StartWaitingForSeek(seek_time); 2605 demuxer_->StartWaitingForSeek(seek_time);
2614 } 2606 }
2615 2607
2616 } // namespace media 2608 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698