| OLD | NEW |
| 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 <vector> | 5 #include <vector> |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/message_loop.h" | 8 #include "base/message_loop.h" |
| 9 #include "base/stl_util.h" | 9 #include "base/stl_util.h" |
| 10 #include "base/test/simple_test_clock.h" | 10 #include "base/test/simple_test_clock.h" |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 118 EXPECT_CALL(*video_renderer_, Stop(_)) | 118 EXPECT_CALL(*video_renderer_, Stop(_)) |
| 119 .WillOnce(RunClosure<0>()); | 119 .WillOnce(RunClosure<0>()); |
| 120 } | 120 } |
| 121 | 121 |
| 122 // Expect a stop callback if we were started. | 122 // Expect a stop callback if we were started. |
| 123 EXPECT_CALL(callbacks_, OnStop()); | 123 EXPECT_CALL(callbacks_, OnStop()); |
| 124 pipeline_->Stop(base::Bind(&CallbackHelper::OnStop, | 124 pipeline_->Stop(base::Bind(&CallbackHelper::OnStop, |
| 125 base::Unretained(&callbacks_))); | 125 base::Unretained(&callbacks_))); |
| 126 message_loop_.RunUntilIdle(); | 126 message_loop_.RunUntilIdle(); |
| 127 | 127 |
| 128 pipeline_ = NULL; | |
| 129 filter_collection_.reset(); | 128 filter_collection_.reset(); |
| 129 pipeline_.reset(); |
| 130 } | 130 } |
| 131 | 131 |
| 132 protected: | 132 protected: |
| 133 // Sets up expectations to allow the demuxer to initialize. | 133 // Sets up expectations to allow the demuxer to initialize. |
| 134 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; | 134 typedef std::vector<MockDemuxerStream*> MockDemuxerStreamVector; |
| 135 void InitializeDemuxer(MockDemuxerStreamVector* streams, | 135 void InitializeDemuxer(MockDemuxerStreamVector* streams, |
| 136 const base::TimeDelta& duration) { | 136 const base::TimeDelta& duration) { |
| 137 EXPECT_CALL(callbacks_, OnDurationChange()); | 137 EXPECT_CALL(callbacks_, OnDurationChange()); |
| 138 EXPECT_CALL(*demuxer_, Initialize(_, _)) | 138 EXPECT_CALL(*demuxer_, Initialize(_, _)) |
| 139 .WillOnce(DoAll(SetDemuxerProperties(duration), | 139 .WillOnce(DoAll(SetDemuxerProperties(duration), |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 282 // We expect the time to be updated only after the seek has completed. | 282 // We expect the time to be updated only after the seek has completed. |
| 283 EXPECT_NE(seek_time, pipeline_->GetMediaTime()); | 283 EXPECT_NE(seek_time, pipeline_->GetMediaTime()); |
| 284 message_loop_.RunUntilIdle(); | 284 message_loop_.RunUntilIdle(); |
| 285 EXPECT_EQ(seek_time, pipeline_->GetMediaTime()); | 285 EXPECT_EQ(seek_time, pipeline_->GetMediaTime()); |
| 286 } | 286 } |
| 287 | 287 |
| 288 // Fixture members. | 288 // Fixture members. |
| 289 StrictMock<CallbackHelper> callbacks_; | 289 StrictMock<CallbackHelper> callbacks_; |
| 290 base::SimpleTestClock test_clock_; | 290 base::SimpleTestClock test_clock_; |
| 291 base::MessageLoop message_loop_; | 291 base::MessageLoop message_loop_; |
| 292 scoped_refptr<Pipeline> pipeline_; | 292 scoped_ptr<Pipeline> pipeline_; |
| 293 | 293 |
| 294 scoped_ptr<FilterCollection> filter_collection_; | 294 scoped_ptr<FilterCollection> filter_collection_; |
| 295 scoped_ptr<MockDemuxer> demuxer_; | 295 scoped_ptr<MockDemuxer> demuxer_; |
| 296 MockVideoRenderer* video_renderer_; | 296 MockVideoRenderer* video_renderer_; |
| 297 MockAudioRenderer* audio_renderer_; | 297 MockAudioRenderer* audio_renderer_; |
| 298 scoped_ptr<StrictMock<MockDemuxerStream> > audio_stream_; | 298 scoped_ptr<StrictMock<MockDemuxerStream> > audio_stream_; |
| 299 scoped_ptr<StrictMock<MockDemuxerStream> > video_stream_; | 299 scoped_ptr<StrictMock<MockDemuxerStream> > video_stream_; |
| 300 AudioRenderer::TimeCB audio_time_cb_; | 300 AudioRenderer::TimeCB audio_time_cb_; |
| 301 VideoDecoderConfig video_decoder_config_; | 301 VideoDecoderConfig video_decoder_config_; |
| 302 | 302 |
| (...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 704 CreateAudioStream(); | 704 CreateAudioStream(); |
| 705 MockDemuxerStreamVector streams; | 705 MockDemuxerStreamVector streams; |
| 706 streams.push_back(audio_stream()); | 706 streams.push_back(audio_stream()); |
| 707 | 707 |
| 708 InitializeDemuxer(&streams); | 708 InitializeDemuxer(&streams); |
| 709 InitializeAudioRenderer(audio_stream(), false); | 709 InitializeAudioRenderer(audio_stream(), false); |
| 710 InitializePipeline(PIPELINE_OK); | 710 InitializePipeline(PIPELINE_OK); |
| 711 | 711 |
| 712 // Trigger additional requests on the pipeline during tear down from error. | 712 // Trigger additional requests on the pipeline during tear down from error. |
| 713 base::Callback<void(PipelineStatus)> cb = base::Bind( | 713 base::Callback<void(PipelineStatus)> cb = base::Bind( |
| 714 &TestNoCallsAfterError, pipeline_, &message_loop_); | 714 &TestNoCallsAfterError, pipeline_.get(), &message_loop_); |
| 715 ON_CALL(callbacks_, OnError(_)) | 715 ON_CALL(callbacks_, OnError(_)) |
| 716 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); | 716 .WillByDefault(Invoke(&cb, &base::Callback<void(PipelineStatus)>::Run)); |
| 717 | 717 |
| 718 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); | 718 base::TimeDelta seek_time = base::TimeDelta::FromSeconds(5); |
| 719 | 719 |
| 720 // Seek() isn't called as the demuxer errors out first. | 720 // Seek() isn't called as the demuxer errors out first. |
| 721 EXPECT_CALL(*audio_renderer_, Pause(_)) | 721 EXPECT_CALL(*audio_renderer_, Pause(_)) |
| 722 .WillOnce(RunClosure<0>()); | 722 .WillOnce(RunClosure<0>()); |
| 723 EXPECT_CALL(*audio_renderer_, Flush(_)) | 723 EXPECT_CALL(*audio_renderer_, Flush(_)) |
| 724 .WillOnce(RunClosure<0>()); | 724 .WillOnce(RunClosure<0>()); |
| (...skipping 233 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 958 | 958 |
| 959 PipelineStatus SetInitializeExpectations(TeardownState state, | 959 PipelineStatus SetInitializeExpectations(TeardownState state, |
| 960 StopOrError stop_or_error) { | 960 StopOrError stop_or_error) { |
| 961 PipelineStatus status = PIPELINE_OK; | 961 PipelineStatus status = PIPELINE_OK; |
| 962 base::Closure stop_cb = base::Bind( | 962 base::Closure stop_cb = base::Bind( |
| 963 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); | 963 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); |
| 964 | 964 |
| 965 if (state == kInitDemuxer) { | 965 if (state == kInitDemuxer) { |
| 966 if (stop_or_error == kStop) { | 966 if (stop_or_error == kStop) { |
| 967 EXPECT_CALL(*demuxer_, Initialize(_, _)) | 967 EXPECT_CALL(*demuxer_, Initialize(_, _)) |
| 968 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 968 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 969 RunCallback<1>(PIPELINE_OK))); | 969 RunCallback<1>(PIPELINE_OK))); |
| 970 EXPECT_CALL(callbacks_, OnStop()); | 970 EXPECT_CALL(callbacks_, OnStop()); |
| 971 } else { | 971 } else { |
| 972 status = DEMUXER_ERROR_COULD_NOT_OPEN; | 972 status = DEMUXER_ERROR_COULD_NOT_OPEN; |
| 973 EXPECT_CALL(*demuxer_, Initialize(_, _)) | 973 EXPECT_CALL(*demuxer_, Initialize(_, _)) |
| 974 .WillOnce(RunCallback<1>(status)); | 974 .WillOnce(RunCallback<1>(status)); |
| 975 } | 975 } |
| 976 | 976 |
| 977 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 977 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 978 return status; | 978 return status; |
| 979 } | 979 } |
| 980 | 980 |
| 981 CreateAudioStream(); | 981 CreateAudioStream(); |
| 982 CreateVideoStream(); | 982 CreateVideoStream(); |
| 983 MockDemuxerStreamVector streams; | 983 MockDemuxerStreamVector streams; |
| 984 streams.push_back(audio_stream()); | 984 streams.push_back(audio_stream()); |
| 985 streams.push_back(video_stream()); | 985 streams.push_back(video_stream()); |
| 986 InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); | 986 InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); |
| 987 | 987 |
| 988 if (state == kInitAudioRenderer) { | 988 if (state == kInitAudioRenderer) { |
| 989 if (stop_or_error == kStop) { | 989 if (stop_or_error == kStop) { |
| 990 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 990 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 991 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 991 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 992 RunCallback<1>(PIPELINE_OK))); | 992 RunCallback<1>(PIPELINE_OK))); |
| 993 EXPECT_CALL(callbacks_, OnStop()); | 993 EXPECT_CALL(callbacks_, OnStop()); |
| 994 } else { | 994 } else { |
| 995 status = PIPELINE_ERROR_INITIALIZATION_FAILED; | 995 status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
| 996 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 996 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 997 .WillOnce(RunCallback<1>(status)); | 997 .WillOnce(RunCallback<1>(status)); |
| 998 } | 998 } |
| 999 | 999 |
| 1000 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 1000 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 1001 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 1001 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 1002 return status; | 1002 return status; |
| 1003 } | 1003 } |
| 1004 | 1004 |
| 1005 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 1005 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 1006 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1006 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1007 | 1007 |
| 1008 if (state == kInitVideoRenderer) { | 1008 if (state == kInitVideoRenderer) { |
| 1009 if (stop_or_error == kStop) { | 1009 if (stop_or_error == kStop) { |
| 1010 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) | 1010 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) |
| 1011 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 1011 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 1012 RunCallback<1>(PIPELINE_OK))); | 1012 RunCallback<1>(PIPELINE_OK))); |
| 1013 EXPECT_CALL(callbacks_, OnStop()); | 1013 EXPECT_CALL(callbacks_, OnStop()); |
| 1014 } else { | 1014 } else { |
| 1015 status = PIPELINE_ERROR_INITIALIZATION_FAILED; | 1015 status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
| 1016 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) | 1016 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) |
| 1017 .WillOnce(RunCallback<1>(status)); | 1017 .WillOnce(RunCallback<1>(status)); |
| 1018 } | 1018 } |
| 1019 | 1019 |
| 1020 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 1020 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 1021 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 1021 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1070 | 1070 |
| 1071 PipelineStatus SetSeekExpectations(TeardownState state, | 1071 PipelineStatus SetSeekExpectations(TeardownState state, |
| 1072 StopOrError stop_or_error) { | 1072 StopOrError stop_or_error) { |
| 1073 PipelineStatus status = PIPELINE_OK; | 1073 PipelineStatus status = PIPELINE_OK; |
| 1074 base::Closure stop_cb = base::Bind( | 1074 base::Closure stop_cb = base::Bind( |
| 1075 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); | 1075 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); |
| 1076 | 1076 |
| 1077 if (state == kPausing) { | 1077 if (state == kPausing) { |
| 1078 if (stop_or_error == kStop) { | 1078 if (stop_or_error == kStop) { |
| 1079 EXPECT_CALL(*audio_renderer_, Pause(_)) | 1079 EXPECT_CALL(*audio_renderer_, Pause(_)) |
| 1080 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1080 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1081 } else { | 1081 } else { |
| 1082 status = PIPELINE_ERROR_READ; | 1082 status = PIPELINE_ERROR_READ; |
| 1083 EXPECT_CALL(*audio_renderer_, Pause(_)) | 1083 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce( |
| 1084 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1084 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1085 } | 1085 } |
| 1086 | 1086 |
| 1087 return status; | 1087 return status; |
| 1088 } | 1088 } |
| 1089 | 1089 |
| 1090 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce(RunClosure<0>()); | 1090 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce(RunClosure<0>()); |
| 1091 EXPECT_CALL(*video_renderer_, Pause(_)).WillOnce(RunClosure<0>()); | 1091 EXPECT_CALL(*video_renderer_, Pause(_)).WillOnce(RunClosure<0>()); |
| 1092 | 1092 |
| 1093 if (state == kFlushing) { | 1093 if (state == kFlushing) { |
| 1094 if (stop_or_error == kStop) { | 1094 if (stop_or_error == kStop) { |
| 1095 EXPECT_CALL(*audio_renderer_, Flush(_)) | 1095 EXPECT_CALL(*audio_renderer_, Flush(_)) |
| 1096 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1096 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1097 } else { | 1097 } else { |
| 1098 status = PIPELINE_ERROR_READ; | 1098 status = PIPELINE_ERROR_READ; |
| 1099 EXPECT_CALL(*audio_renderer_, Flush(_)) | 1099 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce( |
| 1100 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1100 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1101 } | 1101 } |
| 1102 | 1102 |
| 1103 return status; | 1103 return status; |
| 1104 } | 1104 } |
| 1105 | 1105 |
| 1106 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(RunClosure<0>()); | 1106 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(RunClosure<0>()); |
| 1107 EXPECT_CALL(*video_renderer_, Flush(_)).WillOnce(RunClosure<0>()); | 1107 EXPECT_CALL(*video_renderer_, Flush(_)).WillOnce(RunClosure<0>()); |
| 1108 | 1108 |
| 1109 if (state == kSeeking) { | 1109 if (state == kSeeking) { |
| 1110 if (stop_or_error == kStop) { | 1110 if (stop_or_error == kStop) { |
| 1111 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1111 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1112 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 1112 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 1113 RunCallback<1>(PIPELINE_OK))); | 1113 RunCallback<1>(PIPELINE_OK))); |
| 1114 } else { | 1114 } else { |
| 1115 status = PIPELINE_ERROR_READ; | 1115 status = PIPELINE_ERROR_READ; |
| 1116 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1116 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1117 .WillOnce(RunCallback<1>(status)); | 1117 .WillOnce(RunCallback<1>(status)); |
| 1118 } | 1118 } |
| 1119 | 1119 |
| 1120 return status; | 1120 return status; |
| 1121 } | 1121 } |
| 1122 | 1122 |
| 1123 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1123 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1124 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1124 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1125 | 1125 |
| 1126 if (state == kPrerolling) { | 1126 if (state == kPrerolling) { |
| 1127 if (stop_or_error == kStop) { | 1127 if (stop_or_error == kStop) { |
| 1128 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1128 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1129 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 1129 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 1130 RunCallback<1>(PIPELINE_OK))); | 1130 RunCallback<1>(PIPELINE_OK))); |
| 1131 } else { | 1131 } else { |
| 1132 status = PIPELINE_ERROR_READ; | 1132 status = PIPELINE_ERROR_READ; |
| 1133 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1133 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1134 .WillOnce(RunCallback<1>(status)); | 1134 .WillOnce(RunCallback<1>(status)); |
| 1135 } | 1135 } |
| 1136 | 1136 |
| 1137 return status; | 1137 return status; |
| 1138 } | 1138 } |
| 1139 | 1139 |
| 1140 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1140 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1141 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1141 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1142 EXPECT_CALL(*video_renderer_, Preroll(_, _)) | 1142 EXPECT_CALL(*video_renderer_, Preroll(_, _)) |
| 1143 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1143 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1144 | 1144 |
| 1145 // Playback rate and volume are updated prior to starting. | 1145 // Playback rate and volume are updated prior to starting. |
| 1146 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f)); | 1146 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f)); |
| 1147 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); | 1147 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); |
| 1148 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); | 1148 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); |
| 1149 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); | 1149 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); |
| 1150 | 1150 |
| 1151 if (state == kStarting) { | 1151 if (state == kStarting) { |
| 1152 if (stop_or_error == kStop) { | 1152 if (stop_or_error == kStop) { |
| 1153 EXPECT_CALL(*audio_renderer_, Play(_)) | 1153 EXPECT_CALL(*audio_renderer_, Play(_)) |
| 1154 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1154 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1155 } else { | 1155 } else { |
| 1156 status = PIPELINE_ERROR_READ; | 1156 status = PIPELINE_ERROR_READ; |
| 1157 EXPECT_CALL(*audio_renderer_, Play(_)) | 1157 EXPECT_CALL(*audio_renderer_, Play(_)).WillOnce( |
| 1158 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1158 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1159 } | 1159 } |
| 1160 return status; | 1160 return status; |
| 1161 } | 1161 } |
| 1162 | 1162 |
| 1163 NOTREACHED() << "State not supported: " << state; | 1163 NOTREACHED() << "State not supported: " << state; |
| 1164 return status; | 1164 return status; |
| 1165 } | 1165 } |
| 1166 | 1166 |
| 1167 void DoStopOrError(StopOrError stop_or_error) { | 1167 void DoStopOrError(StopOrError stop_or_error) { |
| 1168 InSequence s; | 1168 InSequence s; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1205 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); | 1205 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); |
| 1206 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); | 1206 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); |
| 1207 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); | 1207 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); |
| 1208 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); | 1208 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); |
| 1209 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); | 1209 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); |
| 1210 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); | 1210 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); |
| 1211 INSTANTIATE_TEARDOWN_TEST(Error, Starting); | 1211 INSTANTIATE_TEARDOWN_TEST(Error, Starting); |
| 1212 INSTANTIATE_TEARDOWN_TEST(Error, Playing); | 1212 INSTANTIATE_TEARDOWN_TEST(Error, Playing); |
| 1213 | 1213 |
| 1214 } // namespace media | 1214 } // namespace media |
| OLD | NEW |