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

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

Issue 575643002: Initialize media timeline correctly for positive start times. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments. Created 6 years, 3 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/filters/ffmpeg_demuxer_unittest.cc ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "media/filters/pipeline_integration_test_base.h" 5 #include "media/filters/pipeline_integration_test_base.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/command_line.h" 8 #include "base/command_line.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
(...skipping 1545 matching lines...) Expand 10 before | Expand all | Expand 10 after
1556 ->audio_decoder_config() 1556 ->audio_decoder_config()
1557 .samples_per_second()); 1557 .samples_per_second());
1558 } 1558 }
1559 1559
1560 // Ensures audio-only playback with missing or negative timestamps works. Tests 1560 // Ensures audio-only playback with missing or negative timestamps works. Tests
1561 // the common live-streaming case for chained ogg. See http://crbug.com/396864. 1561 // the common live-streaming case for chained ogg. See http://crbug.com/396864.
1562 TEST_F(PipelineIntegrationTest, BasicPlaybackChainedOgg) { 1562 TEST_F(PipelineIntegrationTest, BasicPlaybackChainedOgg) {
1563 ASSERT_TRUE(Start(GetTestDataFilePath("double-sfx.ogg"), PIPELINE_OK)); 1563 ASSERT_TRUE(Start(GetTestDataFilePath("double-sfx.ogg"), PIPELINE_OK));
1564 Play(); 1564 Play();
1565 ASSERT_TRUE(WaitUntilOnEnded()); 1565 ASSERT_TRUE(WaitUntilOnEnded());
1566 ASSERT_EQ(base::TimeDelta(), demuxer_->GetStartTime());
1566 } 1567 }
1567 1568
1568 // Ensures audio-video playback with missing or negative timestamps fails softly 1569 // Ensures audio-video playback with missing or negative timestamps fails softly
1569 // instead of crashing. See http://crbug.com/396864. 1570 // instead of crashing. See http://crbug.com/396864.
1570 TEST_F(PipelineIntegrationTest, BasicPlaybackChainedOggVideo) { 1571 TEST_F(PipelineIntegrationTest, BasicPlaybackChainedOggVideo) {
1571 ASSERT_TRUE(Start(GetTestDataFilePath("double-bear.ogv"), PIPELINE_OK)); 1572 ASSERT_TRUE(Start(GetTestDataFilePath("double-bear.ogv"), PIPELINE_OK));
1572 Play(); 1573 Play();
1573 EXPECT_EQ(PIPELINE_ERROR_DECODE, WaitUntilEndedOrError()); 1574 EXPECT_EQ(PIPELINE_ERROR_DECODE, WaitUntilEndedOrError());
1575 ASSERT_EQ(base::TimeDelta(), demuxer_->GetStartTime());
1574 } 1576 }
1575 1577
1576 // Tests that we signal ended even when audio runs longer than video track. 1578 // Tests that we signal ended even when audio runs longer than video track.
1577 TEST_F(PipelineIntegrationTest, BasicPlaybackAudioLongerThanVideo) { 1579 TEST_F(PipelineIntegrationTest, BasicPlaybackAudioLongerThanVideo) {
1578 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_longer_than_video.ogv"), 1580 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_longer_than_video.ogv"),
1579 PIPELINE_OK)); 1581 PIPELINE_OK));
1580 // Audio track is 2000ms. Video track is 1001ms. Duration should be higher 1582 // Audio track is 2000ms. Video track is 1001ms. Duration should be higher
1581 // of the two. 1583 // of the two.
1582 EXPECT_EQ(2000, pipeline_->GetMediaDuration().InMilliseconds()); 1584 EXPECT_EQ(2000, pipeline_->GetMediaDuration().InMilliseconds());
1583 Play(); 1585 Play();
1584 ASSERT_TRUE(WaitUntilOnEnded()); 1586 ASSERT_TRUE(WaitUntilOnEnded());
1585 } 1587 }
1586 1588
1587 // Tests that we signal ended even when audio runs shorter than video track. 1589 // Tests that we signal ended even when audio runs shorter than video track.
1588 TEST_F(PipelineIntegrationTest, BasicPlaybackAudioShorterThanVideo) { 1590 TEST_F(PipelineIntegrationTest, BasicPlaybackAudioShorterThanVideo) {
1589 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_shorter_than_video.ogv"), 1591 ASSERT_TRUE(Start(GetTestDataFilePath("bear_audio_shorter_than_video.ogv"),
1590 PIPELINE_OK)); 1592 PIPELINE_OK));
1591 // Audio track is 500ms. Video track is 1001ms. Duration should be higher of 1593 // Audio track is 500ms. Video track is 1001ms. Duration should be higher of
1592 // the two. 1594 // the two.
1593 EXPECT_EQ(1001, pipeline_->GetMediaDuration().InMilliseconds()); 1595 EXPECT_EQ(1001, pipeline_->GetMediaDuration().InMilliseconds());
1594 Play(); 1596 Play();
1595 ASSERT_TRUE(WaitUntilOnEnded()); 1597 ASSERT_TRUE(WaitUntilOnEnded());
1596 } 1598 }
1597 1599
1600 TEST_F(PipelineIntegrationTest, BasicPlaybackPositiveStartTime) {
1601 ASSERT_TRUE(
1602 Start(GetTestDataFilePath("nonzero-start-time.webm"), PIPELINE_OK));
1603 Play();
1604 ASSERT_TRUE(WaitUntilOnEnded());
1605 ASSERT_EQ(base::TimeDelta::FromMicroseconds(396000),
1606 demuxer_->GetStartTime());
1607 }
1608
1598 } // namespace media 1609 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/ffmpeg_demuxer_unittest.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698