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

Unified Diff: media/filters/pipeline_integration_test.cc

Issue 195973006: Allow StreamParsers to request automatic timestampOffset updates. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Unittest. Created 6 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/filters/pipeline_integration_test.cc
diff --git a/media/filters/pipeline_integration_test.cc b/media/filters/pipeline_integration_test.cc
index eddf00e924a553df282d8fb2b367150a625267be..0bf998da0cf3b786cec0cb1161ac9f1d5ba7b9a2 100644
--- a/media/filters/pipeline_integration_test.cc
+++ b/media/filters/pipeline_integration_test.cc
@@ -305,15 +305,17 @@ class MockMediaSource {
kSourceId, file_data_->data() + current_position_, size,
base::TimeDelta(), kInfiniteDuration(), &timestamp_offset);
current_position_ += size;
+ last_timestamp_offset_ = timestamp_offset;
}
- void AppendAtTime(const base::TimeDelta& timestampOffset,
- const uint8* pData, int size) {
- base::TimeDelta timestamp_offset = timestampOffset;
+ void AppendAtTime(base::TimeDelta timestamp_offset,
+ const uint8* pData,
+ int size) {
CHECK(!chunk_demuxer_->IsParsingMediaSegment(kSourceId));
chunk_demuxer_->AppendData(kSourceId, pData, size,
base::TimeDelta(), kInfiniteDuration(),
&timestamp_offset);
+ last_timestamp_offset_ = timestamp_offset;
}
void EndOfStream() {
@@ -369,6 +371,10 @@ class MockMediaSource {
need_key_cb_.Run(type, init_data);
}
+ base::TimeDelta last_timestamp_offset() const {
+ return last_timestamp_offset_;
+ }
+
private:
base::FilePath file_path_;
scoped_refptr<DecoderBuffer> file_data_;
@@ -378,6 +384,7 @@ class MockMediaSource {
ChunkDemuxer* chunk_demuxer_;
scoped_ptr<Demuxer> owned_chunk_demuxer_;
Demuxer::NeedKeyCB need_key_cb_;
+ base::TimeDelta last_timestamp_offset_;
};
class PipelineIntegrationTest
@@ -725,6 +732,23 @@ TEST_F(PipelineIntegrationTest, MediaSource_MP3) {
EXPECT_TRUE(WaitUntilOnEnded());
}
+TEST_F(PipelineIntegrationTest, MediaSource_MP3_TimestampOffset) {
+ MockMediaSource source("sfx.mp3", kMP3, kAppendWholeFile);
+ StartPipelineWithMediaSource(&source);
+ EXPECT_EQ(339, source.last_timestamp_offset().InMilliseconds());
+
+ scoped_refptr<DecoderBuffer> second_file = ReadTestDataFile("sfx.mp3");
+ source.AppendAtTime(base::TimeDelta::FromMilliseconds(-10),
+ second_file->data(),
+ second_file->data_size());
+ EXPECT_EQ(669, source.last_timestamp_offset().InMilliseconds());
+ ASSERT_EQ(1u, pipeline_->GetBufferedTimeRanges().size());
+ source.EndOfStream();
+
+ Play();
+
+ EXPECT_TRUE(WaitUntilOnEnded());
+}
TEST_F(PipelineIntegrationTest, MediaSource_MP3_Icecast) {
MockMediaSource source("icy_sfx.mp3", kMP3, kAppendWholeFile);

Powered by Google App Engine
This is Rietveld 408576698