| 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 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 905 | 905 |
| 906 PipelineStatus SetInitializeExpectations(TeardownState state, | 906 PipelineStatus SetInitializeExpectations(TeardownState state, |
| 907 StopOrError stop_or_error) { | 907 StopOrError stop_or_error) { |
| 908 PipelineStatus status = PIPELINE_OK; | 908 PipelineStatus status = PIPELINE_OK; |
| 909 base::Closure stop_cb = base::Bind( | 909 base::Closure stop_cb = base::Bind( |
| 910 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); | 910 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); |
| 911 | 911 |
| 912 if (state == kInitDemuxer) { | 912 if (state == kInitDemuxer) { |
| 913 if (stop_or_error == kStop) { | 913 if (stop_or_error == kStop) { |
| 914 EXPECT_CALL(*demuxer_, Initialize(_, _)) | 914 EXPECT_CALL(*demuxer_, Initialize(_, _)) |
| 915 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 915 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 916 RunCallback<1>(PIPELINE_OK))); | 916 RunCallback<1>(PIPELINE_OK))); |
| 917 EXPECT_CALL(callbacks_, OnStop()); | 917 EXPECT_CALL(callbacks_, OnStop()); |
| 918 } else { | 918 } else { |
| 919 status = DEMUXER_ERROR_COULD_NOT_OPEN; | 919 status = DEMUXER_ERROR_COULD_NOT_OPEN; |
| 920 EXPECT_CALL(*demuxer_, Initialize(_, _)) | 920 EXPECT_CALL(*demuxer_, Initialize(_, _)) |
| 921 .WillOnce(RunCallback<1>(status)); | 921 .WillOnce(RunCallback<1>(status)); |
| 922 } | 922 } |
| 923 | 923 |
| 924 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 924 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 925 return status; | 925 return status; |
| 926 } | 926 } |
| 927 | 927 |
| 928 CreateAudioStream(); | 928 CreateAudioStream(); |
| 929 CreateVideoStream(); | 929 CreateVideoStream(); |
| 930 MockDemuxerStreamVector streams; | 930 MockDemuxerStreamVector streams; |
| 931 streams.push_back(audio_stream()); | 931 streams.push_back(audio_stream()); |
| 932 streams.push_back(video_stream()); | 932 streams.push_back(video_stream()); |
| 933 InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); | 933 InitializeDemuxer(&streams, base::TimeDelta::FromSeconds(3000)); |
| 934 | 934 |
| 935 if (state == kInitAudioRenderer) { | 935 if (state == kInitAudioRenderer) { |
| 936 if (stop_or_error == kStop) { | 936 if (stop_or_error == kStop) { |
| 937 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 937 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 938 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 938 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 939 RunCallback<1>(PIPELINE_OK))); | 939 RunCallback<1>(PIPELINE_OK))); |
| 940 EXPECT_CALL(callbacks_, OnStop()); | 940 EXPECT_CALL(callbacks_, OnStop()); |
| 941 } else { | 941 } else { |
| 942 status = PIPELINE_ERROR_INITIALIZATION_FAILED; | 942 status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
| 943 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 943 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 944 .WillOnce(RunCallback<1>(status)); | 944 .WillOnce(RunCallback<1>(status)); |
| 945 } | 945 } |
| 946 | 946 |
| 947 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 947 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 948 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 948 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 949 return status; | 949 return status; |
| 950 } | 950 } |
| 951 | 951 |
| 952 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) | 952 EXPECT_CALL(*audio_renderer_, Initialize(_, _, _, _, _, _, _, _)) |
| 953 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 953 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 954 | 954 |
| 955 if (state == kInitVideoRenderer) { | 955 if (state == kInitVideoRenderer) { |
| 956 if (stop_or_error == kStop) { | 956 if (stop_or_error == kStop) { |
| 957 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) | 957 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) |
| 958 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 958 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 959 RunCallback<1>(PIPELINE_OK))); | 959 RunCallback<1>(PIPELINE_OK))); |
| 960 EXPECT_CALL(callbacks_, OnStop()); | 960 EXPECT_CALL(callbacks_, OnStop()); |
| 961 } else { | 961 } else { |
| 962 status = PIPELINE_ERROR_INITIALIZATION_FAILED; | 962 status = PIPELINE_ERROR_INITIALIZATION_FAILED; |
| 963 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) | 963 EXPECT_CALL(*video_renderer_, Initialize(_, _, _, _, _, _, _, _, _)) |
| 964 .WillOnce(RunCallback<1>(status)); | 964 .WillOnce(RunCallback<1>(status)); |
| 965 } | 965 } |
| 966 | 966 |
| 967 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); | 967 EXPECT_CALL(*demuxer_, Stop(_)).WillOnce(RunClosure<0>()); |
| 968 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); | 968 EXPECT_CALL(*audio_renderer_, Stop(_)).WillOnce(RunClosure<0>()); |
| (...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1017 | 1017 |
| 1018 PipelineStatus SetSeekExpectations(TeardownState state, | 1018 PipelineStatus SetSeekExpectations(TeardownState state, |
| 1019 StopOrError stop_or_error) { | 1019 StopOrError stop_or_error) { |
| 1020 PipelineStatus status = PIPELINE_OK; | 1020 PipelineStatus status = PIPELINE_OK; |
| 1021 base::Closure stop_cb = base::Bind( | 1021 base::Closure stop_cb = base::Bind( |
| 1022 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); | 1022 &CallbackHelper::OnStop, base::Unretained(&callbacks_)); |
| 1023 | 1023 |
| 1024 if (state == kPausing) { | 1024 if (state == kPausing) { |
| 1025 if (stop_or_error == kStop) { | 1025 if (stop_or_error == kStop) { |
| 1026 EXPECT_CALL(*audio_renderer_, Pause(_)) | 1026 EXPECT_CALL(*audio_renderer_, Pause(_)) |
| 1027 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1027 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1028 } else { | 1028 } else { |
| 1029 status = PIPELINE_ERROR_READ; | 1029 status = PIPELINE_ERROR_READ; |
| 1030 EXPECT_CALL(*audio_renderer_, Pause(_)) | 1030 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce( |
| 1031 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1031 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1032 } | 1032 } |
| 1033 | 1033 |
| 1034 return status; | 1034 return status; |
| 1035 } | 1035 } |
| 1036 | 1036 |
| 1037 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce(RunClosure<0>()); | 1037 EXPECT_CALL(*audio_renderer_, Pause(_)).WillOnce(RunClosure<0>()); |
| 1038 EXPECT_CALL(*video_renderer_, Pause(_)).WillOnce(RunClosure<0>()); | 1038 EXPECT_CALL(*video_renderer_, Pause(_)).WillOnce(RunClosure<0>()); |
| 1039 | 1039 |
| 1040 if (state == kFlushing) { | 1040 if (state == kFlushing) { |
| 1041 if (stop_or_error == kStop) { | 1041 if (stop_or_error == kStop) { |
| 1042 EXPECT_CALL(*audio_renderer_, Flush(_)) | 1042 EXPECT_CALL(*audio_renderer_, Flush(_)) |
| 1043 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1043 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1044 } else { | 1044 } else { |
| 1045 status = PIPELINE_ERROR_READ; | 1045 status = PIPELINE_ERROR_READ; |
| 1046 EXPECT_CALL(*audio_renderer_, Flush(_)) | 1046 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce( |
| 1047 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1047 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1048 } | 1048 } |
| 1049 | 1049 |
| 1050 return status; | 1050 return status; |
| 1051 } | 1051 } |
| 1052 | 1052 |
| 1053 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(RunClosure<0>()); | 1053 EXPECT_CALL(*audio_renderer_, Flush(_)).WillOnce(RunClosure<0>()); |
| 1054 EXPECT_CALL(*video_renderer_, Flush(_)).WillOnce(RunClosure<0>()); | 1054 EXPECT_CALL(*video_renderer_, Flush(_)).WillOnce(RunClosure<0>()); |
| 1055 | 1055 |
| 1056 if (state == kSeeking) { | 1056 if (state == kSeeking) { |
| 1057 if (stop_or_error == kStop) { | 1057 if (stop_or_error == kStop) { |
| 1058 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1058 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1059 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 1059 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 1060 RunCallback<1>(PIPELINE_OK))); | 1060 RunCallback<1>(PIPELINE_OK))); |
| 1061 } else { | 1061 } else { |
| 1062 status = PIPELINE_ERROR_READ; | 1062 status = PIPELINE_ERROR_READ; |
| 1063 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1063 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1064 .WillOnce(RunCallback<1>(status)); | 1064 .WillOnce(RunCallback<1>(status)); |
| 1065 } | 1065 } |
| 1066 | 1066 |
| 1067 return status; | 1067 return status; |
| 1068 } | 1068 } |
| 1069 | 1069 |
| 1070 EXPECT_CALL(*demuxer_, Seek(_, _)) | 1070 EXPECT_CALL(*demuxer_, Seek(_, _)) |
| 1071 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1071 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1072 | 1072 |
| 1073 if (state == kPrerolling) { | 1073 if (state == kPrerolling) { |
| 1074 if (stop_or_error == kStop) { | 1074 if (stop_or_error == kStop) { |
| 1075 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1075 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1076 .WillOnce(DoAll(Stop(pipeline_, stop_cb), | 1076 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), |
| 1077 RunCallback<1>(PIPELINE_OK))); | 1077 RunCallback<1>(PIPELINE_OK))); |
| 1078 } else { | 1078 } else { |
| 1079 status = PIPELINE_ERROR_READ; | 1079 status = PIPELINE_ERROR_READ; |
| 1080 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1080 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1081 .WillOnce(RunCallback<1>(status)); | 1081 .WillOnce(RunCallback<1>(status)); |
| 1082 } | 1082 } |
| 1083 | 1083 |
| 1084 return status; | 1084 return status; |
| 1085 } | 1085 } |
| 1086 | 1086 |
| 1087 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) | 1087 EXPECT_CALL(*audio_renderer_, Preroll(_, _)) |
| 1088 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1088 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1089 EXPECT_CALL(*video_renderer_, Preroll(_, _)) | 1089 EXPECT_CALL(*video_renderer_, Preroll(_, _)) |
| 1090 .WillOnce(RunCallback<1>(PIPELINE_OK)); | 1090 .WillOnce(RunCallback<1>(PIPELINE_OK)); |
| 1091 | 1091 |
| 1092 // Playback rate and volume are updated prior to starting. | 1092 // Playback rate and volume are updated prior to starting. |
| 1093 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f)); | 1093 EXPECT_CALL(*demuxer_, SetPlaybackRate(0.0f)); |
| 1094 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); | 1094 EXPECT_CALL(*audio_renderer_, SetPlaybackRate(0.0f)); |
| 1095 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); | 1095 EXPECT_CALL(*video_renderer_, SetPlaybackRate(0.0f)); |
| 1096 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); | 1096 EXPECT_CALL(*audio_renderer_, SetVolume(1.0f)); |
| 1097 | 1097 |
| 1098 if (state == kStarting) { | 1098 if (state == kStarting) { |
| 1099 if (stop_or_error == kStop) { | 1099 if (stop_or_error == kStop) { |
| 1100 EXPECT_CALL(*audio_renderer_, Play(_)) | 1100 EXPECT_CALL(*audio_renderer_, Play(_)) |
| 1101 .WillOnce(DoAll(Stop(pipeline_, stop_cb), RunClosure<0>())); | 1101 .WillOnce(DoAll(Stop(pipeline_.get(), stop_cb), RunClosure<0>())); |
| 1102 } else { | 1102 } else { |
| 1103 status = PIPELINE_ERROR_READ; | 1103 status = PIPELINE_ERROR_READ; |
| 1104 EXPECT_CALL(*audio_renderer_, Play(_)) | 1104 EXPECT_CALL(*audio_renderer_, Play(_)).WillOnce( |
| 1105 .WillOnce(DoAll(SetError(pipeline_, status), RunClosure<0>())); | 1105 DoAll(SetError(pipeline_.get(), status), RunClosure<0>())); |
| 1106 } | 1106 } |
| 1107 return status; | 1107 return status; |
| 1108 } | 1108 } |
| 1109 | 1109 |
| 1110 NOTREACHED() << "State not supported: " << state; | 1110 NOTREACHED() << "State not supported: " << state; |
| 1111 return status; | 1111 return status; |
| 1112 } | 1112 } |
| 1113 | 1113 |
| 1114 void DoStopOrError(StopOrError stop_or_error) { | 1114 void DoStopOrError(StopOrError stop_or_error) { |
| 1115 InSequence s; | 1115 InSequence s; |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); | 1152 INSTANTIATE_TEARDOWN_TEST(Error, InitAudioRenderer); |
| 1153 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); | 1153 INSTANTIATE_TEARDOWN_TEST(Error, InitVideoRenderer); |
| 1154 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); | 1154 INSTANTIATE_TEARDOWN_TEST(Error, Pausing); |
| 1155 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); | 1155 INSTANTIATE_TEARDOWN_TEST(Error, Flushing); |
| 1156 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); | 1156 INSTANTIATE_TEARDOWN_TEST(Error, Seeking); |
| 1157 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); | 1157 INSTANTIATE_TEARDOWN_TEST(Error, Prerolling); |
| 1158 INSTANTIATE_TEARDOWN_TEST(Error, Starting); | 1158 INSTANTIATE_TEARDOWN_TEST(Error, Starting); |
| 1159 INSTANTIATE_TEARDOWN_TEST(Error, Playing); | 1159 INSTANTIATE_TEARDOWN_TEST(Error, Playing); |
| 1160 | 1160 |
| 1161 } // namespace media | 1161 } // namespace media |
| OLD | NEW |