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 |