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

Side by Side Diff: chromecast/media/cma/backend/audio_video_pipeline_device_unittest.cc

Issue 2738503005: Created battor.tough_energy_cases (without dcurtis's change)
Patch Set: Reupload Created 3 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 unified diff | Download patch
« no previous file with comments | « no previous file | media/base/demuxer_perftest.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 <stdint.h> 5 #include <stdint.h>
6 6
7 #include <limits> 7 #include <limits>
8 #include <memory> 8 #include <memory>
9 #include <vector> 9 #include <vector>
10 10
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/command_line.h" 12 #include "base/command_line.h"
13 #include "base/files/file_path.h" 13 #include "base/files/file_path.h"
14 #include "base/files/memory_mapped_file.h" 14 #include "base/files/memory_mapped_file.h"
15 #include "base/logging.h" 15 #include "base/logging.h"
16 #include "base/macros.h" 16 #include "base/macros.h"
17 #include "base/memory/ptr_util.h" 17 #include "base/memory/ptr_util.h"
18 #include "base/memory/ref_counted.h" 18 #include "base/memory/ref_counted.h"
19 #include "base/memory/scoped_vector.h" 19 #include "base/memory/scoped_vector.h"
20 #include "base/message_loop/message_loop.h" 20 #include "base/message_loop/message_loop.h"
21 #include "base/path_service.h" 21 #include "base/path_service.h"
22 #include "base/run_loop.h" 22 #include "base/run_loop.h"
23 #include "base/single_thread_task_runner.h" 23 #include "base/single_thread_task_runner.h"
24 #include "base/test/scoped_task_scheduler.h"
25 #include "base/threading/thread.h" 24 #include "base/threading/thread.h"
26 #include "base/threading/thread_checker.h" 25 #include "base/threading/thread_checker.h"
27 #include "base/threading/thread_task_runner_handle.h" 26 #include "base/threading/thread_task_runner_handle.h"
28 #include "base/time/time.h" 27 #include "base/time/time.h"
29 #include "chromecast/base/task_runner_impl.h" 28 #include "chromecast/base/task_runner_impl.h"
30 #include "chromecast/media/cma/base/decoder_buffer_adapter.h" 29 #include "chromecast/media/cma/base/decoder_buffer_adapter.h"
31 #include "chromecast/media/cma/base/decoder_config_adapter.h" 30 #include "chromecast/media/cma/base/decoder_config_adapter.h"
32 #include "chromecast/media/cma/test/frame_segmenter_for_test.h" 31 #include "chromecast/media/cma/test/frame_segmenter_for_test.h"
33 #include "chromecast/public/cast_media_shlib.h" 32 #include "chromecast/public/cast_media_shlib.h"
34 #include "chromecast/public/media/cast_decoder_buffer.h" 33 #include "chromecast/public/media/cast_decoder_buffer.h"
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 void RunPlaybackChecks(); 225 void RunPlaybackChecks();
227 void TestBackendStates(); 226 void TestBackendStates();
228 void StartImmediateEosTest(); 227 void StartImmediateEosTest();
229 void EndImmediateEosTest(); 228 void EndImmediateEosTest();
230 229
231 private: 230 private:
232 void MonitorLoop(); 231 void MonitorLoop();
233 232
234 void OnPauseCompleted(); 233 void OnPauseCompleted();
235 234
236 base::test::ScopedTaskScheduler task_scheduler_;
237 MediaPipelineDeviceParams::MediaSyncType sync_type_; 235 MediaPipelineDeviceParams::MediaSyncType sync_type_;
238 MediaPipelineDeviceParams::AudioStreamType audio_type_; 236 MediaPipelineDeviceParams::AudioStreamType audio_type_;
239 std::unique_ptr<TaskRunnerImpl> task_runner_; 237 std::unique_ptr<TaskRunnerImpl> task_runner_;
240 std::unique_ptr<MediaPipelineBackend> backend_; 238 std::unique_ptr<MediaPipelineBackend> backend_;
241 std::vector<std::unique_ptr<MediaPipelineBackend>> effects_backends_; 239 std::vector<std::unique_ptr<MediaPipelineBackend>> effects_backends_;
242 std::vector<std::unique_ptr<BufferFeeder>> effects_feeders_; 240 std::vector<std::unique_ptr<BufferFeeder>> effects_feeders_;
243 std::unique_ptr<BufferFeeder> audio_feeder_; 241 std::unique_ptr<BufferFeeder> audio_feeder_;
244 std::unique_ptr<BufferFeeder> video_feeder_; 242 std::unique_ptr<BufferFeeder> video_feeder_;
245 bool stopped_; 243 bool stopped_;
246 bool ran_playing_playback_checks_; 244 bool ran_playing_playback_checks_;
(...skipping 651 matching lines...) Expand 10 before | Expand all | Expand 10 after
898 896
899 backend_->Stop(); 897 backend_->Stop();
900 base::RunLoop().RunUntilIdle(); 898 base::RunLoop().RunUntilIdle();
901 899
902 RunStoppedChecks(); 900 RunStoppedChecks();
903 901
904 base::MessageLoop::current()->QuitWhenIdle(); 902 base::MessageLoop::current()->QuitWhenIdle();
905 } 903 }
906 904
907 TEST_F(AudioVideoPipelineDeviceTest, Mp3Playback) { 905 TEST_F(AudioVideoPipelineDeviceTest, Mp3Playback) {
906 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
907
908 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 908 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
909 ConfigureForAudioOnly("sfx.mp3"); 909 ConfigureForAudioOnly("sfx.mp3");
910 PauseBeforeEos(); 910 PauseBeforeEos();
911 Start(); 911 Start();
912 base::RunLoop().Run(); 912 base::RunLoop().Run();
913 } 913 }
914 914
915 TEST_F(AudioVideoPipelineDeviceTest, AacPlayback) { 915 TEST_F(AudioVideoPipelineDeviceTest, AacPlayback) {
916 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
917
916 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 918 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
917 ConfigureForAudioOnly("sfx.m4a"); 919 ConfigureForAudioOnly("sfx.m4a");
918 PauseBeforeEos(); 920 PauseBeforeEos();
919 Start(); 921 Start();
920 base::RunLoop().Run(); 922 base::RunLoop().Run();
921 } 923 }
922 924
923 TEST_F(AudioVideoPipelineDeviceTest, VorbisPlayback) { 925 TEST_F(AudioVideoPipelineDeviceTest, VorbisPlayback) {
926 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
927
924 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts); 928 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts);
925 ConfigureForAudioOnly("sfx.ogg"); 929 ConfigureForAudioOnly("sfx.ogg");
926 Start(); 930 Start();
927 base::RunLoop().Run(); 931 base::RunLoop().Run();
928 } 932 }
929 933
930 // TODO(kmackay) FFmpegDemuxForTest can't handle AC3 or EAC3. 934 // TODO(kmackay) FFmpegDemuxForTest can't handle AC3 or EAC3.
931 935
932 TEST_F(AudioVideoPipelineDeviceTest, OpusPlayback_Optional) { 936 TEST_F(AudioVideoPipelineDeviceTest, OpusPlayback_Optional) {
937 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
938
933 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 939 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
934 ConfigureForAudioOnly("bear-opus.ogg"); 940 ConfigureForAudioOnly("bear-opus.ogg");
935 PauseBeforeEos(); 941 PauseBeforeEos();
936 Start(); 942 Start();
937 base::RunLoop().Run(); 943 base::RunLoop().Run();
938 } 944 }
939 945
940 TEST_F(AudioVideoPipelineDeviceTest, FlacPlayback_Optional) { 946 TEST_F(AudioVideoPipelineDeviceTest, FlacPlayback_Optional) {
947 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
948
941 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 949 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
942 ConfigureForAudioOnly("bear.flac"); 950 ConfigureForAudioOnly("bear.flac");
943 PauseBeforeEos(); 951 PauseBeforeEos();
944 Start(); 952 Start();
945 base::RunLoop().Run(); 953 base::RunLoop().Run();
946 } 954 }
947 955
948 TEST_F(AudioVideoPipelineDeviceTest, H264Playback) { 956 TEST_F(AudioVideoPipelineDeviceTest, H264Playback) {
957 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
958
949 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 959 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
950 ConfigureForVideoOnly("bear.h264", true /* raw_h264 */); 960 ConfigureForVideoOnly("bear.h264", true /* raw_h264 */);
951 PauseBeforeEos(); 961 PauseBeforeEos();
952 Start(); 962 Start();
953 base::RunLoop().Run(); 963 base::RunLoop().Run();
954 } 964 }
955 965
956 TEST_F(AudioVideoPipelineDeviceTest, WebmPlaybackWithPause) { 966 TEST_F(AudioVideoPipelineDeviceTest, WebmPlaybackWithPause) {
967 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
968
957 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 969 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
958 // Setup to pause for 100ms every 500ms 970 // Setup to pause for 100ms every 500ms
959 AddPause(base::TimeDelta::FromMilliseconds(500), 971 AddPause(base::TimeDelta::FromMilliseconds(500),
960 base::TimeDelta::FromMilliseconds(100)); 972 base::TimeDelta::FromMilliseconds(100));
961 973
962 ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */); 974 ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */);
963 Start(); 975 Start();
964 base::RunLoop().Run(); 976 base::RunLoop().Run();
965 } 977 }
966 978
967 TEST_F(AudioVideoPipelineDeviceTest, Vp8Playback) { 979 TEST_F(AudioVideoPipelineDeviceTest, Vp8Playback) {
980 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
981
968 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 982 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
969 ConfigureForVideoOnly("bear-vp8a.webm", false /* raw_h264 */); 983 ConfigureForVideoOnly("bear-vp8a.webm", false /* raw_h264 */);
970 Start(); 984 Start();
971 base::RunLoop().Run(); 985 base::RunLoop().Run();
972 } 986 }
973 987
974 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback) { 988 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback) {
989 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
990
975 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 991 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
976 ConfigureForFile("bear-640x360.webm"); 992 ConfigureForFile("bear-640x360.webm");
977 PauseBeforeEos(); 993 PauseBeforeEos();
978 Start(); 994 Start();
979 base::RunLoop().Run(); 995 base::RunLoop().Run();
980 } 996 }
981 997
982 // TODO(kmackay) FFmpegDemuxForTest can't handle HEVC or VP9. 998 // TODO(kmackay) FFmpegDemuxForTest can't handle HEVC or VP9.
983 999
984 TEST_F(AudioVideoPipelineDeviceTest, AudioBackendStates) { 1000 TEST_F(AudioVideoPipelineDeviceTest, AudioBackendStates) {
1001 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
985 Initialize(); 1002 Initialize();
986 MediaPipelineBackend::AudioDecoder* audio_decoder = 1003 MediaPipelineBackend::AudioDecoder* audio_decoder =
987 backend()->CreateAudioDecoder(); 1004 backend()->CreateAudioDecoder();
988 1005
989 // Test setting config before Initialize(). 1006 // Test setting config before Initialize().
990 std::unique_ptr<BufferFeeder> feeder( 1007 std::unique_ptr<BufferFeeder> feeder(
991 new BufferFeeder(base::Bind(&IgnoreEos))); 1008 new BufferFeeder(base::Bind(&IgnoreEos)));
992 feeder->Initialize(backend(), audio_decoder, BufferList()); 1009 feeder->Initialize(backend(), audio_decoder, BufferList());
993 feeder->SetAudioConfig(DefaultAudioConfig()); 1010 feeder->SetAudioConfig(DefaultAudioConfig());
994 feeder->TestAudioConfigs(); 1011 feeder->TestAudioConfigs();
995 1012
996 SetAudioFeeder(std::move(feeder)); 1013 SetAudioFeeder(std::move(feeder));
997 TestBackendStates(); 1014 TestBackendStates();
998 } 1015 }
999 1016
1000 TEST_F(AudioVideoPipelineDeviceTest, AudioEffectsBackendStates) { 1017 TEST_F(AudioVideoPipelineDeviceTest, AudioEffectsBackendStates) {
1018 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1001 set_audio_type(MediaPipelineDeviceParams::kAudioStreamSoundEffects); 1019 set_audio_type(MediaPipelineDeviceParams::kAudioStreamSoundEffects);
1002 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts); 1020 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts);
1003 Initialize(); 1021 Initialize();
1004 MediaPipelineBackend::AudioDecoder* audio_decoder = 1022 MediaPipelineBackend::AudioDecoder* audio_decoder =
1005 backend()->CreateAudioDecoder(); 1023 backend()->CreateAudioDecoder();
1006 1024
1007 std::unique_ptr<BufferFeeder> feeder( 1025 std::unique_ptr<BufferFeeder> feeder(
1008 new BufferFeeder(base::Bind(&IgnoreEos))); 1026 new BufferFeeder(base::Bind(&IgnoreEos)));
1009 feeder->Initialize(backend(), audio_decoder, BufferList()); 1027 feeder->Initialize(backend(), audio_decoder, BufferList());
1010 feeder->SetAudioConfig(DefaultAudioConfig()); 1028 feeder->SetAudioConfig(DefaultAudioConfig());
1011 ASSERT_TRUE(audio_decoder->SetConfig(DefaultAudioConfig())); 1029 ASSERT_TRUE(audio_decoder->SetConfig(DefaultAudioConfig()));
1012 1030
1013 SetAudioFeeder(std::move(feeder)); 1031 SetAudioFeeder(std::move(feeder));
1014 TestBackendStates(); 1032 TestBackendStates();
1015 } 1033 }
1016 1034
1017 TEST_F(AudioVideoPipelineDeviceTest, VideoBackendStates) { 1035 TEST_F(AudioVideoPipelineDeviceTest, VideoBackendStates) {
1036 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1018 Initialize(); 1037 Initialize();
1019 MediaPipelineBackend::VideoDecoder* video_decoder = 1038 MediaPipelineBackend::VideoDecoder* video_decoder =
1020 backend()->CreateVideoDecoder(); 1039 backend()->CreateVideoDecoder();
1021 1040
1022 // Test setting config before Initialize(). 1041 // Test setting config before Initialize().
1023 std::unique_ptr<BufferFeeder> feeder( 1042 std::unique_ptr<BufferFeeder> feeder(
1024 new BufferFeeder(base::Bind(&IgnoreEos))); 1043 new BufferFeeder(base::Bind(&IgnoreEos)));
1025 feeder->Initialize(backend(), video_decoder, BufferList()); 1044 feeder->Initialize(backend(), video_decoder, BufferList());
1026 feeder->SetVideoConfig(DefaultVideoConfig()); 1045 feeder->SetVideoConfig(DefaultVideoConfig());
1027 feeder->TestVideoConfigs(); 1046 feeder->TestVideoConfigs();
1028 1047
1029 SetVideoFeeder(std::move(feeder)); 1048 SetVideoFeeder(std::move(feeder));
1030 TestBackendStates(); 1049 TestBackendStates();
1031 } 1050 }
1032 1051
1033 TEST_F(AudioVideoPipelineDeviceTest, AudioImmediateEos) { 1052 TEST_F(AudioVideoPipelineDeviceTest, AudioImmediateEos) {
1053 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1034 Initialize(); 1054 Initialize();
1035 MediaPipelineBackend::AudioDecoder* audio_decoder = 1055 MediaPipelineBackend::AudioDecoder* audio_decoder =
1036 backend()->CreateAudioDecoder(); 1056 backend()->CreateAudioDecoder();
1037 1057
1038 std::unique_ptr<BufferFeeder> feeder(new BufferFeeder( 1058 std::unique_ptr<BufferFeeder> feeder(new BufferFeeder(
1039 base::Bind(&AudioVideoPipelineDeviceTest::EndImmediateEosTest, 1059 base::Bind(&AudioVideoPipelineDeviceTest::EndImmediateEosTest,
1040 base::Unretained(this)))); 1060 base::Unretained(this))));
1041 feeder->Initialize(backend(), audio_decoder, BufferList()); 1061 feeder->Initialize(backend(), audio_decoder, BufferList());
1042 feeder->SetAudioConfig(DefaultAudioConfig()); 1062 feeder->SetAudioConfig(DefaultAudioConfig());
1043 SetAudioFeeder(std::move(feeder)); 1063 SetAudioFeeder(std::move(feeder));
1044 1064
1045 StartImmediateEosTest(); 1065 StartImmediateEosTest();
1046 base::RunLoop().RunUntilIdle();
1047 } 1066 }
1048 1067
1049 TEST_F(AudioVideoPipelineDeviceTest, VideoImmediateEos) { 1068 TEST_F(AudioVideoPipelineDeviceTest, VideoImmediateEos) {
1069 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1050 Initialize(); 1070 Initialize();
1051 MediaPipelineBackend::VideoDecoder* video_decoder = 1071 MediaPipelineBackend::VideoDecoder* video_decoder =
1052 backend()->CreateVideoDecoder(); 1072 backend()->CreateVideoDecoder();
1053 1073
1054 std::unique_ptr<BufferFeeder> feeder(new BufferFeeder( 1074 std::unique_ptr<BufferFeeder> feeder(new BufferFeeder(
1055 base::Bind(&AudioVideoPipelineDeviceTest::EndImmediateEosTest, 1075 base::Bind(&AudioVideoPipelineDeviceTest::EndImmediateEosTest,
1056 base::Unretained(this)))); 1076 base::Unretained(this))));
1057 feeder->Initialize(backend(), video_decoder, BufferList()); 1077 feeder->Initialize(backend(), video_decoder, BufferList());
1058 feeder->SetVideoConfig(DefaultVideoConfig()); 1078 feeder->SetVideoConfig(DefaultVideoConfig());
1059 SetVideoFeeder(std::move(feeder)); 1079 SetVideoFeeder(std::move(feeder));
1060 1080
1061 StartImmediateEosTest(); 1081 StartImmediateEosTest();
1062 base::RunLoop().RunUntilIdle();
1063 } 1082 }
1064 1083
1065 TEST_F(AudioVideoPipelineDeviceTest, Mp3Playback_WithEffectsStreams) { 1084 TEST_F(AudioVideoPipelineDeviceTest, Mp3Playback_WithEffectsStreams) {
1085 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1086
1066 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1087 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1067 ConfigureForAudioOnly("sfx.mp3"); 1088 ConfigureForAudioOnly("sfx.mp3");
1068 PauseBeforeEos(); 1089 PauseBeforeEos();
1069 AddEffectsStreams(); 1090 AddEffectsStreams();
1070 Start(); 1091 Start();
1071 base::RunLoop().Run(); 1092 base::RunLoop().Run();
1072 } 1093 }
1073 1094
1074 TEST_F(AudioVideoPipelineDeviceTest, AacPlayback_WithEffectsStreams) { 1095 TEST_F(AudioVideoPipelineDeviceTest, AacPlayback_WithEffectsStreams) {
1096 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1097
1075 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1098 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1076 ConfigureForAudioOnly("sfx.m4a"); 1099 ConfigureForAudioOnly("sfx.m4a");
1077 PauseBeforeEos(); 1100 PauseBeforeEos();
1078 AddEffectsStreams(); 1101 AddEffectsStreams();
1079 Start(); 1102 Start();
1080 base::RunLoop().Run(); 1103 base::RunLoop().Run();
1081 } 1104 }
1082 1105
1083 TEST_F(AudioVideoPipelineDeviceTest, VorbisPlayback_WithEffectsStreams) { 1106 TEST_F(AudioVideoPipelineDeviceTest, VorbisPlayback_WithEffectsStreams) {
1107 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1108
1084 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts); 1109 set_sync_type(MediaPipelineDeviceParams::kModeIgnorePts);
1085 ConfigureForAudioOnly("sfx.ogg"); 1110 ConfigureForAudioOnly("sfx.ogg");
1086 AddEffectsStreams(); 1111 AddEffectsStreams();
1087 Start(); 1112 Start();
1088 base::RunLoop().Run(); 1113 base::RunLoop().Run();
1089 } 1114 }
1090 1115
1091 // TODO(kmackay) FFmpegDemuxForTest can't handle AC3 or EAC3. 1116 // TODO(kmackay) FFmpegDemuxForTest can't handle AC3 or EAC3.
1092 1117
1093 TEST_F(AudioVideoPipelineDeviceTest, OpusPlayback_WithEffectsStreams_Optional) { 1118 TEST_F(AudioVideoPipelineDeviceTest, OpusPlayback_WithEffectsStreams_Optional) {
1119 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1120
1094 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1121 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1095 ConfigureForAudioOnly("bear-opus.ogg"); 1122 ConfigureForAudioOnly("bear-opus.ogg");
1096 PauseBeforeEos(); 1123 PauseBeforeEos();
1097 AddEffectsStreams(); 1124 AddEffectsStreams();
1098 Start(); 1125 Start();
1099 base::RunLoop().Run(); 1126 base::RunLoop().Run();
1100 } 1127 }
1101 1128
1102 TEST_F(AudioVideoPipelineDeviceTest, FlacPlayback_WithEffectsStreams_Optional) { 1129 TEST_F(AudioVideoPipelineDeviceTest, FlacPlayback_WithEffectsStreams_Optional) {
1130 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1131
1103 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1132 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1104 ConfigureForAudioOnly("bear.flac"); 1133 ConfigureForAudioOnly("bear.flac");
1105 PauseBeforeEos(); 1134 PauseBeforeEos();
1106 AddEffectsStreams(); 1135 AddEffectsStreams();
1107 Start(); 1136 Start();
1108 base::RunLoop().Run(); 1137 base::RunLoop().Run();
1109 } 1138 }
1110 1139
1111 TEST_F(AudioVideoPipelineDeviceTest, H264Playback_WithEffectsStreams) { 1140 TEST_F(AudioVideoPipelineDeviceTest, H264Playback_WithEffectsStreams) {
1141 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1142
1112 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1143 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1113 ConfigureForVideoOnly("bear.h264", true /* raw_h264 */); 1144 ConfigureForVideoOnly("bear.h264", true /* raw_h264 */);
1114 PauseBeforeEos(); 1145 PauseBeforeEos();
1115 AddEffectsStreams(); 1146 AddEffectsStreams();
1116 Start(); 1147 Start();
1117 base::RunLoop().Run(); 1148 base::RunLoop().Run();
1118 } 1149 }
1119 1150
1120 TEST_F(AudioVideoPipelineDeviceTest, WebmPlaybackWithPause_WithEffectsStreams) { 1151 TEST_F(AudioVideoPipelineDeviceTest, WebmPlaybackWithPause_WithEffectsStreams) {
1152 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1153
1121 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1154 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1122 // Setup to pause for 100ms every 500ms 1155 // Setup to pause for 100ms every 500ms
1123 AddPause(base::TimeDelta::FromMilliseconds(500), 1156 AddPause(base::TimeDelta::FromMilliseconds(500),
1124 base::TimeDelta::FromMilliseconds(100)); 1157 base::TimeDelta::FromMilliseconds(100));
1125 1158
1126 ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */); 1159 ConfigureForVideoOnly("bear-640x360.webm", false /* raw_h264 */);
1127 AddEffectsStreams(); 1160 AddEffectsStreams();
1128 Start(); 1161 Start();
1129 base::RunLoop().Run(); 1162 base::RunLoop().Run();
1130 } 1163 }
1131 1164
1132 TEST_F(AudioVideoPipelineDeviceTest, Vp8Playback_WithEffectsStreams) { 1165 TEST_F(AudioVideoPipelineDeviceTest, Vp8Playback_WithEffectsStreams) {
1166 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1167
1133 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1168 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1134 ConfigureForVideoOnly("bear-vp8a.webm", false /* raw_h264 */); 1169 ConfigureForVideoOnly("bear-vp8a.webm", false /* raw_h264 */);
1135 AddEffectsStreams(); 1170 AddEffectsStreams();
1136 Start(); 1171 Start();
1137 base::RunLoop().Run(); 1172 base::RunLoop().Run();
1138 } 1173 }
1139 1174
1140 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback_WithEffectsStreams) { 1175 TEST_F(AudioVideoPipelineDeviceTest, WebmPlayback_WithEffectsStreams) {
1176 std::unique_ptr<base::MessageLoop> message_loop(new base::MessageLoop());
1177
1141 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts); 1178 set_sync_type(MediaPipelineDeviceParams::kModeSyncPts);
1142 ConfigureForFile("bear-640x360.webm"); 1179 ConfigureForFile("bear-640x360.webm");
1143 PauseBeforeEos(); 1180 PauseBeforeEos();
1144 AddEffectsStreams(); 1181 AddEffectsStreams();
1145 Start(); 1182 Start();
1146 base::RunLoop().Run(); 1183 base::RunLoop().Run();
1147 } 1184 }
1148 1185
1149 } // namespace media 1186 } // namespace media
1150 } // namespace chromecast 1187 } // namespace chromecast
OLDNEW
« no previous file with comments | « no previous file | media/base/demuxer_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698