OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 var sendTransport = chrome.webrtc.castSendTransport; | 5 var sendTransport = chrome.webrtc.castSendTransport; |
6 var tabCapture = chrome.tabCapture; | 6 var tabCapture = chrome.tabCapture; |
7 var udpTransport = chrome.webrtc.castUdpTransport; | 7 var udpTransport = chrome.webrtc.castUdpTransport; |
| 8 var createSession = chrome.cast.streaming.createSession; |
8 | 9 |
9 chrome.test.runTests([ | 10 chrome.test.runTests([ |
10 function udpTransportCreate() { | 11 function sendTransportStart() { |
11 udpTransport.create(function(udpId) { | 12 tabCapture.capture({audio: true, video: true}, function(stream) { |
12 udpTransport.start( | |
13 udpId, | |
14 {address: "127.0.0.1", port: 60613}); | |
15 udpTransport.destroy(udpId); | |
16 chrome.test.succeed(); | |
17 }); | |
18 }, | |
19 function sendTransportCreate() { | |
20 tabCapture.capture({audio: true}, function(stream) { | |
21 chrome.test.assertTrue(!!stream); | 13 chrome.test.assertTrue(!!stream); |
22 udpTransport.create(function(stream, udpId) { | 14 createSession(stream.getAudioTracks()[0], |
23 sendTransport.create( | 15 stream.getVideoTracks()[0], |
24 udpId, | 16 function(stream, audioId, videoId, udpId) { |
25 stream.getAudioTracks()[0], | 17 var audioParams = sendTransport.getCaps(audioId); |
26 function(stream, udpId, sendTransportId) { | 18 var videoParams = sendTransport.getCaps(videoId); |
27 sendTransport.destroy(sendTransportId); | 19 sendTransport.start(audioId, audioParams); |
28 udpTransport.destroy(udpId); | 20 sendTransport.start(videoId, videoParams); |
29 stream.stop(); | 21 sendTransport.stop(audioId); |
30 chrome.test.succeed(); | 22 sendTransport.stop(videoId); |
31 }.bind(null, stream, udpId)); | 23 sendTransport.destroy(audioId); |
| 24 sendTransport.destroy(videoId); |
| 25 udpTransport.destroy(udpId); |
| 26 stream.stop(); |
| 27 chrome.test.assertEq(audioParams.payloads[0].codecName, "OPUS"); |
| 28 chrome.test.assertEq(videoParams.payloads[0].codecName, "VP8"); |
| 29 chrome.test.succeed(); |
32 }.bind(null, stream)); | 30 }.bind(null, stream)); |
33 }); | 31 }); |
34 }, | 32 }, |
35 function sendTransportGetCapsAudio() { | |
36 tabCapture.capture({audio: true}, function(stream) { | |
37 chrome.test.assertTrue(!!stream); | |
38 udpTransport.create(function(stream, udpId) { | |
39 sendTransport.create( | |
40 udpId, | |
41 stream.getAudioTracks()[0], | |
42 function(stream, udpId, sendTransportId) { | |
43 var caps = sendTransport.getCaps(sendTransportId); | |
44 sendTransport.destroy(sendTransportId); | |
45 udpTransport.destroy(udpId); | |
46 stream.stop(); | |
47 chrome.test.assertEq(caps.payloads[0].codecName, "OPUS"); | |
48 chrome.test.succeed(); | |
49 }.bind(null, stream, udpId)); | |
50 }.bind(null, stream)); | |
51 }); | |
52 }, | |
53 function sendTransportStart() { | |
54 function startId(id) { | |
55 // TODO(hclam): Give something meaningful for params. | |
56 var params = { | |
57 payloads: [], | |
58 rtcpFeatures: [], | |
59 }; | |
60 sendTransport.start(id, params); | |
61 } | |
62 function cleanupId(id) { | |
63 sendTransport.stop(id); | |
64 sendTransport.destroy(id); | |
65 } | |
66 tabCapture.capture({audio: true, video: true}, function(stream) { | |
67 chrome.test.assertTrue(!!stream); | |
68 udpTransport.create(function(stream, udpId) { | |
69 // Create a transport for audio. | |
70 sendTransport.create( | |
71 udpId, | |
72 stream.getAudioTracks()[0], | |
73 function(stream, udpId, audioId) { | |
74 // Create a transport for video. | |
75 sendTransport.create( | |
76 udpId, | |
77 stream.getVideoTracks()[0], | |
78 function(stream, udpId, audioId, videoId) { | |
79 startId(audioId); | |
80 cleanupId(audioId); | |
81 startId(videoId); | |
82 cleanupId(videoId); | |
83 udpTransport.destroy(udpId); | |
84 stream.stop(); | |
85 chrome.test.succeed(); | |
86 }.bind(null, stream, udpId, audioId)); | |
87 }.bind(null, stream, udpId)); | |
88 }.bind(null, stream)); | |
89 }); | |
90 }, | |
91 ]); | 33 ]); |
OLD | NEW |